Плагин Loader_Epg_Xml ver. 2.0 Делал для себя, когда несколько лет назад EpgImport очень долго качал и обрабатывал epg, можно было ждать до часа... Не знаю, как сейчас, я так и скачиваю вручную в /tmp и оттуда EpgImport очень быстро все обрабатывает, не более 5 минут.
Эта версия имеет расширенные функции:
- Проверяет
не скачивая , обновился ли файл с epg в трех самых известных источниках:
о чем и сообщает нам, выводя дату и время последнего изменения файла на сервере и его размер. Так же сравнивает с предыдущим запросом, о чем тоже сигнализирует.
- если в папке /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, это чтобы не зависеть от этого конкретного плагина в будущем.
В общем экспериментирую