Pull to refresh

Как качать торренты не выходя из Google Reader – способ для ленивых

Decentralized networks
Sandbox

Введение


Я активно пользуюсь сервисом 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
Yahoo Pipes
В блоке 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, помечаем запись:
Google Reader

Ждем (можно обновить рассылку в rutorrent вручную, но информация об отмеченных записях обновляется не мгновенно (см. выше); интервала автообновления в 30 минут достаточно для успешного проведения эксперимента).

Видим в rutorrent свежеотмеченные раздачи:
Bingo!

Вместо заключения


Потратив полчаса свободного времени, мы получаем возможность практически в одно нажатие кнопки мыши ставить на закачку интересные нам раздачи, имея доступ только к Google Reader. Все рутинные операции сделают за нас могучие сервисы в связке с домашним сервером.
В плюсы к данному подходу можно отнести:
  • отсутствие необходимости в прямом доступе к серверу с установленным торрент-клиентом (и, как следствие, отсутствие необходимости в «белом» внешнем IP, да и вообще во внешнем IP)
  • добавление закачек в очередь органично сочетается с ежедневным чтением свежих новостей
Минус – относительно большой промежуток времени между отметкой записи в Google Reader и стартом закачки (практика показывает, что между первым и вторым проходит 3-5 минут), что, в общем, не критично при предполагаемом сценарии использования.

Ссылки по теме:
.
UPD: Желающие поставить (и уже поставившие) отрицательную оценку статье, потрудитесь, пожалуйста, аргументировать свое решение в комментариях.
Tags: atomrssgoogle readeryahoo pipesrtorrentrutorrentrutracker.orglinuxдомашний сервер
Hubs: Decentralized networks
Total votes 66: ↑60 and ↓6 +54
Comments 36
Comments Comments 36

Popular right now