Технические работы
В этом релизе мы оживили переработали раздел «Технические работы» в 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.