Доброго времени суток!
Не так давно захотелось реализовать вывод новых сообщений Вконтакте на рабочий стол. Выбор пал на Conky и на всплывающие сообщения. Сегодня остановимся на втором способе. Данная статья будет ориентирована на новичков.
Прежде всего ставим notify-send (при отсутствии библиотек):
Теперь создаем скрипт такого содержания:
Естественно указываем ваши логин и пароль. Сохраняем скрипт, называем, например, vknotify и кидаем куда-нибудь в /usr/local/bin.
Теперь можно смело запускать и ставить в автозагрузку.
Не так давно захотелось реализовать вывод новых сообщений Вконтакте на рабочий стол. Выбор пал на Conky и на всплывающие сообщения. Сегодня остановимся на втором способе. Данная статья будет ориентирована на новичков.
(Что мы получим в конце статьи)
Прежде всего ставим notify-send (при отсутствии библиотек):
sudo apt-get install libnotify-bin
Теперь создаем скрипт такого содержания:
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Cookies;
use Text::Iconv;
$mail = ' ';
$pass = ' ';
$browser = LWP::UserAgent->new();
$browser->agent('Mozilla/5.0');
$cookie = HTTP::Cookies->new();
$browser->cookie_jar($cookie);
$win2utf = Text::Iconv->new('windows-1251','utf-8');
$auth = $browser->get("http://login.vk.com/?act=login&email=$mail&pass=$pass&from_host=vk.com")->as_string;
die("Ошибка авторизации\n") if $auth =~ /reg/;
sub parse
{
$dat = $browser->get("http://vk.com/mail")->as_string;
if($dat =~ /mail_body"><a href="\/mail\?act=show&id=(\d*)" onclick="return nav.go\(this, event\);" >(.*)<\/a>/)
{
$id = $1;
$msg = $win2utf->convert($2);
}
else
{
warn("Не удалось получить сообщение\n");
}
$author = $win2utf->convert($1) if $dat =~ /wrapped"><a href=".*" onclick="return nav.go\(this, event\);" onmousedown="event.cancelBubble = true;">(.*)<\/a>/;
$img = $1 if $dat =~ /<img src="(http:\/\/(.*))"\/>/ || die;
}
sub notify
{
system("wget -P ~/ $img");
$img = $1 if $img =~ /\/((\w+)\.jpg)/;
$notify = qq(notify-send --expire-time=10000 -i ~/$img \'$author\' \'$msg\');
system($notify);
system("rm -r ~/$img");
}
if($^O =~ /Win/)
{
exit();
}
else
{
system('clear');
print "Запуск...\n";
}
while()
{
parse;
if($id != $last_id)
{
notify;
}
$last_id = $id;
}
Естественно указываем ваши логин и пароль. Сохраняем скрипт, называем, например, vknotify и кидаем куда-нибудь в /usr/local/bin.
Теперь можно смело запускать и ставить в автозагрузку.