Апалка объявлений на кубань.ру
11.09.2009, 14:20
Всем колхозникам посвящается.
Попросили меня как-то подать объявления на форум местный, но темы там быстро уходят в /dev/null и их постоянно надо апать, чтобы у людей мелькало перед глазами.
Руками заходить каждые несколько минут и писать «up!» — это не для нас, ведь?
Отличный повод заюзать DudeCurl, подумал я :) (дуд, с тебя 1000$, постпроплачен ^_^)
Вобщем, подключаем всеми нами любимый дуд курл, заводим тестовый файл с ID топика на каждой строчке, пишем пару строк кода и ставим на крон.
// подключаем дуд курл
include_once(dirname(__FILE__) . '/DudeCurl.php');
// считываем ID-ы топиков
$topics = file(dirname(__FILE__) . '/topics.txt');
// ваши авторизационные данные
$login = 'login';
$password = 'password';
// урл страницы форма (надо, чтобы вытащить некий «kodun» для авторизации)
$url = 'http://forums.kuban.ru/forum/index.php' ;
// урл авторизации
$login_url = 'http://forums.kuban.ru/forum/login_new.p hp';
// урл постинга
$post_url = 'http://forums.kuban.ru/forum/posting_ne w.php?page=1';
// пошли по всем топикам
foreach ($topics as $topic_id) {
$topic_id = intval(trim($topic_id));
// если еще не авторизовались, то делаем это
if (!isset($curl)) {
$curl = new DudeCurl($url);
$html = $curl->exec();
preg_match('#kodun" type="hidden" value="(.*?)"#i', $html, $m);
if (!isset($m[1])) { die('can\'t find kodun :('); }
$kodun = $m[1];
$auth = array("username"=>$login,"password"=>$pa ssword, "kodun"=>$kodun);
$curl->init($login_url);
$curl->post = $auth;
$curl->exec();
}
// постим сообщение
$data = array("visible_mail"=>'OFF', "message"=>'up!', "kodun"=>$kodun, "add_post"=>$topic_id);
$curl->init($post_url);
$curl->post = $data;
$curl->exec();
// эту тему мы апнули
print 'http://forums.kuban.ru/forum/viewtopic_ new.php?t=' . $topic_id . '<br/>';
// т.к. на этом мегафоруме стоит антифлуд, то мы немного посмпим
sleep(rand(35,40));
}
Исходнички + DudeCurl 0.2.5 Beta
Всем кубаньрушникам привет! :)