Разные типы устройств на основании моделей и брендов
Зачастую есть потребность разделять типы устройств по моделям для того, чтобы по-разному конфигурировать вещание и сервис в целом для разных моделей устройств. Всё это время данный функционал работал по алгоритму, описанному тут.
В этом релизе мы добавили более удобный и гибкий механизм разделения устройств на разные типы по моделям, брендам, юзер-агентам и даже идентификаторам.
EPG
Новые интерфейсы Sibseti и Redmax требуют наличия превью-изображений передач в формате 16:9 вместо привычных 4:3, поэтому механизмы импорта графики для провайдера EpgService были обновлены:
- добавлена новая опция
TVMW_EPG_DEFAULT_ASPECT_RATIO
, с помощью которой можно выбрать соотношение для главного превью-постера — 4:3, 2:3 и 16:9. - в скрипте импорта программы передач изменён механизм выбора главного постера среди тех, что предоставляет EpgService — теперь предпочтение отдаётся официальным постерам с текстовым названием контента, если они присутствуют в XML.
- поправлены ошибки при работе скрипта с параметрами
--force_reimport
и--fix_duplicates
.
С полной документацией по работе импорта EPG можно ознакомиться тут.
Видеотека
Проведён рефакторинг скриптов импорта фильмов из внешних кинотеатров для корректности заполнения поля updated_at
у фильмов, а также добавлено обновление главных постеров сериалов при выходе нового сезона.
Premier
- Проведена оптимизация команды импорта фильмов из кинотеатра Premier, а также добавлен новый параметр
--remove_outdated
для удаления устаревших фильмов. - Добавлен парсинг актёрского состава для фильмов.
START
- Добавлен механизм передачи идентификаторов тарифов со START в метод TVMW API VideoDetail, что позволяет подключать подписку START с помощью подключения тарифов со страницы фильма.
- В названия автоматических подборок фильмов из START теперь не подставляется подстрока «(START)»
- В админке на странице Абонента подправлена работа функционала проверки подписки на стороне START (требуется для дебага проблем при подключении подписки).
Megogo
- В интеграцию с Megogo добавлена поддержка создания режиссёров и поддержка Python3.
Kinopoisk API
- Исправлена ошибка в работе импорта меты о фильмах с помощью Kinopoisk Unofficial API.
Реклама
В этом релизе доработали форму создания рекламного блока — добавили возможность задать ему название в информационных целях, а также починили неприятный баг, из-за которого реклама на устройствах запрашивалась даже в том случае, если рекламный блок отключен.
Помимо этого теперь модуль работы с рекламой не требует настроенной и установленной MongoDB, что облегчает его использование и сокращает количество точек отказа механизма. Обновленная документация тут.
Подписочная модель биллинга
- Актуализировали скрипт
migrate_to_nb
для перехода на подписочную модель биллинга. - Добавили независимость в работе подписок — у каждой подписки теперь своя собственная дата продления.
- Добавили новый режим работы подписочной модели, при котором аккаунты всегда активны, а команда
check_accounts
отвечает только за продление и закрытие подписок. - Добавили возможность игнорирования логики базовости для подписок.
Регулярные команды
- В команду
cache_channel_list
добавлен новый параметрcontent_type
, для возможности запускать отдельно кеширование данных камер и каналов. - Добавлена новая команда
create_channel_selection_by_popularity
для автоматического создания подборки «Популярные каналы».
Content API
- В методы
EpisodeCreate
иEpisodeModify
добавлена возможность загружать превью-изображения серий с помощью параметраpreview_url
.
Billing API
- В ответ метода
CustomerList
для каждого абонента добавлен параметрmobile_phone_number
, а также в этот же метод добавлен входной параметрmobile_phone_number
для возможности искать абонентов по номеру телефона. - Добавлены методы
AccountTariffAssign
иAccountTariffRemove
для подключения и отключения тарифов аккаунтам. - Добавили поддержку интеграций с внешними кинотеатрами для подписочной модели биллинга.
Подробнее о подписочной логике биллинга можно почитать тут.
TV-Middleware API
- Добавлены входные параметры
compact
иlimit
в методыNoAuthSelectionDetail
иSelectionDetail
для возможности запрашивать содержимое подборок в оптимизированном варианте. - Теперь в методе
ProgramCategoryRecordList
для подборок с более чем 1 записью возвращается description первой передачи из подборки, а также подправлена отдача параметра position. - Добавлены методы
AccountTariffsList
,AccountTariffSubscribe
,AccountTariffUnsubscribe
для управления тарифов аккаунтов. - В ответ методов
CameraList
иSelectionDetail
для камер добавлено полеpreview_url
. - Для метода
VideoList
иVideoListNoAuth
добавлено новое возможное значение для параметраorder
—id
. - В ответ метода
PortalDashboardVideoList
добавлены поляis_season
,is_favorited
иthumbnail_big
. - Добавлены методы для отображения устройств аккаунта и их отвязки:
CustomerDeviceList
иCustomerDeviceDelete
. - В ответ метода
VideoDetail
в массивactions
теперь приходит новое полеepisode_id
. - Проведена оптимизация метода
ProgramListSearch
. - В метод VideoList добавлен новый параметр
history_only
.
Админка
- Массовую рассылку сообщений абонентам теперь можно осуществлять по списку мас-адресов из загруженного файла:
- Добавлено отдельное право на редактирование подборок для пользователей админки.
- Для ленты дашборда «Главное меню» появился пункт «Радиостанции».
- В формах создания и фильтрации скорректирован список устройств.
Другое
- Доработали логирование некоторых событий: оплат сохраненной картой и ошибок при оплате в целом
- Исправили ошибку совместимости Python в работе интеграции с Astra.
- Исправлено отображение информации о потоках Spectr.
- Исправлено неверное отображение статуса записи PVR в случае ошибки.
- Для объектов камер добавлено поле «Идентификатор во внешней системе».