Инструкция по импорту плейлиста через LibreOffice + Python Необходимые инструменты: — LibreOffice ( https://www.libreoffice.org/ ) (более популярные OpenOffice и MS Office к сожалению не подходят, т.к. не достаточно встроенных функций для работы с регулярными выражениями) — Python 3.12 или выше ( https://www.python.org/ ) При установке обязательно поставить галку "добавить переменную среды PATH" — Visual Studio Code ( https://code.visualstudio.com/ ) Это не обязательно, но удобнее Python-скрипты запускать через инструменты разработки. + установить в нём расширение Python (устанавливается в разделе Extensions) Внимание! Visual Studio Code по умолчанию запускается в безопасном режиме (не может выполнять код). Об этом пишет в верхней части окна в блинной синей полоске. Чтоб выполнить код нужно в этом оповещении нажать "Управление" и Разрешить выполнение кода. — Установить необходимые дополнительные модули для Python. При запуске скрипта, если не хватает каких-то модулей, Python выдаст ошибку и рекомендацию установить недостающий модуль. Установка производится командой в консоли: python -m pip install ИМЯ_МОДУЛЯ Файлы: playlist.m3u - плейлист в стандарте M3U (VOD или TV) _playlist_cleaner.py - скрипт очистки(подготовки) M3U-плейлиста, для копирования в таблицу. playlist.ods - таблица, из которой происходит импорт данных в IPTVPORTAL _API_inserter.py - скрипт, который получает данные из ODS-таблицы и импортирует их в IPTVPORTAL Порядок действий: 1. запустить скрипт _playlist_cleaner.py он удаляет из плейлиста playlist.m3u лишние переносы строк, табуляции и другие спецсимволы, приводя плейлист в вид, готовый для разбора регулярными выражениями. на выходе создастся файл playlist_m3u.txt 2. открыть playlist.ods всё содержимое из playlist_m3u.txt скопировать на лист "M3U" в ячейку AM2 (предварительно стереть всё содержимое из столбца AM) при вставке в ячейку откроется меню, в котором разделителем указать только Табуляцию, остальные разделители выключить. Посте вставки, в ячейке, в которую вставляются данные, остаётся заголовок плейлиста, а каждая строка плейлиста вставляется в новую строку таблицы. 3. далее, используя регулярные выражения, данные плейлиста автоматически раскидываются по разным ячейкам таблицы. Необходимо проверить правильно ли сработали все необходимые регулярные выражения, хватило ли высоты на которую растянуты формулы и нет ли лишних строк с формулами (если плейлист стал короче). соответственно если не хватило высоты то растянуть формулы до нужной высоты на всех страницах, или если есть лишние формулы снизу, то удалить лишние строки. так же проверить хватило ли строк или есть ли лишние на листах "playlist" и "media". 4. Проверить правильно ли включены/выключены задания на листе "CONFIG". После чего сохранить и закрыть документ. 5. Запустить _API_inserter.py и внимательно смотреть на то что пишется в лог и каждое действие подтверждать нажатием ENTER После окончания работы скрипта импорт будет завершен. При помощи этого инструмента можно не только импортировать плейлист, а делать любые изменения любых таблиц базы данных IPTVPORTAL через API.