В релизе Smarty 2.2 подготовили новые фичи внутри модуля «Фиды», интеграцию с платежным шлюзом Viva, новый режим работы видеотеки из архива и многое другое.
Новое в модуле «Фиды»
Доработан функционал показа фидов на платформе Tizen TV.


А также добавлена поддержка ленты «Продолжить просмотр/Избранное» для Android TV.

Интеграция Smarty с Viva
В Smarty интегрирована оплата с помощью европейского платёжного шлюза Viva, родом из Греции. Данная интеграция актуальна для операторов, использующих внутренний биллинг Smarty для тарификации абонентов.
Видеотека из архивных записей
Вы давно просили нас обогатить раздел «Архив» фичами основного видеокаталога: добавлением в избранное, фильтрами по актёрам, странам, рейтингу и прочему, а также правильным и красивым распределением серий по сезонам у сериалов. Поэтому в этом релизе представляем вашему вниманию новый режим показа архивных записей — Видеоархив.
В этом режиме специальная команда make_vodpvr создаёт объекты Video на основании прошедших передач с архивной записью. Перечислим особенности работы нового режима по сравнению со старым:
- так как команда создаёт именно объекты Video, то в интерфейсе такие архивные записи выглядят именно как фильмы и сериалы из обычного каталога: с вертикальными постерами и прочей кинотеатровой метой (при наличии данной графики в EPG-источнике)
- такие записи можно подмешивать в общий каталог с фильмами и не акцентировать внимание абонентов, что это записи с каналов (хотя по рекламным вставкам это всё равно будет понятно) — например, сейчас их можно подмешать в Кинозал в интерфейсе Sibseti с помощью новой опции
show_archive_in_vod_screen.

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



Внутренняя видеотека
- Добавлена новая команда
remove_invalid_actorsдля очистки актёров, к которым не привязано ни одного фильма. - Добавлена настройка
TVMIDDLEWARE_TMDB_IMPORT_LANGUAGE, определяющая язык импорта из базы меты TMDB. - В парсере меты из Кинопоиска добавлена обработка исключения при некорректной заглушке фотографии актера — в этом кейсе парсинг теперь продолжается, пропуская битую картинку.
- У фильмов появилось поле «Короткое описание», которое заполняется из внешних кинотеатров, Content API и других баз меты контента.
- Появилась команда
clean_duplicated_genresдля поиска и очистки дублированных жанров, которые могли появиться при импорте из разных внешних кинотеатров. Команда ищет дубли, отвязывает от них фильмы, привязывает их к «оригинальным» жанрам и затем удаляет дубликаты.
Интеграции Smarty с кинотеатрами
Интеграция с биллингами кинотеатров
Интеграции с кинотеатрами START и Viju помимо синхронизации каталогов контента также содержат механизмы создания подписок в биллинговых системах кинотеатров. В рамках этого релиза сценарий интеграции в разрезе биллинга был скорректирован для будущей реализации триальных и акционных подписок. Что изменилось с точки зрения использования интеграций:
- появилась новая обязательная менеджмент-команда
check_video_subscriptions, которая выполняет продление и закрытие подписок на стороне внешних кинотеатров (актуальна для операторов, использующих стандартную логику биллинга — не подписочную); - ранее на стороне кинотеатров создавались бесконечные подписки и закрывались в момент отключения тарифа или деактивации аккаунта на стороне Smarty, сейчас создаются подписки на период, указанный в тарифе с кинотеатром и при необходимости продляются на такой же период командой
check_video_subscriptions; - исключением являются операторы, использующие внутренний биллинг Smarty для продления и деактивации аккаунтов (команда
check_accounts) — в их случае подписки во внешних кинотеатрах опираются на поля «дата продления» и «дата деактивации» у аккаунта, но также продляются командойcheck_video_subscriptions(рекомендуется запускатьcheck_video_subscriptionsсразу послеcheck_accounts).
PREMIER
- Новые опции
--load_actor_meta_from_mdbи--reimport_actorsу командыpremier_sync_contentдля возможности загрузки данных об актёрах из сторонней базы меты контента. - Добавлено сохранение порядковых номеров сезонов и эпизодов.
START
- Для актёров кинотеатра START в рамках опции
--update_actorsкомандыcinema_start_sync_contentтеперь скачиваются фотографии актёров с соотношением сторон 2:3. - Подборки кинотеатра START теперь не дублируются, в случае изменения её названия со стороны кинотеатра — для корректной работы нового механизма рекомендуем очистить старые загруженные подборки.
- Внесены исправления в механизм отправки статистики просмотров в кинотеатр START.
- Добавлены дополнительные попытки на скачивание изображений в случае недоступности API START.
- Обновлена команда
cinema_start_resync_subscriptionsпроверки синхронизации подписок между Smarty и START. - Добавлено сохранение порядковых номеров сезонов и эпизодов.
TVMW API
- Метод
CustomerTariffListтеперь учитывает доступность по IP и по регионам при вычислении списка доступных абоненту тарифов. - Ранее в методе
Loginдля неактивного аккаунта в качестве status_reason возвращалась пустая строка, теперь возвращается статусINACTIVE. - На вход методу
ContentPositionSetдобавлены вспомогательные поляdurationиis_viewed, при их передаче метод не обращается к постоянной БД для вычисления просмотренности для видеофайла, что положительно сказывается на нагрузке. - Добавлен новый метод
AccountSettingsChannelInfoдля получения информации о настройках аккаунта в отношении каналов: избранные каналы, скрытые, каналы с родительским контролем. - Оптимизирована работа метода
VideoRatingSet. - Добавлено поле
short_descriptionв ответ методов Video. - В методе
PortalDashboardVideoListв качестве пустого значения поля duration теперь используется 0 вместо пустой строки. - В ответ метода
VideoEpisodeListдобавлено полеnumber. - Добавлен новый входной параметр
merchant_typeв метод PaymentQRCode. - Добавлен новый метод
CustomerPaymentInfoдля получения детализации платежа. - На вход методов
GenreListиNoAuthGenreListдобавлен параметрsource_type. - Сокращён объём кеша для подготовки ответа метода
CameraList. - В методах поиска
VideoListиChannelListSearchреализован несенситивный поиск по e/ё — в результатах поиска будут отражаться результаты по обеим буквам вне зависимости от той, которая была передана в качестве поисковой комбинации. - Исправлена инвалидация кэша в методе
ProgramUrlпри изменении передачи с помощью точных меток.
Billing API
- Добавлено поле
metaна вход методовCustomerCreateиCustomerModify. - В 2 раза сокращено время работы метода
CustomerList. - На вход метода
TransactionCreateдобавлен параметрcustomer_ext_id.
External API
- Добавлены новые методы для возможности переопределения:
get_tariff_price,get_payment_sumиget_payment_sum_no_discount.
Content API
- Добавлены входные параметры
short_descriptionиad_banner_imageв методахVideoCreateиVideoModify. - Добавлен новый метод
VideoDetailдля получения фильма поid. - В методе
ActorCreateактёр теперь не создаётся, если его фотография недоступна для загрузки. А также добавлен новый входной параметрphoto_urlдля загрузки фото актёра по URL.
Новое в админке Smarty 2.2
- В «Каталог приложений» добавлен фильтр по шаблону.

- На страницу списка фильмов добавлен фильтр по источнику.

- На страницу устройства добавлено поле «Версия сборки», которое заполняется со стороны портала для Android STB.

- Добавлена кнопка «Создать несколько» для сезонов сериала.


- На страницу списка аккаунтов добавлен новый фильтр «Показать только неактивные».

- Обновлён фильтр по каналу для ленты дашборда «Передачи» — теперь для ленты можно точечно выбрать конкретные каналы, а не только один.

- А также добавлены новые фильтры для ленты «Фильмы»:

- Добавлена опция
UPDATE_CHANNEL_LIST_CHANGE, которая при значении False не инициирует обновление списка на абонентских устройствах при удалении/добавлении каналов в админке. - Исправлено отображение кнопки массового редактирования на странице «Настройки STB и приложений»
- На странице фильма текстовые поля «URL постера» и «URL скриншота» теперь используются только для автоматической заливки изображений из внешних источников — после успешного сохранения и скачивания они обнуляются.
- Проведена оптимизация экспорта списка видео в файл.
- Добавлен функционал удаления графиков для раздела «Статистика».
- В служебной админке Smarty появилась возможность изменять имя оператора, фигурирующее при отправке сообщений в SMS-шлюзе smsc.ru.
Другое
- Добавлена поддержка работы платформы на OS Debian 12 (Bookworm).
- Добавлен новый параметр
LOG_REQUEST_TIME, при включении которого в логи запросов к Smarty добавляется параметр runtime — время выполнения запроса. - Для стрим-сервисов с типом маршрутизации «Python-скрипт» добавлена возможность использовать библиотеку
feedparserвнутри этого скрипта. - Добавлена новая опция конфигурации
TVMW_CHECK_STATUS_REASON_ON_LOGIN, с помощью которой можно выключить проверку дополнительного статуса аккаунта во время авторизации. - Проведена оптимизация работы отчёта по рекламе.