Введение
Я активно пользуюсь сервисом Google Reader для чтения RSS-каналов в общем и для отслеживания появления интересующих меня раздач на torrent-трекерах в частности. А также частенько качаю с торрентов любимые сериалы. В некоторый момент захотелось избавиться от промежуточных шагов между просмотром записи канала и скачиванием торрента и немного автоматизировать процесс вылавливания из сети интересной и нужной информации.
Вряд ли для кого-то окажется откровением то, что если не все, то почти все современные torrent-клиенты поддерживают загрузку RSS-каналов и даже автоматическую загрузку торрентов из этих каналов. Но, как правило, большая часть выдаваемых определенным каналом раздач мне просто не нужна. Да и дисковое пространство далеко не резиновое и выкачивать все возможные раздачи любимого, например, сериала не представляется возможным. Я не настолько большой фанат, чтобы держать на дисках одновременно несколько версий одной и той же серии или фильма.
На этом месте внимательный читатель непременно заметит: так ведь можно на каждый RSS-канал средствами torrent-клиента настроить фильтры и выкачивать только те раздачи, которые представляют реальный интерес. Заметит и получит резонный, по-моему, ответ: на все случаи жизни фильтры не настроишь. Нужен более универсальный вариант.
Таким вариантом для меня стала автоматическая закачка раздач, отмеченных в Google Reader. О том, как это реализовать подручными средствами, рассказано под катом.
Детали конструктора
Для успешного решения задачи нам нужны:
- установленный и работоспособный rtorrent с rutorrent в качестве front-end и следующими плагинами: RSS, RSSURLRewrite и LoginMgr (последний служит для скачивания раздач с torrent-трекеров, требующих авторизации и в общем случае необязателен, но для моего примера нужен).
- подписка в Google Reader на нужные RSS-каналы с раздачами
- чудо-юдо рыба-сервис Yahoo Pipes
- немного времени
Шаг первый — настраиваем вывод всех отмеченных в Google Reader записей в отдельный канал
Для того чтобы список отмеченных записей был доступен извне Google Reader необходимо сделать такие записи общими. Для этого открываем настройки Google Reader и в меню «Папки и теги» одним кликом мыши превращаем личные записи
в общедоступные
Если у вас по какой-то причине нет желания делать общими именно «Ваши отмеченные записи», все дальнейшие операции можно проделывать и с записями которые находятся в списке «Ваши общие записи».
Далее открываем страницу с отмеченными записями, пройдя по ссылке «посмотреть открытую страницу» напротив соответствующей общедоступной папки и копируем URL канала с отмеченными записями:
Он имеет следующий вид:
http://www.google.com/reader/public/atom/user/%googleuserid%/state/com.google/starred
И все бы хорошо, только вот Reader умеет отдавать результат только в формате Atom-канала, а существующие плагины для rutorrent успешно работают только с RSS. Здесь мы и воспользуемся Yahoo Pipes.
Шаг второй — преобразование atom в RSS
Yahoo Pipes требует регистрации, но это не станет большой загвоздкой, так как авторизация возможна при помощи существующей учетной записи Google и понадобится нам всего один раз для создания соответствующего пайпа.
Данный и последующие этапы рассмотрим на примере RuTracker.org.
Дабы не углубляться в изучение этого, прямо скажем, очень мощного сервиса, мы клонируем созданный для этой цели простой пайп-полуфабрикат. В нем необходимо будет указать ссылку на atom-канал и настроить фильтр, которым будут отсеиваться заведомо ненужные записи (в данном случае — не содержащие в себе ссылки на раздачу), но обо всем по порядку:- открываем http://pipes.yahoo.com/pipes/
- Sign In -> Sign in with Google (безусловно, можно выбрать любой другой доступный вариант аутентификации)
- открываем заготовленный пайп-полуфабрикат
- жмем Clone
- редактируем поля с именем, описанием и ссылкой на пайп по вкусу
- открываем редактор, нажав на кнопку Edit Source
- вводим полученный на предыдущем шаге URL в одноименное поле блока Fetch Feed
В блоке Filter можно настроить гибкую фильтрацию сообщений исходного канала при помощи солидного количества предлагаемых фильтров. Обратите внимание на область Debugger внизу экрана. В ней можно оценить вывод любого из блоков пайпа.
- Сохраняем наш пайп кнопкой Save, запускаем его (Run Pipe…).
Из кучи вариантов выдачи нас интересует выдача результатов в виде RSS-канала:
http://pipes.yahoo.com/pipes/pipe.run?_id=%SomeId%&_render=rss
Этот канал уже можно скармливать rtorrent и настраивать загрузку торрентов. Его обновление происходит автоматически через некоторые промежутки времени (говорят, в зависимости от HTTP-заголовков источника), поэтому дополнительного вмешательства для его успешной работы не требуется.
Шаг третий — настройка rtorrent, подключение рассылки и настройка правил загрузки раздач
Так как подопытным для нас служит RuTracker.org, первым делом нужно указать в настройках логин и пароль для доступа к нему:
Затем добавляем RSS-рассылку в rutorrent:
Настраиваем правила преобразования URL раздачи в URL torrent-файла, не забыв выбрать рассылку, к которой нужно применить правило:
Для RuTracker.org это замена выражения
|http://rutracker.org/forum/viewtopic.php\?t=(\d+)|iна строку
http://dl.rutracker.org/forum/dl.php?t=${1}
Выставляем настройки по желанию:
Шаг финальный — проверка
Идем в Google Reader, помечаем запись:
Ждем (можно обновить рассылку в rutorrent вручную, но информация об отмеченных записях обновляется не мгновенно (см. выше); интервала автообновления в 30 минут достаточно для успешного проведения эксперимента).
Видим в rutorrent свежеотмеченные раздачи:
Вместо заключения
Потратив полчаса свободного времени, мы получаем возможность практически в одно нажатие кнопки мыши ставить на закачку интересные нам раздачи, имея доступ только к Google Reader. Все рутинные операции сделают за нас могучие сервисы в связке с домашним сервером.
В плюсы к данному подходу можно отнести:
- отсутствие необходимости в прямом доступе к серверу с установленным торрент-клиентом (и, как следствие, отсутствие необходимости в «белом» внешнем IP, да и вообще во внешнем IP)
- добавление закачек в очередь органично сочетается с ежедневным чтением свежих новостей
Ссылки по теме:
- Установка rtorrent+rutorrent
- rtorrent
- rutorrent
- плагины: RSS, RSSURLRewrite, LoginMgr
- Yahoo Pipes
- Инструкция по установке rtorrent в Debian, написанная хабрапользователем Labinskiy
- Другой интересный вариант использования Yahoo Pipes на благо автоматизации закачек, описанный AmoN
UPD: Желающие поставить (и уже поставившие) отрицательную оценку статье, потрудитесь, пожалуйста, аргументировать свое решение в комментариях.