Подборки
Страница создания подборки изменилась почти до неузнаваемости — теперь подбор фильмов можно автоматизировать с помощью множества фильтров (по жанру, по рейтингу, году производства и прочему):

Помимо этого на страницах актёра и режиссёра появилась новая кнопка «Создать подборку», которая автоматически создаёт подборки фильмов с указанным актером или производства указанного режиссёра.

Внешние кинотеатры
Добавлена новая опция --update_assets_promos для обновления промо-изображений у ассетов для всех скриптов синхронизации каталогов с внешними кинотеатрами.
START
- Для фильмов кинотеатра START теперь импортируются страны производства.
- Добавлена новая опция
BILLING_ON_ACCOUNT_TARIFF_SUBSCRIBE_CINEMA, позволяющая дублировать навешивание тарифного пакета на абонента в Billing API-методеAccountTariffAssignи отключать тарифный план у абонента вAccountTariffRemove. Опция необходима как временный фоллбэк для операторов, которые устанавливают тарифные планы аккаунтам и хотят использовать интеграцию кинотеатра START.
Premier
- В команду импорта фильмов
premier_sync_contentдобавлена опция--ignore_main_genres, при указании которой отключается создание жанров-категорий для фильмов (остаются только обычные жанры) - Поправлена опция
--remove_outdated, благодаря чему теперь в каталог точно попадают только фильмы с корректными правами на показ
MEGOGO
- Исправлена ошибка подключения/отключения тарифа с кинотеатром MEGOGO.
Kinopoisk Unofficial API
Парсинг меты фильмов и актёров из Kinopoisk Unofficial API стал ещё более глубоким:
- при парсинге информации о фильме для актёров теперь дополнительно заполняется поле
kinopoisk_id - добавлен парсинг страны для актёра
- при отсутствии возрастного рейтинга у фильма на Kinopoisk теперь он вычисляется на основании поля
MPAA
EPG
- Сделали работу удаления устаревших постеров более прозрачной и выделили этот процесс в отдельную management-команду: clean_old_media. После обновления на этот релиз удаление графики в рамках команды epg_import перестанет происходить, поэтому рекомендуем добавить эту новую команду в крон вашей Smarty
#осторожносовместимость - Скорректировано время отображения начала и конца передачи в админке Smarty — теперь они отображаются в формате UTC+0.
Реклама
- Для рекламных провайдеров добавлена передача реального IP-адреса аккаунта при запросе рекламы в параметре
Lynx-Client-IP. - Добавлен отчёт по показам и запросам рекламы с фильтрацией по времени и рекламному блоку.

- В настройках рекламного блока теперь можно задать частоту показа рекламы в формате «N показов в час», а также сделать разные рекламные блоки для показа рекламы для архивных записей и для Live-трансляций.


Оплата через СБП для Payture
Мы дополнили интеграцию с платежным шлюзом Payture, чтобы с помощью него можно было показывать QR-код для оплаты по СБП.
На данный момент данный функционал используется только в одном из наших кастомных шаблонов, по запросу его можно также добавить в другие шаблоны интерфейсов.
Paypal
Восстановлена корректная работа платёжного шлюза Paypal, а также добавлена новая опция для возможности отладки платежей в песочнице.
Новые опции Smarty
- Добавлена новая опция TVMIDDLEWARE_VIDEO_PREMIERE_YEARS для установки количества лет с даты производства фильма, в течение которых он считается премьерой.

- Добавлена новая опция TVMW_LIMIT_TRANSACTION_COUNT, позволяющая ограничивать количество создаваемых финансовых транзакций в течение 10 минут. Опцию можно использовать как антифродовый инструмент.
- Добавлена новая опция TVMW_NOTIFY_TARIFF_ACTION, с помощью которой можно отключить отправку уведомлений о смене тарифного плана на экран ТВ (актуальна, если тарифные планы меняются с экрана телевизора).
Админка
- При поиске актёров для добавления в фильм ограничение на длину результата поиска увеличено с 5 до 20 актёров.

- В панели администрирования на странице абонента теперь отображаются все сохраненные карты, а не только та, с которой осуществляется автоплатёж.
- При настройке ленты «Передачи» для дашборда модернизирован фильтр по жанрам — теперь можно учитывать при создании ленты как объединение жанров, так и их пересечение.

- В админку добавлен функционал «Дилеры» для подписочной логики биллинга.
- В отчет по оплатам добавлены поля «Бренд устройства», «Модель устройства», «Подключенные тарифы у абонента, на момент создания отчета».
- Исправлено отображение названия устройства на графиках «Динамики абонентов» — теперь отображается именно название устройства, а не его тип.
- Исправлена вёрстка страницы настройки канала.
TVMiddleware API
- В ответе
VideoUrlтеперь возвращается трейлер, если у аккаунта есть только доступ к просмотру контента. - Добавлен новый метод
ActorListSearchдля поиска актеров по имени. - В методы
SelectionDetailиNoAuthSelectionDetailдобавлен входной параметрorder, а для видео добавлены параметры ответаis_favoritedиad_banner. - В ответе методов
ChannelListиProgramCategoryChannelListтеперь возвращаются в первую очередь каналы с пользовательской сортировкой, потом все остальные (все новые каналы при включенной пользовательской сортировки оказываются внизу списка) - В методе
AccountRegisterпри попытке регистрации с уже использованным ранее номером возвращается ошибка 6. - В методе
CustomerTariffSubscribeдля переданного параметраtry_activateисправлено двойное списание средств при смене базового тарифа. - В метод
NoAuthDeviceExistsдобавлен новый параметрext_id. - В метод PortalDashboardVideoList добавлены поля ответа поля
kinopoisk_rating,imdb_rating,average_customers_rating. - В методе
SelectionDetailубран параметрpageи добавлен параметрcursor, а в ответ добавлен параметрnext_cursor. - В методы
VideoListиVideoDetailдобавлено поле is_4k. - В методы
ProgramDetail,ProgramList,ProgramCategoryRecordList,SelectionDetailдобавлено поле ответаads_available. - В методы
VideoList,NoAuthVideoList,VideoEpisodeList,VideoEpisodeDetailдля видеофайлов добавлены поляpositionиis_viewed.
Billing API
- Параметр
subscribe_svodв методеCustomerTariffAssignтеперь отмечен какdeprecated— если тариф содержит в себе кинотеатр, то он будет подключен по умолчанию.
Другое
- Исправлена работа скрипта
migrate_to_nbна аккаунтах без даты активации/деактивации, но с датой продления. - В подписочной логике биллинга теперь есть возможность с помощью промокода добавлять подписку на тот же тариф, который уже есть у абонента.
- Исправлена ошибка в команде
check_streamsдля Python 3.7. - Исправлены миграции для Oracle.