21 ноября | 2024г. | 23:53:11


АвторТема: Плагин Loader_Epg_Xml  (Прочитано 3316 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1385
  • Поблагодарили: 8610
  • Уважение: +147
Плагин Loader_Epg_Xml
« Первое сообщение: 15 ноября | 2023г. | 21:51:31 »
+4
Плагин Loader_Epg_Xml ver. 2.0

Делал для себя, когда несколько лет назад EpgImport очень долго качал и обрабатывал epg, можно было ждать до часа... Не знаю, как сейчас, я так и скачиваю вручную в /tmp и оттуда EpgImport очень быстро все обрабатывает, не более 5 минут.

Эта версия имеет расширенные функции:
- Проверяет не скачивая, обновился ли файл с epg в трех самых известных источниках:
Спойлер   :
Скрытый текст
Для просмотра нужно иметь не менее 3-х сообщений
или Оформить подписку
о чем и сообщает нам, выводя дату и время последнего изменения файла на сервере и его размер. Так же сравнивает с предыдущим запросом, о чем тоже сигнализирует.
- если в папке /tmp уже есть скачанные оттуда фалы, тоже сообщает их дату, время и размер.
- может вручную скачивать файл с любого из трех этих источников.
- может при запуске автоматически скачивать файлы из этих источников, если какой то из них обновился.

Порядок работы.
Спойлер   :
В ipk не паковал, поэтому из архива папку Loader_Epg_Xml копируем в /usr/lib/enigma2/python/Plugins/Extensions
Файл loaderepg.conf копируем в /etc
Перезагружаем GUI.
В ресивере должен быть установлен curl.
В файле loaderepg.conf конфиг: первая строка это путь для сохранения статистики и промежуточных операций, вторая строка это путь, куда будут сохраняться скачанные при необходимости файлы с epg. По умолчанию это /tmp. Можно оставить все, как есть.
При запуске плагина, все нужное отображается сразу, при нажатии зеленой кнопки данные с сервера будут обновлены еще раз, но без фанатизма, так как при каждом нажатии идут запросы в эти три источника. При нажатии кнопок 1, 2 или 3 будут принудительно скачаны (в фоне) соответствующие файлы в указанное в конфиге место.
Если в файле plugin.py в строке 210 'n' заменить на 'y' - файл будет скачиваться автоматически при запуске плагина, если он был там обновлен с предыдущего раза.
Фалы: epg.xml.gz, epg-sat.xml.gz, xmltv-t-s-d.xml.gz для указанных трех источников соответственно.
Скин под FHD и HD одинаковый, по свободе может сделаю под HD.
При отсутствии интернета, или как многие пишут, при недоступности второго источника, креша не должно быть, а после паузы все недоступные данные будут заменены нолями, но нужно посмотреть...
Ну, как бы ничего особенного и не часто востребовано.
Но я основной код написал на с++ и скомпилировал в либку libchepg.so, которую подключает плагин и использует результаты ее работы, а на Python только сам плагин для вывода результатов на экран телевизора.
Либки скомпилировал для разных архитектур и даже компьютера на линуксе, плагин сам подключит нужную. На arm и компьютере все работает, ну а mipsel и sh4 мне проверять не на чем.
Либка libchepg.so является разделяемой библиотекой и ее можно подключать например к другим плагинам или конвертору и использовать результаты ее работы там, поэтому файл конфигурации и вынесен в /etc, это чтобы не зависеть от этого конкретного плагина в будущем.
В общем экспериментирую  :hi:
Спойлер   :
[ Гостям не разрешен просмотр вложений ]


Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1385
  • Поблагодарили: 8610
  • Уважение: +147
Плагин Loader_Epg_Xml
« Ответ #1: 21 ноября | 2023г. | 15:55:37 »
+1
Версия 2.1
- добавлен HD скин, его поддержка в плагине и графика для него.

P.S. Написал простенький мини конвертер скинов для плагинов, работает в ресивере и на компьютере на linux, пересчитать FHD в HD, или наоборот - 3 сек. Как доведу до ума выложу, может кому пригодится   ;)

Оффлайн Frolly_Molly

  • Младший Джедай
  • **
  • Сообщений: 105
  • Поблагодарили: 177
  • Уважение: +2
Плагин Loader_Epg_Xml
« Ответ #2: 21 ноября | 2023г. | 16:19:49 »
0
Как то можно добавить скачивание с выбором между epg-sat.xml.gz и epg-iptv.xml.gz?

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1385
  • Поблагодарили: 8610
  • Уважение: +147
Плагин Loader_Epg_Xml
« Ответ #3: 21 ноября | 2023г. | 16:49:00 »
0
Frolly_Molly, теоретически конечно можно, но это нужно переделывать абсолютно всё, поэтому не буду. Файлы epg-sat.xml.gz и epg-iptv.xml.gz совершенно разные и имеют свое собственное время модификации размер, ну разве что через костыль, но будет не красиво.
Если вам так нужен файл epg-iptv.xml.gz напишите простенький скриптик для скачивания и запускайте его, когда нужно, или без скрипта просто из командной строки.

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1385
  • Поблагодарили: 8610
  • Уважение: +147
Плагин Loader_Epg_Xml
« Ответ #4: 09 января | 2024г. | 19:24:48 »
+1
Исправил не верное отображение даты скачанного файла в ресивере, если число месяца от 1 до 9. Файл plugin.py из прицепа скопировать с заменой и перезагрузить GUI  :hi:

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1385
  • Поблагодарили: 8610
  • Уважение: +147
Плагин Loader_Epg_Xml
« Ответ #5: 06 февраля | 2024г. | 00:18:08 »
0
добавить скачивание ...... epg-iptv.xml.gz?
Вот набросал простенький bash скриптик (вообще bash очень интересная и быстрая штука), скачивает файл epg-iptv.xml.gz с ресурса ru...ma.c...m....a в папку /tmp ресивера, перед этим проверяет на сервере не скачивая его размер, дату и время изменения.
Копируем файл Loader_Epg_Xml_Bash.sh в любое удобное место в ресивере, например в /media/hdd/ присваиваем ему права на запуск и запускаем командой /media/hdd/Loader_Epg_Xml_Bash.sh, будет выведена информация о предыдущем размере и дате модификации файла и его текущими данными на сервере. Если ввести число 1 и подтвердить, то файл epg-iptv.xml.gz будет скачан в папку /tmp ресивера.
Файл saved_result.txt перед этим скопировать только в /media/hdd/ - в нем будут храниться данные.
Скрипт очень дружелюбный и его можно модифицировать как угодно, можно изменить пути, или приспособить под любой другой ресурс с EPG.
В ресивере должен быть установлен curl    :hi:
P.S. Обновил - раскрасил вывод в терминал
Спойлер   :
[ Гостям не разрешен просмотр вложений ]
Спойлер   :
[ Гостям не разрешен просмотр вложений ]

Оффлайн Leonstar

  • Джедай
  • ***
  • Сообщений: 454
  • Поблагодарили: 289
  • Уважение: +2
Плагин Loader_Epg_Xml
« Ответ #6: 06 февраля | 2024г. | 12:32:55 »
0
В ресивере должен быть установлен curl
Установлен, но уже несколько дней что-то с ним не так
Спойлер   :
[ Гостям не разрешен просмотр вложений ]
и при запуске Loader_ ... . получаю такую картинку.
Спойлер   :
[ Гостям не разрешен просмотр вложений ]
P.S.Проблема с сurl для меня важнее!


Оффлайн AndGaz

  • Младший Джедай
  • **
  • Сообщений: 56
  • Поблагодарили: 45
  • Уважение: +1
Плагин Loader_Epg_Xml
« Ответ #7: 06 февраля | 2024г. | 14:54:56 »
0
Спойлер   :
Скрытый текст
Для просмотра нужно иметь не менее 3-х сообщений
или Оформить подписку
- в России блокируется.

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1385
  • Поблагодарили: 8610
  • Уважение: +147
Плагин Loader_Epg_Xml
« Ответ #8: 06 февраля | 2024г. | 16:18:21 »
0
Leonstar, по вашему второму скрину: очевидно вы используете  средство запуска скриптов, но здесь интерактивный режим не поддерживается, нужно зайти в ресивер с помощью телнета и в командной строке запустить этот скрипт, введя или скопировав команду /media/hdd/Loader_Epg_Xml_Bash.sh, потом если хотите скачать файл нужно ввести цифру 1 и нажать Enter, для выхода нужно ввести любую другую цифру и подтвердить.
Curl обычно в наши ресиверы нужно ставить дополнительно, так как по умолчанию Curl отсутствует. Для проверки например, там же в командной строке введите строку curl eth0.me и подтвердите, если все нормально, в ответ получите ваш внешний IP адрес.

Оффлайн sunriser

  • Друзья Джедаев
  • *****
  • Сообщений: 929
  • Поблагодарили: 4195
  • Уважение: +68
Плагин Loader_Epg_Xml
« Ответ #9: 09 февраля | 2024г. | 00:11:24 »
0
в России блокируется.
Да, подтверждаю - без VPN никак...
Но, скрипт и т.д. работает отлично и быстро.

Онлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1385
  • Поблагодарили: 8610
  • Уважение: +147
Плагин Loader_Epg_Xml
« Ответ #10: 09 февраля | 2024г. | 01:14:31 »
0
и быстро
Это естественно. Ведь BASH не только командная оболочка, это еще и скриптовый язык программирования, не  для всех, но для очень многих задач, написанная на Си.
Если взять любой дистрибутив Linux, то это взятое за основу ядро и вокруг него "накручено" всякое-разное, например различные окружения рабочего стола и т.д. и часто накручено бестолково. По большому счету из-за этого называть дистрибутивы Linux на 100% операционной системой не совсем верно. Полностью законченной ОС является в этом смысле семейство BSD, но ручная установка и в итоге только командная строка вызывают затруднения, хотя потом уже можно добавить любое окружение рабочего стола.
Вот мы уперлись в Энигму2 и Python. Но наши ресиверы это компьютеры под управлением Linux, все тоже самое, ядро + графический интерфейс пользователя (GUI) это Энигма2, а Python установлен для удобства и выполнения всего, что на нем написано в ресивере + модуль DVB с драйверами, для выполнения не свойственных для Linux задач, но специфических для спутниковой приставки. Конечно архитектура процессоров накладывает ограничения в быстродействии.
Я к тому, что на наши ресиверы нужно смотреть шире, как на компьютер со своеобразной ОС под управлением Linux, многое установлено, многое можно добавить. Можно пользоваться готовыми возможностями Энигмы2, использовать Python, bash, можно запускать программы написанные на C и С++, а также библиотеки (либки) - все это прекрасно работает, а также другими возможностями Linux   :hi:

Теги:
 



X

Добро пожаловать!

Мы заметили, что у Вас установлено расширение AdBlock или ему подобное. Пожалуйста добавьте наш Клуб в белый список, внесите этим посильную лепту в его развитие. Спасибо!