Инструкция по импорту плейлиста через 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.Скачать необходимые файлы для импорта данных по API используя ODS-таблицы:
https://ftp.iptvportal.cloud/doc/API/ODS_API_inserter
2. Перенести свой плейлист в папку и переименовать в «playlist.m3u», предварительно удалив из папки файл с таким же названием.
3. Запустить скрипт _playlist_cleaner.py
Он удаляет из плейлиста playlist.m3u лишние переносы строк, табуляции и другие спецсимволы, приводя плейлист в вид, готовый для разбора регулярными выражениями.
На выходе создастся файл playlist_m3u.txt
4. Всё содержимое из playlist_m3u.txt скопировать.
5. Открыть файл playlist.ods
6. На листе «M3U» и стереть всё содержимое из столбца AO

7. Вставить на лист «M3U» в ячейку AM3
При вставке в ячейку откроется меню, в котором разделителем указать только Табуляцию, остальные разделители выключить.
Посте вставки, в ячейке, в которую вставляются данные, остаётся заголовок плейлиста, а каждая строка плейлиста вставляется в новую строку таблицы.

8. Используя регулярные выражения, данные плейлиста автоматически раскидываются по разным ячейкам таблицы.
Необходимо проверить правильно ли сработали все необходимые регулярные выражения, хватило ли высоты на которую растянуты формулы и нет ли лишних строк с формулами (если плейлист стал короче).
Соответственно если не хватило высоты то растянуть формулы до нужной высоты на всех страницах, или если есть лишние формулы снизу, то удалить лишние строки. Так же проверить хватило ли строк или есть ли лишние на листах «playlist» и «media».

9. На листе «CONFIG»:
- Выставить «1» в столбце «А», для действий которые будут активными.
- Ввести данные для авторизации: домен, логин и пароль от административной панели.
- Проверить правильно ли включены/выключены задания.

10. Сохранить и закрыть документ.
11. Запустить _API_inserter.py
Обязательно просматривать то, что пишется в лог и каждое действие подтверждать нажатием ENTER
После окончания работы скрипта импорт будет завершен.
При помощи этого инструмента можно не только импортировать плейлист, но и делать изменения любых таблиц базы данных IPTVPORTAL через API.
