Pull to refresh

Автоматическое обновление статуса ВКонтакте

Reading time2 min
Views21K
Предлагаю вашему вниманию небольшой скрипт для автоматического обновления статуса в социальной сети ВКонтакте. Скрипт написан за полчаса, ничего сложного в нем нет. Толчком для написания стало желание побаловаться, в процессе возникла еще пара интересных идей, которые я осуществлять не планирую, может кого-то наведу на мысль и буду рад. Не будем голословничать, приступаем к делу.

И да, забыл сказать, это — Perl. Будет желание — сможете легко повторить на вашем любимом языке.
#!/usr/bin/perl

print "Content-type:text/html\n\n";

# Запрашиваем необходимые модули
require LWP::UserAgent;
use HTTP::Cookies;
use Encode;

# Данные
$email = "name\@server.ru";
$password = "mypassword";
$path = "/home/anton/www/site.ru/cgi";

# Счетчик
open (FILE, "$path/num.txt");
$num = <FILE>;
close (FILE);

my $ua = LWP::UserAgent->new;
 $ua->timeout(10);
 $ua->agent('Mozilla/5.0');
 $ua->env_proxy;

# Путь к файлу с cookies
$cookies=new HTTP::Cookies(file=>'$path/cookies.dat',autosave=>1);
 $ua->cookie_jar($cookies);

# Логинимся
$loginpage = "http://vkontakte.ru/login.php?email=$email&pass=$password";
$response = $ua->get($loginpage);
$page = $response->content;

# Достаем значение activityhash
$ah = $1 if $page =~ m/<input type='hidden' id='activityhash' value='(.+)'>/;

# Наш статус
$status = "L&M's status - Попытка #$num";
Encode::from_to($status, 'windows-1251','utf-8');

# POST-запрос для обновления статуса
$response = $ua->post
 ('http://vkontakte.ru/profile.php',
  [
  activityhash => $ah,
  setactivity => $status
  ]
 );

# Если удачно, выведется значение обновленного статуса
print $response->content;

# Увеличиваем значение счетчика
$num++;

# Обновляем значение в файле
open (FILE, ">$path/num.txt");
print FILE $num;
close (FILE);


* This source code was highlighted with Source Code Highlighter.


Затем скрипт добавляем в расписание cron'а:
*/3 * * * * /home/anton/www/site.ru/cgi/test.pl >/dev/null


И смотрим на результаты:



Как это применить? Вот что пришло в голову:
— достать своих друзей, которые не вылазят из ВКонтакта своими статусами :))
— в рандоме выбирать из файла какие-либо цитаты, анекдоты, что угодно
— сделать обратный отсчет, н-р, «До моего дня рождения осталось 3 дня, 15 часов и 42 минуты»
— привлекать друзей на какие-либо мероприятия, сайты и прочее
— ну и спамеры, конечно же, могут использовать взломанные аккаунты, чтобы собирать траффик

А еще из всех этих идей можно сделать специальный сервис, который будет выполнять все эти действия. Интересно, есть ли у ВКонтакта ограничение на количество обновлений статуса в сутки? Скоро узнаю :)
Всем хорошего вечера.
Just for fun.
Tags:
Hubs:
+2
Comments12

Articles