Автоматическая скачивание торрентов
Давным давно хотел реализовать РЅР° домашнем сервачке сервис РїРѕ автоматическому скачиванию необходимых РјРЅРµ торрентов. Речь идёт конечно Р¶Рµ Рѕ всеми любимых сериалах. Выходит очередная серия – СЃРєСЂРёРїС‚ проверяет, есть ли РѕРЅР° РЅР° локальном РґРёСЃРєРµ Рё, если таковой нету, скачивает обновляет торрент файлик, Р° торрент клиент, РІ моём случае это rtorrent, качает РІ РЅСѓР¶РЅСѓСЋ папку.
Задача РЅРµ сильно хитрая, РЅРѕ поморочиться заставила. Зато теперь Сѓ меня постоянно скачиваются нужные РјРЅРµ сериалы РІ автоматическом режиме. РќРµ надо проверять трекер РЅР° наличие обновлений. Да, лень – двигатель прогресса
Система состоит из нескольких частей. Основа это, конечно же RSS каналы на трекере. В моём примере это небезисвестный rutracker. RSS закидываем в Google Reader. Я использую этот веб-сервис в качестве RSS-читалки по умолчанию. Поэтому проблем никаких не было с этой частью.
Следущим этапом будет экспорт ленты с сериалом в Yahoo Pipes, мощнейший инструмент которого будем использовать. Открываем
- item.y:title – 720p
- item.y:title – rus sub
- item.link – http://rutracker.org/forum/viewtopic.php?t=3758556
Последнее это ссылка на тему. Остальное думаю понятно.
Теперь копируем ссылку Get as RSS РІ РѕСЃРЅРѕРІРЅРѕРј РѕРєРЅРµ Yahoo Pipes. Ртот RSS канал будем тянуть РїРѕ РєСЂРѕРЅСѓ РЅР° сервере нашем.
/usr/bin/wget -O /home/maf/downloaded/dexter.out http://get_as_rss_link >> /dev/null 2>&1
У меня стоит данная команда каждые 15 минут.
Осталось самое главное – СЃРєСЂРёРїС‚ скачки. Выглядит так
#!/usr/bin/perl
use HTML::TokeParser;
$dir=»/usr/home/maf/downloaded»;system(«/usr/bin/wget –keep-session-cookies –save-cookies ./.cookies –post-data 'login_username=your_rutracker_login&login_password=your_rutracker_pass&login=%C2%F5%EE%E4'В http://login.rutracker.org/forum/login.php -O result.html»);
#—-documental rss
$p = HTML::TokeParser->new(«$dir/documental.out»);
while ($token = $p->get_tag(«a»)) {
$url = $token->[1]{href} || «-»;
$text = $p->get_trimmed_text(«/a»);
$dlurl=$url;
$dlurl =~ s/http:\/\/rutracker.org\/forum\/viewtopic.php\?t=/http:\/\/dl.rutracker.org\/forum\/dl.php\?t=/;($p1,$p2)=split('=',$url);
#print $p2;
if( -e «$dir/$p2.torrent»)
{
print «$p2.torrent is exist. Exiting!\n»
#exit;
}
else
{
system(«/usr/bin/wgetВ $dlurl -O $dir/\»$p2.torrent\» –post-data=\»t=$p2\» –header=\»Content-Type: application/x-www-form-urlencoded\» –referer=\»$url\» –load-cookies .cookies –keep-session-cookies»);
system(«/bin/cp $dir/$p2.torrent /usr/home/maf/data/torrents/documental»);
}
}
Закидываем скрипт также в крон. Он будет проверять ранее заготовленный файлик с апдейтами из предидущего шага, логиниться на трекер и качать нужный торрент.
Оставить комментарий или два