Проблемы современных torrent-monitor'ов
Давно искал torrent-monitor, который смог бы мониторить раздачи на трекерах, которые требуют логин/пароль. Варианты с cookies'ами не совсем подходили, как как:
- они могли меняться (например, rutracker меня периодически забывает).
- у меня рабочий/домашний комп — это одно (Windows 7), а сервер с rtorrent/rutorrent — это другое (FreeBSD 8.1). Можно ли автоматически синхронизировать cookies между разными браузерами/операционками — для меня большой вопрос.
Отдавать свой пароль сторонним сервисам тоже не очень хотелось, поэтому искал что-то, что можно было бы поставить себе на сервер.
Какое-то время спасал tvfedor.ru. Но это тоже начало надоедать:
- дождаться обновления RSS-а (а если я занят/интернет не доступен/я уже еду домой?);
- кликнуть на ссылку (а на работе не очень хотелось светиться заходами на торрент-трекеры. Просто так, на всякий случай);
- ввести логин/пароль на сайте (ладно-ладно, они у меня сохраняются. Просто нажать на «Вход»);
- немного промотать вниз и кликнуть на «Скачать .torrent»;
- выбрать, куда сохранять .torrent-файл, чтобы rtorrent его подхватил (хотя эта папка у меня в Favorites, все равно это занимает время и клики);
- ???
- ПРОФИТ!!!
Да какой там профит. Столько кликов. Удручает.
Решение проблемы
Читая Хабр, в разделе q&a нашел ссылку на TorrentMonitor который написал местный Хабражитель KorP.

Что этот torrent-monitor умеет делать на данный момент своего развития:
- слежение за темами на rutracker.org
- слежение за темами на nnm-club.ru
- поиск сериалов на lostfilm.tv
- поиск сериалов на novafilm.tv
Скачал я его. Сконфигурил. Конфигурация проста (в отличие от) и хорошо описана в документации. Надо всего лишь создать юзера/базу в mysql и заполнить конфигурационный файл:
//DB_host
$host = "localhost";
//DB_user
$user = "torrentmonitor";
//DB_password
$pass = "***";
//DB
$db = "torrentmonitor";
//path to save torrent files
$path_to_torrent = "/mnt/media/video/watch/";
//e-mail
$email = "dm@noreply.eu";
Запустил.
Не запустилось, пришлось брать в руки tcpdump. Не буду писать, как и что я отлаживал, скажу сразу для тех, кто захочет поставить под FreeBSD (возможно и не только), что именно надо подправить (только для rutracker.org. Для других не смотрел, но, думаю, может быть аналогично).
1. В
functions.php
лучше вместоcurl_setopt($ch, CURLOPT_POSTFIELDS, "login_username={$log}&login_password={$pass}&login=Вход");
написать
curl_setopt($ch, CURLOPT_POSTFIELDS, "login_username={$log}&login_password={$pass}&login=%C2%F5%EE%E4");
дабы избежать проблем с UTF-8
2. В
engine.php
вместо } else
$sess_cookie_rutracker = substr($log, strpos($log, "Set-Cookie: bb_data=")+20, 73);
мне пришлось написать так:
} else {
$sess_cookie_rutracker = substr($log, strpos($log, "Set-Cookie: bb_data=")+20, 75);
}
Это было quick-and-dirty. На самом деле надо брать все, что между «Set-Cookie: bb_data=» и ";". Я временно (чтобы отладить по-быстрому) просто увеличил длину с 73 до 75. Надеюсь, разработчик это прочтет (а он обязательно прочтет) и сделает все красиво.
Осталась проблема с разъезжающимися панельками на высоких разрешениях, а так же не совсем очевидно, как редактировать учетные данные (Hint: надо нажать на слово "редактировать учётные данные:" и тогда выпадет форма для ввода трекера и логина/пароля). Автору я об этом написал. Он обещал исправиться (и уже, наверное, исправился).
И в заключении
Как говорится: «В целом я доволен». Я пока даже не знаю к чему придраться. С rutracker-ом работает. За пару-тройку недель сервер еще не подвесил. Что еще надо?
За счёт того, что torrent-monitor часто проверяет трекер (рекомендовано раз в 10 минут) и скачивает обновлённый торрент — на раздачу можно встать одним из первых, что ведёт к высокому рейтингу (для кого-то, кто живет вдали от больших городов и толстых каналов это может быть крайне актуально).
Думаю, у проекта большой потенциал, так как можно допилить его, чтобы можно было подключать «плагины» для других torrent-трекеров, а так же теоретически его можно запускать на рутерах (есть же на рутерах apache, php и mysql?).
Автор (напоминаю, что это KorP) не против перевести проект на GoogleCode/SourceForge/etc (посоветуйте ему, куда лучше и под какой лицензией), а так же будет рад помощи в оптимизации/усовершенствовании движка и написании модулей для поддержки других торрент-трекеров.