Как стать автором
Обновить

Неплохой torrent-monitor для своего домашнего сервера

Проблемы современных 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 (посоветуйте ему, куда лучше и под какой лицензией), а так же будет рад помощи в оптимизации/усовершенствовании движка и написании модулей для поддержки других торрент-трекеров.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.