2018-03-02

Доступ к старой RSS-ленте LostFilm.TV

TL;DR. Для тек кто спешит:

    https://lostproxy.vaultvulp.tk/rss.xml
  

Несколько лет назад команда, работающая над порталом LostFilm.TV, решила выпустить радикально переработанную версию ресурса. Практически каждый элемент подвергся изменениям, не осталась без внимания и RSS-лента. Она стала читаемой и удобной, но к сожалению перестала удовлетворять требованиям Torrent-клиентов.

К счастью для меня, ребята оставили старый интерфейс доступным по адресу https://old.lostfilm.tv/. Там же обитает и "старая" RSS-лента:

    https://old.lostfilm.tv/rssdd.xml
  

Я уже понадеялся, что все беды позади, но увы - все ссылки в ленте ведут на новый домен, например:

    https://www.lostfilm.tv/download.php?id=12345&Gotham.S04E13.720p.WEB.rus.LostFilm.TV.mp4.torrent
  

Но по этому адресу нет ни torrent-файла, ни какой-то другой страницы. (Удивительно, что Веб-сервер возвращает HTTP статус 200, вместо более подходящего 404)

Я смекнул, что ссылка должна вести на старую версию портала, и, после замены www на old, я получил валидную ссылку на раздачу:

    https://old.lostfilm.tv/download.php?id=12345Gotham.S04E13.720p.WEB.rus.LostFilm.TV.mp4.torrent
  

Наметился проект на вечер выходного дня - автоматизировать процесс "исправления" URL.

Требования были очевидными:

  • собрать RSS-ленту со старой версии портала
  • скорректировать все ссылки внутри ленты
  • опубликовать её посредством веб-сервера
  • обновить настройки utorrent, и проверить, что он вновь загружает свежие релизы

Взяв в руки Docker, Python, Caddy, я взялся за дело.

Весь код проекта доступен на Github. Там же присутствует инструкция по запуску проекта.


Ниже я кратко опишу основные элементы проекта.

link Python

Код утилиты я старался написать максимально читаемым, отмечу лишь один момент: оригинальная RSS-лента использует кодировку cp1251, которая поддерживается далеко не всеми Torrent-клиентами, по этому я меняю её на более распространенную UTF-8.


link Caddy

Caddyfile тоже достаточно простой:

  • перенаправляем все запросы на файл, который мы генерируем
  • подставляем заголовок с кодировкой

Важно! Перед запуском проекта необходимо отредактировать этот файл и указать правильный домен или ip адрес, доступный извне.


link Docker Compose

В docker-compose.yml мы создаём volume webroot, и монитруем его в оба контейнера.


Если у вас возникли какие-то вопросы, замечания или предложения - милости прошу в комментарии.


В этой статье можно прочитать о том, как настраивается torrent-клиент, авторизация, и загрузка новых серий сериалов.