Плагин e2m3u2bouquet (Мод от Dorik1972)

_777_

Moderator
Команда форума
UPDATE
1.0.75


1) Исправлена досадная опечатка в коде, приводившая к вылету при попытке сохранить лог-файл
2) Небольшие изменения в итераторе XML, дающие выигрыш в 1-2 секунды на каждые 100 000 обработанных записей
3) Немного обновлен дизайн штатного скина. Более строго и лаконично.
4) Переработан алгоритм автовыбора событий EPG по названию канала. Теперь, если после предварительного анализа среди кандидатов не обнаружено точного совпадения, применяется алгоритм Дамерау-Левенштейна поиска наибольшего совпадения, основанный на итеративной версии алгоритма Вагнера-Фишера (это работает тогда и только тогда, когда EPGurl устанавливается в настройках провайдера.) - Теория -

Код:
https://www.codeproject.com/Articles/5342019/An-Optimal-Wagner-Fischer-Algorithm-For-Approximat
 

Вложения

_777_

Moderator
Команда форума
UPDATE
1.0.76


Исправлена ошибка "segmentation fault", возникавшая на DreamTWO (OE2.6) после импорта событий EPG... Теоретически она могла возникать и на других версиях OE... но пока никак себя не проявила
 

Вложения

_777_

Moderator
Команда форума
UPDATE
1.0.77


1) Исправлена ошибка синтаксического анализа плейлиста m3u при использовании автоматического выбора событий EPG по названию канала, которая спорадически возникала на некоторых вариантах плейлистов m3u.
2) "Игра" с кодом EPGImport... Теперь код максимально компактный, максимально понятный и более "закрученный" =) и работает с тем же импортом
производительность вне зависимости от используемой логики... будь то twisted.reactor.doRead или twisted.internet.threads.deferToThread. Скорость импорта событий EPG зависит
только от производительности процессора вашего SAT-бокса и скорости чтения/записи на накопитель (HDD/USB/Internal Flash)
3) Немного дополнил и реорганизовал вывод логов для большей информативности происходящего
4) Обновленная итальянская локаль
 

Вложения

_777_

Moderator
Команда форума
UPDATE
1.0.78


1) Исправлено появление ошибки "names.client" для образов со старой или урезанной скрученной библиотекой (Merlin, Pure2 и т.д.)
2) Функциональность xml_escape и xml_unescape для файлов XML была полностью переписана. Вместо использовавшегося ранее модуля xml.sax.saxutils теперь используются предварительно скомпилированные правила для regexp и модуль name2codepoint. Это повысило как скорость, так и качество обработки. Часто описания программ в XMLTV содержали HTML-теги, попавшие туда из-за плохого парсинга провайдером HTML-ресурсов с описаниями программ... Теперь, благодаря name2codepoint, unescape описаний программ намного чище и точнее... с учетом unescape всех возможных тегов XML и HTML
3) Для образов с поддержкой threads.deferToThread (90% существующих образов) сейчас практически никогда не создаются временные файлы. Все операции по загрузке и обработке каких-либо данных происходят в ОЗУ-«трубе». Временные файлы будут созданы автоматически тогда и только тогда, когда не хватит свободной оперативной памяти для хранения и обработки данных... причем, они будут созданы на носителе с наибольшим доступным свободным пространством. Информация о доступной оперативной памяти и количестве кэшированных данных отображается в журнале. Хранение и обработка в оперативной памяти — исключает медленные операции чтения/записи на любых носителях. Операции в оперативной памяти априори самые быстрые!
4) Любые операции парсинга m3u или XML файлов делаются на базе "генераторов". Генераторы в питоне — самые быстрые и наименее «прожорливые» функции как по ресурсам ЦП, так и по ОЗУ
 

Вложения

_777_

Moderator
Команда форума
UPDATE
1.0.79


1) Исправлена утечка памяти при использовании алгоритма автоопределения событий EPG по названию канала из плейлиста (если EPGurl устанавливается в карточке провайдера). Это привело к перегрузке некоторых "слабых" SAT-боксов на некоторых провайдерах.
2) Немного оптимизирована часть кода алгоритма Дамерау-Левенштейна... Теперь "разница" строк ищется намного быстрее
 

Вложения

_777_

Moderator
Команда форума
UPDATE
1.0.80


1) Исправлен журнал сбоев для образов VTi.
2) Немного переработан алгоритм автовыбора EPG по названию канала для повышения точности его работы
3) htmlentitydefs включен как модуль, и плагин больше не требует установки этой зависимости
4) В очередной раз немного переработан алгоритм импорта событий EPG. Исправлены ошибки Python для корректной работы с ZIP-архивами EPG.
 

Вложения

Последнее редактирование:

_777_

Moderator
Команда форума
UPDATE
1.0.82


1) Добавлена поддержка экспериментальных (разрабатываемых) образов на Python 3.11 (OpenVision, OpenPli и т.д.)
2) Реорганизация кода в соответствии с требованиями PEP8
3) Незначительные изменения логирования

ps Экспериментальные изображения не стабильны и содержат много ошибок. Перед установкой плагина на образы на основе Python 3.11 убедитесь, что символическая ссылка /usr/bin/@python связана с python3.11 !!!
 

Вложения

Последнее редактирование:

_777_

Moderator
Команда форума
UPDATE
1.0.85


1) Исправлен синтаксический анализатор m3u для правильной обработки тега «время наверстывания». В некоторых случаях эта ошибка приводила к невозможности парсинга плейлистов m3u, выводя в лог ошибку о несоответствии типа данных
2) Исправлена небольшая досадная неточность в парсере EPG. Теперь импорт событий событий происходит намного быстрее благодаря исключению событий канала, которых нет в используемом вами плейлисте m3u.
3) В импортер EPG добавлена поддержка HTTP-сжатия "gzip, deflate", что в некоторых случаях позволяет значительно уменьшить объем получаемых данных, а значит, ускорить загрузку нужных файлов

Счастливого Рождества и наслаждайтесь использованием плагина!
 

Вложения

_777_

Moderator
Команда форума
UPDATE
1.0.86


Исправлена «размерность» значения параметра dvb_event_id при добавлении записей epg.db в DreamOS. Описания будущих событий теперь будут отображаться в скине «Выбор EPG» на любых изображениях DreamOS.

ps Я настоятельно рекомендую вам удалить существующую базу данных epg.db в DreamOS перед созданием букетов/EPG.

Код:
systemctl stop enigma2
rm /etc/enigma2/epg.db
systemctl start enigma2
 

Вложения

_777_

Moderator
Команда форума
UPDATE
1.0.87


1) Слегка оптимизирован алгоритм разбора даты в XMLTV
2) Добавлены фильтры для нормализации знаков препинания, различных символов юникода, которые в большинстве изображений не отображаются в скинах, двойных пробелов, различных html-тегов и т.п при разборе данных XMLTV
3) Добавлена проверка заголовков "if-modified-since"/"Last-Modified" при обработке пиконов каналов. Теперь если файл пикона изменился на сервере провайдера, он будет скачан заново (Эта опция увеличивает время парсинга m3u, не критично, но увеличивает. Все зависит от количества пиконов и скорости вашего интернет соединения. Если не нужно постоянно проверять наличие изменений в файлах пиконов - просто "выключить" - "Скачать пиконы" после того, как вы их один раз скачали)
4) В режиме "кастомной" сортировки добавлена возможность смены "плеера" для отдельных каналов, отличного от дефолтного у провайдера. Для этого вам необходимо установить его числовое значение для тега «reftypeOverride» в файле шаблона (***-override.xml) вашего провайдера. Допускаются следующие значения: 5001 (gstplayer), 5002 (exteplayer3), 4097 (gstreamer), 1 (dvb). Замена "плеера" (reftype) будет работать тогда и только тогда, когда указанный вами плеер установлен в используемом вами образе
Например:

Код:
<channel name="Eurosport 1 HD" nameOverride="" tvg-id="" enabled="1" reftypeOverride="5001"/>
ps Если вы использовали ****-override.xml раньше и не хотите заново создавать его для текущего изменения, просто преобразуйте его с помощью sed

Код:
sed -i 's/serviceRefOverride/reftypeOverride/g' your-override.xml
Функционал и назначение файлов шаблонов можно посмотреть здесь -

Код:
https://www.linuxsat-support.com/thread/130052-plugin-e2m3u2bouquet/?postID=647466&highlight=Grand#post647466
 

Вложения

_777_

Moderator
Команда форума
UPDATE
1.0.88


1) Расширен диапазон юникодовых символов, отфильтрованных в названиях групп, каналов, описаниях... Многие изображения Е2 просто не отображают всякие "сердечки", "бубны", "бубны" и прочий "мусор" . Поэтому «фильтровать» все
2) Оптимизирована проверка "не изменились ли пиконы на сервере провайдера"... теперь работает чуть быстрее...
3) Убран вывод в лог сообщений при переопределении плеера
4) Немного оптимизировали код парсера m3u и ***-sort-override, чтобы было меньше преобразований строк из str в unicode и наоборот.. теперь вне зависимости от версии python мы всегда получаем "str" при парсинге и работе с этим типом данных
5) Немного ускорил парсер EPG....но дает прирост скорости только на python 3.11-based E2 Images...на остальных останется как было
 

Вложения

_777_

Moderator
Команда форума
UPDATE
1.89


1) Исправлены самопроизвольные зависания и прерывание импорта событий при импорте EPG у некоторых пользователей
2) Исправлено отображение заданных значений в карточке провайдера при изменении параметров плеера (exteplayer3, gstplayer)
3) Тщательно переписан код EPGImport. Более агрессивная экономия оперативной памяти. Код максимально асинхронный. Добавлено дополнительное логирование любых нестандартных ситуаций и текущих действий.

ps Эта версия кода для EPGImport станет основой и будет перенесена в мой мод плагина EPGImport для любых изображений E2

Особая благодарность
YC78
, огромные пожертвования проекта и тестирование на плейлистах самых распространенных провайдеров IPTV, а также новые возможности плагина IPTVArchive
jeepcook, за тестирование изменений в его "сумасшедших"-огромных плейлистах (более 300 тысяч записей) и за терпение
 

Вложения

Верх