6 ноября 2012 в 13:33

Разное → Слежение за обновлениями на торренте

По мотивам: TorrentMonitor

Приветствую, Хабр!

Когда я столкнулся, где-то полгода назад, с ленью регулярно заходить на торренты и смотреть вышли ли новые серии, то сначала была реализована версия проверки новых серий на bash'e, путем парсинга даты обновления торрент-файлов со страницы темы.


В итоге первая версия (реализованная на bash+PHP) моего чекера имела следующий функционал:
— проверить дату торрент-файла (php)
— скачать торрент-файл (bash: curl, aria2)
— скачать последнюю серию (bash: aria2)

aria2
Особенности, за которые была выбран downloader «aria2»

aria2c -S $file
# показывает нам содержимое торрент-файла. Оттуда вытягиваем номера и позиции эпизодов.
# находим номер последнего доступного эпизода и его позицию с помощью хитрых манипуляций cредствами bash

aria2c -d /.../downloads --seed-time=0 --allow-overwrite=true --select-file=$max2 $file
# -d — куда качать
# --seed-time — параметр времени раздачи ( «0» — не раздавать)
# --allow-overwrite=true — разрешить перезапись файлов
# --select-file=$max2 — скачать файл, позиция которого соответствует номеру "$max2"



Мысль моя пошла дальше и в итоге сделано следующее:
— домашний сервер, к которому прикручен домен
— на сервере стоит простенький сервис (apache2+php+mysql)

Принцип действия:
Пользователь заходит на сайт и регистрируется. Заходит на личную страничку, где добавляет свои контакты:
— e-mail;
— icq;
— jabber.

И добавляет темы с трех торрентов:
— Rutracker.org
— Torrents.vtomske.ru
— Tomsktracker.org

Почему эти торренты?!
В силу того, что в Томске имеется разделение на «томскую сеть» и на «внешку», то наиболее популярными торрентами являются, как раз таки, Torrents.vtomske.ru и Tomsktracker.org. Рутрекер был прикручен из-за того, что там сериалов все ж больше и до Томска не всегда все доходит.


После того, как тема добавлена, сервер начинает регулярно проверять темы. Если торрент-файл какой-либо темы был обновлен (предполагаем, что обновление = выход новой серии), то сервер сообщит об этом пользователю на почту, в icq или в jabber (почти реализовано) в следующем формате:
Обновления
<Название темы с торрента>
Тема: <ссылка на тему>
Торрент-билет: <ссылка на скачивание торрент-билета>

Но и это еще не все. Что делать тем, кто редко проверяет почту, не пользуется icq или jabber? Им можно подписаться на паблик во vk.com/mestor. Куда постятся все обновления на торрентах. А оттуда экспортируется в twitter.

Мораль.
— Нет необходимости загружать свою машину путем расширений для браузеров;
— Нет необходимости устанавливать и настраивать что-то на своем компе;
— Вы никому не рассказываете свои логины и пароли от торрентов.

Итог.
Для личного использования (своего и друзьями) достаточно небольшого функционала и отсутствующего дизайна и оформления, кроме базового.
Получение опыта работы с apache-php-mysql.

P. S.
Планы:
— Приятный дизайн;
— Слежение за разделами, а не только за темами.

Ложка дегтя
Парсинг страниц весьма печальное и неблагодарное занятие.
Кривой код, поскольку все изучается в процессе реализации

И было бы очень хорошо, если бы сами торренты сделали оповещение об обновлении тем.