Форум XBMC \ Kodi Russia
   

Вернуться   Форум XBMC \ Kodi Russia > Разработка > Поддержка локальной разработки модулей

Ответ
 
Опции темы Опции просмотра
Старый 22.05.2017, 00:40   #1
vl.maksime
Senior Member
 
Регистрация: 18.10.2015
Адрес: Donetsk, Ukraine
Сообщений: 238
По умолчанию 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; 07.07.2017 в 00:23.
vl.maksime вне форума   Ответить с цитированием
 

Старый 06.07.2017, 00:27   #2
Akmazik
Junior Member
 
Регистрация: 25.12.2016
Сообщений: 1
По умолчанию

python tv_grab_tv_mail_ru.py --configure --config-file test.conf

Код:
Traceback (most recent call last):
  File "tv_grab_tv_mail_ru.py", line 850, in <module>
    tv_grab.configure()
  File "tv_grab_tv_mail_ru.py", line 99, in configure
    config_file = open(self.__get_config_path(config_file), "w")
UnboundLocalError: local variable 'config_file' referenced before assignment
Akmazik вне форума   Ответить с цитированием
Старый 07.07.2017, 00:25   #3
vl.maksime
Senior Member
 
Регистрация: 18.10.2015
Адрес: Donetsk, Ukraine
Сообщений: 238
По умолчанию

v0.2.2
Исправил ошибку.
В файл конфигурации добавил новый параметр 'force_quiet', который выключает вывод в лог любой отладочной информации. Мне понадобился для отключения вывода посторонней информации в tvheadend 4.0.9. Параметр подгружается, если версия файла конфигурации больше '1'

Дополнил описание в шапке.

Последний раз редактировалось vl.maksime; 12.07.2017 в 08:51.
vl.maksime вне форума   Ответить с цитированием
Старый 12.07.2017, 08:51   #4
vl.maksime
Senior Member
 
Регистрация: 18.10.2015
Адрес: Donetsk, Ukraine
Сообщений: 238
По умолчанию

v0.2.3
Для описания реализовал подмену спец-символов html, удаление html тегов
vl.maksime вне форума   Ответить с цитированием
Ответ

Метки
tv.mail.ru, tvheadend, tv_grab, xmltv
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Tvheadend EPG xmltv tv_grab_ru MATPOC Подсказки, описания и FAQ по XBMC 61 17.09.2014 22:58
XMLTV на linuks NAS aisman Off-Topic 1 17.12.2012 19:24


Текущее время: 07:41. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.