Форум XBMC и Kodi. Помощь, поддержка, обсуждение, плагины.
   

Вернуться   Форум XBMC и Kodi. Помощь, поддержка, обсуждение, плагины. > Разработка > Поддержка локальной разработки модулей

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

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
 
Аватар для vl.maksime
 
Регистрация: 18.10.2015
Адрес: Donetsk, Ukraine
Сообщений: 413
По умолчанию

v0.2.3
Для описания реализовал подмену спец-символов html, удаление html тегов
vl.maksime вне форума   Ответить с цитированием
Старый 10.09.2018, 20:58   #5
Gron
Member
 
Регистрация: 21.07.2016
Сообщений: 78
По умолчанию

Установил ваш скрипт, tvheadend в логе пишет вот это, подскажите в чем проблема:

2018-09-10 22:55:54.000 xmltv: /usr/bin/tv_grab_tv_mail_ru.py: grab /usr/bin/tv_grab_tv_mail_ru.py
2018-09-10 22:55:54.004 spawn: Executing "/usr/bin/tv_grab_tv_mail_ru.py"
2018-09-10 22:55:59.732 spawn: Traceback (most recent call last):
2018-09-10 22:55:59.732 spawn: File "/usr/bin/tv_grab_tv_mail_ru.py", line 967, in
2018-09-10 22:55:59.733 spawn: tv_grab.main()
2018-09-10 22:55:59.733 spawn: File "/usr/bin/tv_grab_tv_mail_ru.py", line 570, in main
2018-09-10 22:55:59.733 spawn: self.__load_program(region_id)
2018-09-10 22:55:59.733 spawn: File "/usr/bin/tv_grab_tv_mail_ru.py", line 672, in __load_program
2018-09-10 22:55:59.734 spawn: for event in events:
2018-09-10 22:55:59.734 spawn: TypeError: 'NoneType' object is not iterable
Gron вне форума   Ответить с цитированием
Старый 12.09.2018, 10:02   #6
Gron
Member
 
Регистрация: 21.07.2016
Сообщений: 78
По умолчанию

Не совсем понятно как добавить канал из другого региона (часового пояса). Например канал "Первый HD" вещает у меня по московской сетке вещания а программу передач подтягивает по времени моего региона.
Gron вне форума   Ответить с цитированием
Старый 12.09.2018, 13:53   #7
vl.maksime
Senior Member
 
Аватар для vl.maksime
 
Регистрация: 18.10.2015
Адрес: Donetsk, Ukraine
Сообщений: 413
По умолчанию

Необходимо в шапке сайта выбрать другой город, который соответствует требуемому часовому поясу. После этого отображен список телеканалов этого региона, при этом все пометки избранного будут сброшены, т.к. для каждого региона они настраиваются отдельно. В текущем регионе найдите нужные каналы и добавьте их в избранное. После этого, регион надо будет добавить в конфиг.
Для добавления региона, можно повторно инициализировать формирование конфига и добавить несколько регионов. Или же запустить поиск телеканала в нужном регионе, тогда код региона можно будет увидеть в адресной строке:
Код:
https://tv.mail.ru/search/?region_id=70&q=Россия+1
Для Москвы код региона = 70

Мне пришлось использовать 3 региона, чтоб собрать телепрограмму по максимуму.
__________________
Репозиторий: https://github.com/vlmaksime/repository.vlmaksime/releases
Опрос по используемым версиям KODI: http://xbmc.ru/forum/showthread.php?t=15419
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


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


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