Я, как и большинство, смотрю много сериалов. И, чтобы не ждать перевода, смотрю в оригинале с субтитрами. Из-за этого скачивание серии иногда превращается в приключение. Мне захотелось оптимизировать этот процесс. Web-приложение я делать как-то не рискнул, поэтому встречайте series_list. Оно:
- берёт релизы с eztv или piratebay;
- берёт субтитры с addicted или уведомляет, если их ещё нет;
- берёт обложки с imdb;
- скачивает последовательно (можно начинать смотреть, когда ещё не всё скачалось);
- имеет открытый исходный код.
Установка
Ubuntu
Для ubuntu достаточно добавить ppa и установить пакет:
sudo add-apt-repository ppa:nvbn-rm/ppa
sudo apt-get update
sudo apt-get install series-list
Другие дистрибутивы
Тут всё сложнее. Сначала нужно установить libtorrent, потом:
git clone https://github.com/nvbn/series_list.git
cd series_list
git checkout master
python setup.py install
Что внутри
Интерфейс сделан на PySide(Qt), скачивание и получение серий крутится в QThread.
На получение картинки и субтитров к одной серии надо сделать 4 http-запроса. Без использования какого-нибудь сoncurrency фреймворка это происходило очень долго, поэтому пришлось использовать gevent. Но он не захотел дружить с PySide, из-за этого пришлось городить 2 процесса.
Из-за того что один процесс не дружит с Qt, пришлось отказаться от QSettings и делать свою чудо-реализацию хранения настроек.
Провайдеры данных можно менять через настройки, но пока доступны только eztv, addicted и imdb. При желании можно написать свои и сделать pull request =)
Ссылки
github проекта;
ppa с проектом.