Технические работы
В этом релизе мы оживили переработали раздел «Технические работы» в Smarty.


Данный раздел помогает корректно обрабатывать аварии, возникающие на стримминг-сервисах:
- исключать из пользовательского интерфейса архивные записи передач, во время которых на канале велись работы или была авария
- отдавать плееру ссылку на поток-заглушку в случае недоступности канала или стрим-сервиса
Как это работает:
- Например, заранее известно, что на одном из стрим-сервисов будут проводиться технические работы и каналы с него будут недоступны. В этом случае заранее или в момент этих работ в админке можно создать объект «Технических работ»
- Заполнить их длительность или оставить незаполненной, если это авария и неизвестно, когда она закончится (по окончании аварии можно будет отредактировать созданный объект и задать время окончания)
- Специальная команда в Smarty разметит недоступный для абонентов контент и вместо черного экрана в плеере или артефактов они увидят поток-заглушку или выключенную возможность запуска архивной записи. Подробнее в документации.

Видеотека и внешние кинотеатры
- В команду очистки дублированных жанров
clean_duplicated_genres
добавлена новая опцияonly_enabled
, чтобы не удалять скрытые жанры при очистке. - Внесены исправления в команду очистки лишних актёров
remove_invalid_actors
. - Исправлен ряд ошибок в работе внешнего поставщика меты TMDB — скорректирован парсинг сериальной меты, а также добавлено заполнение рекламного баннера фильма.
- Для нового режима архивной видеотеки исправлено разделение фильма и сериала с одинаковым названием (если в архиве есть фильм и сериал с одинаковыми названиями, то они теперь корректно разделяются на разные тайтлы).
Общее для внешних кинотеатров
- Глобально переработана команда
check_video_subscriptions
, благодаря чему должны решиться все возможные расхождения в количестве созданных подписок на стороне Smarty и внешних кинотеатров. - Обработаны различные типы аварий на стороне внешних кинотеатров — проблемы с загрузкой постеров, временная недоступность всех ресурсов кинотеатра и подобные.
- Во все команды синхронизации фильмов из внешних кинотеатров добавлен параметр
--client_ids
для возможности изолированного запуска импорта на мультипровайдерных инстансах Smarty.
START
- В админке на странице абонента появилась возможность точечно закрыть подписки во внешнем биллинге START.
- Скорректирована работа команды
cinema_start_resync_subscriptions
— теперь команда корректно закрывает и открывает подписки на обеих сторонах интеграции. А также появилась новая опция--customer_ids_from
и--customer_ids_file
для проверки подписок у конкретного списка абонентов. - Для фильмов START добавлен импорт похожих видео, на данный момент ещё не используется в интерфейсах.
- Добавлены недостающие параметры в запросы к START для корректного воспроизведения всех типов фильмов и сериалов.
Premier
- Для кинотеатра Premier отключено перезатирание загруженной меты при синхронизации каталога фильмов и сериалов.
Viju
- В админке на странице абонента появилась возможность точечно закрыть подписки во внешнем биллинге Viju.
- Улучшена стабильность работы интеграции с кинотеатром Viju.
Оптимизация хранения графики
Провели большой рефакторинг внутренней структуры хранения графики — постеров программ передач, графики фильмов и сериалов для видеотеки и иконок каналов. Что изменилось:
- команда импорта программы передач теперь сохраняет не более 1 постера каждого доступного формата (4:3, 16:9, 2:3 и так далее);
- изменена структура папок внутри директории media для всей перечисленной графики, что сократит время индексирования файлов при установке обновления;
- добавлены сигналы на удаление файлов картинок при удалении связанных с ними объектов в Smarty.
Массовая рассылка
- В форму массовой рассылки добавлено поле исключенных тарифов, а также возможность отправлять сообщения неактивным аккаунтам:

- На страницу «Сообщения и команды» добавлены фильтры по типу сообщения и по аккаунту, значения столбца «Аккаунт» сделано кликабельным, а также добавлен новый столбец «Сообщение прочитано»

- Добавлена новая служебная команда
restore_messages
, позволяющая доотправить неотправленные сообщения в случае выхода из строя Redis.
Новые опции конфигурации
DEFAULT_CHEQUE_EMAIL
— позволяет указать дефолтную почту для отправки чеков по платежам в случае её отсутствия у абонента.FEEDS_EXPIRE_TIME
— устанавливает период времени (в минутах), спустя который фид для Samsung Tizen TV будет считаться истекшим.
TVMW API
- В методе
CustomerInfoSet
исправлено значение по умолчанию для поляconfirmation_method
#осторожносовместимость
- Добавлен новый метод
LoginCustomerList
. - В ответ методов
CustomerDeviceList
иLogin
добавлены поляbrand_name
иdevice_model
. - В ответ методов
Login
,AccountRegister
иCustomerInfoSet
добавлен подтверждаемый номер телефона при повторном вызове метода. - В метод
AccountStatus
добавлен флагwith_tariffs
, при активности которого возвращается списокid
подключенных тарифов у абонента. - Добавлен новый метод
NoAuthPortalDashboardList
. - В ответ методов
NoAuthPortalDashboardVideoList
,PortalDashboardVideoList
,VideoList
иNoAuthVideoList
добавлены поляad_banner
,horizontal_poster
иlogo
. - Добавлен новый метод
NoAuthVideoEpisodeList
. - В ответе метода
VideoDetail
элементы поляactions
теперь сортируются по сезонам и эпизодам, а также добавлены поляepisode_sort
иseason_sort
. - Добавлен новый метод
VideoSimilar
. - В методы
SelectionDetail
иNoAuthSelectionDetail
добавлены поляlogo
иhorizontal_poster
для объектов видео, поляscreenshot_b_big
иpackage_videos
убраны изcompact
-режима работы метода#осторожносовместимость
- Оптимизирована работа метода
SelectionList
. - В метод
NoAuthSelectionDetail
добавлен новый параметр запросаportal_dashboard_id
. - Добавлен новый метод
NoAuthActorDetail
. - Добавлен новый метод
NoAuthProviderList
. - В ответ метода
PaymentList
для каждого элемента добавленid
транзакции. - Добавлен новый метод
PaymentGetCheque
для получения ссылки на чек об оплате. - В ответ метода
PaymentQRCode
новый выходной параметрtransaction_id
. - В ответ
PaymentSavedCardList
добавлено полеfor_autopayment
. - Исправлена ошибка отображения скрытых тарифов в методе
NoAuthPortalClientTariffList
— ранее данный метод возвращал все тарифы с ненулевым периодом вне зависимости от свойства «Скрытый». - В ответ метода
ChannelListV2
добавлено полеis_parent_control
.
Content API
- В методах
VideoModify
иVideoCreate
скорректирована работа загрузки изображений, в ответ добавлено полеupload_errors
, если возникли ошибки при сохранении изображений. А также в методах появились новые параметры запросаsimilar_set
,similar_add
иsimilar_remove
для заполнения списка похожих фильмов у видео. - Добавлены новые методы
SelectionCreate
иSelectionModify
для создания подборок контента.
Админка
- На страницу настройки типа устройства добавлены новые поля для кастомизации баннера главного экрана в шаблоне Sibseti.


- Добавлен новый режим работы разделов абонентов, аккаунтов и устройств внутри админки, при котором при открытии перечисленных разделов показываются не списки, а только фильтры для них:

Данный режим будет особенно актуален для операторов с большой абонентской базой, у которых данные списки грузятся внушительное количество времени. Включить его можно опцией TVMW_SHOW_CONTENT_ALWAYS
.
- В настройку прав пользователей админки добавлено новое право «Просмотр Traceback», позволяющее просматривать трейсы, возникающие в админке (ранее такое право было только в рамках роли «Суперпользователь»)

- На страницу «Устройства» добавлены новые столбцы «Модель» и «Бренд».

- В форму создания подборки добавлен фильтр по видеопровайдеру:

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

- Добавлена новая команда
aggregate_ads_stats
для оптимизации формирования отчёта по рекламе. #осторожносовместимость
на стороне Smarty было убрано кеширование методовActorDetail
иNoAuthActorDetail
— рекомендуем добавить дополнительное кеширование данных методов на стороне Nginx.- Оптимизирован процесс очистки сессий у аккаунтов — теперь система не подвисает при удалении нескольких сотен сессий на мультилогинных аккаунтах.
- Доработана опция
TVMW_USE_PHONE_NUMBER_IN_ABONEMENT
— теперь при включении этой опции номер абонемента в админке также будет генерироваться на основании мобильного номера телефона, указанного у абонента. - Исправлено поведение авторизации при попытке войти с помощью
device_uid
, привязанного к другому аккаунту. - Исправлена ошибка, возникающая на мультипровайдерских инстансах Smarty — теперь поле e-mail у абонента должно быть уникально только в рамках Client, а не в рамках всей платформы.
- Подготовлена серверная архитектура для взаимодействия с внешними DRM-системами на примере провайдера EzDRM.