Показать сообщение отдельно
Старый 22.05.2017, 00:40   #1
vl.maksime
Senior Member
 
Аватар для vl.maksime
 
Регистрация: 18.10.2015
Адрес: Donetsk, Ukraine
Сообщений: 1,058
По умолчанию tv_grab_tv.mail.ru - XMLTV Grabber tv.mail.ru

Скрипт предназначен для загрузки программы телепередач с ресурса https://tv.mail.ru/

Скачать скрипт можно из репозитория ТУТ

Для оптимизации загружаемых данных, скрипт грузит программу только для избранных телеканалов. Поэтому нам понадобиться учетная запись на сервисе @mail.ru.

Список избранных каналов привязывается к текущему региону (городу), поэтому желательно указать свой регион вручную, при настройке скрипта.

Основная задача скрипта - получение телепрограммы для Tvheadend 4, установленного на NAS сервере. Скрипт писался для своей системы, на которой и отлаживался.
Решил выложить скрипт в массы, может кому-то еще пригодиться.

Не смотря на то, что скрипт писался под Tvheadend 4, он должен быть совместим с другими приложениями, получающими информацию из tv_grab_* скриптов. Для обеспечения совместимости с другими системами, старался соответствовать требованиям к tv_grab_* скриптам, которые опубликованы тут: http://wiki.xmltv.org/index.php/XmltvCapabilities

Скрипт писался на Python'e, поэтому для запуска скрипта требуются:
  • Python 2.7
  • Библиотеки, доступные в pip: requests, configparser
  • Библиотеки, устанавливаемые вручную: xmltv

Все дополнительные бибилиотеки одним архивом можно скачать ТУТ

Скрипт писался и тестировался под 2.7, поэтому совместимость с 3.x не гарантируется.

Установка и настройка для работы с Tvheadend
Руководство писалось в надежде, что Вы знакомы с линуксом. Для добавления скрипта в Tvheadend необходимо:
  1. Установить скрипт, поместив в каталог '/usr/bin/', сделать файл исполняемым
  2. Запустить настройку скрипта, выполнив в терминале команду 'tv_grab_tv_mail_ru.py --configure'
  3. Указать e-mail и пароль от учетной записи. Ответить на ряд вопросов
  4. Перезапустить Tvheadend
  5. Выбрать скрипт в качестве используемого граббера

После выполнения настройки, в домашнем каталоге будет создан файл '/.xmltv/tv_mail_ru.conf'

Описание операции настройки
В процессе настройки скрипта, пользователю будет задан ряд вопросов, при ответе на которые будет сформирован файл с конфигурацией скрипта.
Код:
tv_grab_tv_mail_ru.py --configure --config-file test.conf
Enter e-mail: my@mail.ru - e-mail от учетной записи
Enter password: p@ssword - пароль от учетной записи
Do you want to configure the list of regions manually? [Y/n] y - на данный момент у меня возникло 2 случая, когда необходимо вручную указывать регион:
1. Когда сервис постоянно переключает регион при автоопределении. У меня он постоянно скачет между Донецком и Киевом
2. Когда необходимо получить программу для канала, отсутствующего в твоем регионе
Enter region name: moskva - указываем город, желательно транслитом, т.к. кириллицу не понимает
Россия:
id: 70 , name: Москва (Россия) - результат поиска
Enter region id: 70 - указываем идентификатор искомого региона
Do you want to add another region? [Y/n] - добавляем еще один регион
Enter region name: donetsk
Россия:
id: 3867 , name: Донецк (Ростовская область, Россия)
Другие города:
id: 260 , name: Донецк (Украина)
Enter region id: 260
Do you want to add another region? [Y/n] n - закончили выбор региона
Selected regions: 70, 260
Get the description of the program for a week? [Y/n] n - получать описание программы телепередач на всю неделю
Get the program description for today? [Y/n] - получать описание программы телепередач на сегодня
Get the description of the program for tomorrow? [Y/n] - получать описание программы телепередач на завтра
Always enable quiet argument? Need for TVHeadend 4.0 [y/N] - принудительно отключить вывод сообщений. Мне понадобился при работе с TVHeadend 4.0.9, т.к. сама программа не передает параметр '--quiet', а в этой версии отсутствует возможность указать параметры командной строки для запуска скрипта
По окончанию опроса, получаем файл конфигурации с содержимым:
Код:
[general]
conf_ver = 2

[account]
email = my@mail.ru
password = p@ssword

[settings]
date_delay = 0
event_delay = 0.1
region_ids = 70, 260
des_week = 0
des_today = 1
des_tommorow = 1
force_quiet = 1
При необходимости, эти данные можно скорректировать вручную. Повторный запуск команды '--configure' затрет существующий файл.

Желательно не включать получение описания на всю неделю, т.к. это длительный процесс. Например на получение описания программы телепередач на сегодня-завтра для 119 каналов у меня ушло 42 минуты. Для получения списка передач без описания, уходит около 3-х минут

Последний раз редактировалось vl.maksime; 25.04.2019 в 08:41.
vl.maksime вне форума   Ответить с цитированием