Smarty

  1. Домой
  2. Документы
  3. Smarty
  4. Настройки порталов и приложений
  5. Опции портала

Опции портала

Дополнительные опции позволяют изменить внешний вид и поведение приложения, и задаются в файле конфигурации /etc/microimpuls/portal/client.js.

Содержание показать

Обязательные опции

Client ID

Название опции: client_id, тип данных: int.

В этой опции указывается ID оператора в Smarty (Client ID) и используется в запросах к API.

Пример:

var CLIENT_SETTINGS = {
  // …
  'client_id': 1
};

API Key

Название опции: api_key, тип данных: string.

В этой опции указывается API Key (именно TVMW API Key, не путать с Billing API Key) оператора в Smarty для данного Client ID. Используется в запросах к API.

Пример:

var CLIENT_SETTINGS = {
  // …
  'api_key': 'dmt6rH0qbDeGacPnUDDkVb8jafcqewKl'
};

API URL

Название опции: api_url, тип данных: string.

Адрес сервера Smarty. Для обхода политики CORS (если в настройках веб-сервера Smarty не указаны разрешающие заголовки) адрес сервера может быть задан относительно домена портала, по которому он был загружен, например, /api, если в настройках веб-сервера определен соответствующий location, перенаправляющий запросы к Smarty.

Пример:

var CLIENT_SETTINGS = {
  // …
  'api_url': '/api'
};

Используемый интерфейс (шаблон) портала по умолчанию

Название опции: template_name, тип данных: string.

Название шаблона, используемого по умолчанию. Список доступных шаблонов можно посмотреть в папке портала templates. Данное значение может быть переопределено в настройках устройства в Smarty, а также в настройках аккаунта.

Пример:

var CLIENT_SETTINGS = {
  // …
  'template_name': 'futuristic'
};

Размеры экрана интерфейсов

Название опции: template_size, тип данных: array.

Список доступных разрешений шаблонов. Необходимо указывать каждое отдельно сверстанное разрешение в том случае, если для шаблона есть соотвутствующий стиль в указанном разрешении. Например, шаблон classic имеет отдельную верстку для разрешений 1280х720 и 720х576. Для других шаблонов используется автоматический скейлинг, поэтому достаточно указать только стандартное разрешение 1280х720. Для некоторых устройств Samsung Tizen TV, LG Smart TV и Android TV указание этой опции является обязательным, иначе интерфейс может отображаться с неправильным масштабом.

Пример:

var CLIENT_SETTINGS = {
    // …
    'template_size': {
        'default': {
            'default': [1280, 720]
        },
        'futuristic': {
            'default': [1280, 720]
        },
        'impuls': {
            'default': [1280, 720]
        },
        'infinitly': {
            'default': [1280, 720]
        },
        'classic': {
            'default': [1280, 720],
            '720x576': [720, 576]
        },
        'iridium': {
            'default': [1280, 720]
        },
        'focus': {
            'default': [1280, 720]
        }
};

Список разрешенных интерфейсов

Название опции: available_templates, тип данных: array.

Устанавливает список доступных шаблонов для переопределения с сервера. Шаблон, указанный в обязательном параметре template_name, в список доступных шаблонов добавлять не обязательно. При попытке сервера определить для устройства и/или аккаунта шаблон, отсутствующий в данном списке, приложение это проигнорирует. По умолчанию [].

Пример:

var CLIENT_SETTINGS = {
  // …
  'available_templates': ['impuls', 'futuristic', 'infinitly']
};

Имя файла настроек

Название опции: settings_filename, тип данных: string.

Имя файла для сохранения локальных настроек на устройстве. Необходимо указывать уникальное имя (например, совпадающее с именем провайдера в транслите), т.к. в этом файле сохраняются в том числе логин и пароль аккаунта. Если для уже работающего сервиса в процессе эксплуатации (или переезда на другой сервер) поменять это имя, то при следующем включении устройства у абонентов произойдет логаут. Значение по умолчанию example.dat.

Пример:

var CLIENT_SETTINGS = {
  // …
  'settings_filename': 'mytelecom.dat'
};

Дополнительные опции

Адрес сайта оператора

Название опции: site_url, тип данных: string.

Используется в служебных сообщениях портала для абонента, связанных с информированием о технических неполадках и вопросами получения дополнительной информации, а также в некоторых шаблонах отображается в блоке контактной информации. Значение по умолчанию www.example.com.

Пример:

var CLIENT_SETTINGS = {
  // …
  'site_url': 'http://mytelecom.com'
};

Периодичность запросов сохранения телесмотрения

Название опции: push_stat_interval, тип данных: int.

Периодичность выполнения запросов к серверу Smarty для сохранения данных о телесмотрении, задается в миллисекундах. Не стоит использовать слишком маленькое значение, однако чем меньше это значение, тем точнее будут данные о сессиях просмотра и рейтинга контента. Значение по умолчанию 300000 (5 минут).

Пример:

var CLIENT_SETTINGS = {
  // …
  'push_stat_interval': 300000
};

Периодичность запросов сохранения позиции просмотра

Название опции: content_position_set_interval, тип данных: int.

Периодичность выполнения запросов к серверу Smarty для сохранения текущей позиции просмотра контента PVR и VOD для работы функции возвращения к последней сохраненной позиции просмотра. Задается в миллисекундах. Значение по умолчанию 30000 (30 секунд).

Пример:

var CLIENT_SETTINGS = {
  // …
  'content_position_set_interval': 30000
};

Периодичность запросов статуса аккаунта

Название опции: account_status_interval, тип данных: int.

Позволяет задать кастомное значение интервалов запроса AccountStatus в портале. При указании малого значения (<60000) проверка будет осуществляться с интервалом 1-2 минуты. Задается в миллисекундах. Значение по умолчанию 600000 (10 минут).

Пример:

var CLIENT_SETTINGS = {
// …
'account_status_interval': 60000
};

Корректировочный часовой сдвиг по умолчанию

Название опции: default_timezone, тип данных: int.

Отображаемое время в портале вычисляется по следующему алгоритму:

  1. С сервера Smarty портал принимает время в UTC+0. Это время используется для всех расчетов и для EPG.
  2. Определяется локальная часовая зона согласно настройкам времени на устройстве.
  3. Определяется корректировочный часовой сдвиг, указанный пользователем в настройках приложения. По умолчанию равен default_timezone.
  4. Ко времени с сервера добавляется локальная часовая зона и корректировочный часовой сдвиг, таким образом рассчитывается локальное отображаемое время.

В качестве значения этой опции необходимо указать значение в диапазоне от 0 (что соответствует сдвигу -12) до 24 (+12). Это значение будет использовано по умолчанию для настройки «Часовой сдвиг», задаваемой пользователям в настройках приложения. По умолчанию 12 (соответствует +0). При корректной работе времени на устройстве и правильных настройках NTP корректировочный сдвиг использовать не нужно, однако с помощью него пользователь может скорректировать время в приложении самостоятельно.

Пример:

var CLIENT_SETTINGS = {
  // …
  'default_timezone': 12
};

Отключение часового пояса устройства

Название опции: ignore_device_timezone, тип данных: bool.

Опция имеет смысл и работает только при заданном значении default_timezone. Если включить обе эти опции, то для отображения времени на устройстве часовой пояс считается как GMT+0 + default_timezone. На само время опции не влияют, так как оно приходит с сервера. Значение опции по умолчанию — false.

Пример:

var CLIENT_SETTINGS = {
  // …
  'ignore_device_timezone': true
};

Размер буфера по умолчанию

Название опции: default_buffersize, тип данных: int.

Значение настройки «Размер буфера» по умолчанию, задаваемой пользователем в настройках приложения. Возможные значения:

  • 0 — автоматически (по умолчанию).
  • 1 — нет буферизации.
  • 2 — малый размер буфера.
  • 3 — средний размер буфера.
  • 4 — большой размер буфера.
  • 5 — очень большой размер буфера.

Пример:

var CLIENT_SETTINGS = {
  // …
  'default_buffersize': 0
};

Язык интерфейса по умолчанию

Название опции: default_lang, тип данных: int.

Значение настройки «Язык интерфейса» по умолчанию, задаваемой пользователем в настройках приложения. Необходимо указать индекс (начиная с 0) языка из списка языков, которые поддерживаются конкретным шаблоном. По умолчанию 0 — первый язык в списке.

Пример:

var CLIENT_SETTINGS = {
  // …
  'default_lang': 0
};

Отключение системного языка устройства

Название опции: ignore_system_lang, тип данных: bool.

Опция позволяет отключить влияние системного языка на язык приложения по умолчанию. На текущий момент системный язык устанавливается для приложения только на телевизорах и STB под OS Android. Значение опции по умолчанию: false.

Пример:

var CLIENT_SETTINGS = {
  // …
  'ignore_system_lang': true,
};

Системная консоль отладки

Название опции: system_debug, тип данных: bool.

Включает показ системной консоли портала, в которой отображается дополнительная служебная информация для отладки.

Возможные значения:

  • true — консоль отображается.
  • false — консоль не отображается (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'system_debug': true
};

Показ служебных сообщений об ошибках

Название опции: user_debug, тип данных: bool.

Включает показ сообщений абоненту о различных служебных ошибках, возникших в ходе работы портала (в том числе, например, ошибки связи с сервером Middleware). В настоящий момент поддерживается только в шаблоных futuristic и infinitly.

Возможные значения:

  • true — ошибки отображаются.
  • false — ошибки не отображаются (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'user_debug': false
};

Режим обработки кнопки выключения приставки

Название опции: handle_key_power_by_device, тип данных: bool.

Флаг для выбора обработки кнопки выключения приставки. Поддерживается только на приставках WRT.

Возможные значения:

  • true — обработка на уровне приставки.
  • false — обработка на уровне портала (по умолчанию).
var CLIENT_SETTINGS = {
  // …
  'handle_key_power_by_device': false
};

Идентификация устройства по модели

Название опции: send_device_model_in_request_parameters, тип данных: bool.

Возможные значения:

  • true — на сервер Middleware в качестве параметра device будет отправляться тип устройства и модель, соединенные нижним подчеркиванием, например: android_stb_redbox (по умолчанию).
  • false — будет отправляться только тип устройства, например android_stb.

При значении true если серверу не удалось идентифицировать устройство, то происходит повторная попытка в режиме false.

Пример:

var CLIENT_SETTINGS = {
  // …
  'send_device_model_in_request_parameters': true
};

Нумерация каналов, начиная с 0

Название опции: begin_channel_numbers_from_zero, тип данных: bool.

  • true — номера каналов начинаются с 0.
  • false — номера каналов начинаются с 1 (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'begin_channel_numbers_from_zero': false
};

Solution для плеера MAG по умолчанию

Название опции: default_player_solution_for_mag, тип данных: string.

Для приставки MAG устанавливается тип solution, который будет использоваться в случае, если формат потока не удалось определить. Значением должен быть тип формата контента (см. список http://soft.infomir.com/stbapi/JS/v343/tutorial-media-formats.html). По умолчанию auto.

Пример:

var CLIENT_SETTINGS = {
  // …
  'default_player_solution_for_mag': 'ffrt2'
};

Solution для плеера MAG для воспроизведения HLS по умолчанию

Название опции: hls_player_solution_for_mag, тип данных: string.

Для приставки MAG устанавливается тип solution, который будет использоваться в случае, если формат потока — HLS (ссылка имеет разширение .m3u8). Значением должен быть тип формата контента (см. список http://soft.infomir.com/stbapi/JS/v343/tutorial-media-formats.html). По умолчанию ffrt2.

Пример:

var CLIENT_SETTINGS = {
  // …
  'hls_player_solution_for_mag': 'ffrt2'
};

Плеер для Android STB/TV по умолчанию

Название опции: default_player_solution, тип данных: string.

Для приставок и телевизоров под OS Android/Android TV устанавливается тип плеера, который будет использоваться по умолчанию. При выставлении этой опции возможность выбора плеера из экрана «Настройки» будет недоступна. По умолчанию пустая строка.

Возможные значения:

  • native — системный стандартный плеер устройства.
  • exoplayer — Exoplayer.
  • vlc_default — VLC-плеер.
  • vlc_mediacodec — VLC-плеер с выставленным параметром mediacodec.

Пример:

var CLIENT_SETTINGS = {
  // …
  'default_player_solution': 'exoplayer'
};

Выбор плеера на устройствах под OS Android/Android TV доступен только в сборках версии 2.0 и выше.

Таймаут ожидания ответа от сервера Middleware

Название опции: requests_timeout_time, тип данных: int.

Устанавливает для HTTP-запросов время ожидания ответа от сервера, после которого запрос будет прерван со стороны клиента. Задается в миллисекундах. По умолчанию 10000. Значение может быть увеличено при нестабильной работе сети связи между пользователем и сервером. Например, если какие-то данные в интерфейсе не загружаются в течение 10 секунд, то стоит попробовать увеличить этот параметр (и, конечно, постараться сначала устранить сетевые проблемы).

Пример:

var CLIENT_SETTINGS = {
  // …
  'requests_timeout_time': 10000
};

Метод генерации UID на Android STB и Android TV

Название опции: android_uid_generation_method, тип данных string.

Поле, позволяющее переопределить метод генерации UID для устройств под OS Android.

Возможные значения:

  • default — используется стандарный метод генерации (по умолчанию).
  • mac — в качестве UID всегда возвращается MAC-адрес.
  • serial — в качестве UID всегда возвращается серийный номер.
  • mac_serial — в качестве UID всегда возвращается комбинация MAC-адреса и серийного номера, разделенных нижним подчеркиванием.

Пример:

var CLIENT_SETTINGS = {
  // …
  'android_uid_generation_method': 'default'
};

Метод генерации UID на остальных устройствах (Tizen TV)

Название опции: uid_generation_method, тип данных string.

Поле, позволяющее переопределить метод генерации UID для устройств (поддерживается пока только для Tizen TV).

Возможные значения:

  • default — используется стандарный метод генерации (по умолчанию).
  • mac — в качестве UID всегда возвращается MAC-адрес.

Пример:

var CLIENT_SETTINGS = {
  // …
  'uid_generation_method': 'default'
};

Замена https на http в URL потоков (Samsung)

Название опции: samsung_smart_tv_https_stream_url_replace, тип данных: bool.

Рекомендуется для устройств Samsung Smart TV для воспроизведения потоков внешних кинотеатров.
Возможные значения:

  • true — перед воспроизведением контента будет происходить замена https на http в URL потока.
  • false — замена https на http в URL не происходит (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'samsung_smart_tv_https_stream_url_replace': false
};

Длительность промо-периода после регистрации

Название опции: signup_auto_activation_period, тип данных: int.

Позволяет установить количество дней, на которое будет выдан бесплатный доступ для первичного использования аккаунта после регистрации. По умолчанию 0.

Пример:

var CLIENT_SETTINGS = {
  // …
  'signup_auto_activation_period': 7
};

Авторизация и регистрация напрямую через сторонний биллинг

Название опции: use_external_api_for_registration_and_login, тип данных bool.

При установке данного поля в состояние true регистрация и авторизация происходит напрямую через внешний биллинг, это требуется для некоторых видов тесной интеграции. Не рекомендуем выставлять это поле самостоятельно без явной рекомендации от наших разработчиков. По умолчанию false.

Пример:

var CLIENT_SETTINGS = {
  // …
  'use_external_api_for_registration_and_login': true
};

Метод подтверждения номера телефона при регистрации

Название опции: phone_confirmation_type, тип данных string.

Возможные значения:

  • пустая строка — метод подтверждения не задан, подтверждение номера отключено (значение по умолчанию).
  • sms — номер телефона подтверждается по SMS (необходима настройка SMS-шлюза).
  • call — номер телефона подтверждается по звонку (необходима настройка соответствующего шлюза для звонков).

Пример:

var CLIENT_SETTINGS = {
  // …
  'phone_confirmation_type': 'sms'
};

URL-адрес сервера с изображениями и статическими ресурсам

Название опции: media_base_url, тип: string.

Полный URL, который используется в качестве базового пути к изображениям и статическим ресурсам, например для постеров программ из EPG. По умолчанию — пустая строка (в этом случае путь совпадает с адресом Smarty).

Пример:

var CLIENT_SETTINGS = {
  // …
  'media_base_url': ""
};

Интервал обновления программы передач в случае отсутствия ее на сервере

Название опции: channel_programs_update_interval_for_channels_with_empty_epg, тип: string.

Приложение запрашивает актуальную программу передач для списка каналов по мере того, как заканчиваются текущие передачи на каналах. Но бывают ситуации, когда на сервере нет загруженной программы передач, и в этом случае приложение обращается за ней повторно гораздо реже (по умолчанию — каждые 90 минут). Данная опция позволяет сократить, либо увеличить период запроса программы передач для данного случая.

Пример:

var CLIENT_SETTINGS = {
  // …
  'channel_programs_update_interval_for_channels_with_empty_epg': 5400,
};

Флаг, включающий специальное поведение для Flussonic

Название опции: streamer_type, тип: string.

В релизе 22.04 коллеги из Flussonic внесли некоторые изменения в формирование HLS плейлистов, в связи с чем некоторые плееры при работе с архивными ссылками формата https://pvr.example.com/$prefix/archive-$flpbt-$flpdur.m3u8 начали вести себя не совсем корректно при перемотке из Live — проигрывание стало начинаться с текущей Live-позиции, а не с той, на которую была осуществлена перемотка.

Для корректной обработки нового поведения данных плейлистов мы добавили эту новую опцию 'streamer_type': 'flussonic', которая при перемотке назад из Live принудительно осуществляет перемотку к первому сегменту потока.

Пример:

var CLIENT_SETTINGS = {
  // …
  'streamer_type': "flussonic"
};

Переопределение номеров каналов значениями LCN

Название опции: override_channel_list_number_by_lcn, тип данных: bool.

Возможные значения:

  • true — в интерфейсе вместо номеров каналов отображаются их значения LCN.
  • false — в интерфейсе отображаются номера каналов (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'override_channel_list_number_by_lcn': false
};

Запрос ввода ПИН-кода при попытке запуска фильма/сериала с возрастным рейтингом 18+

Название опции: set_parent_control_for_adult_rated_videos, тип данных: bool.

Возможные значения:

  • true — при попытке запуска фильма/сериала с возрастным рейтингом 18+ будет запрашиваться ПИН-код.
  • false — функция отключена (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'set_parent_control_for_adult_rated_videos': true
};

Отключение отправки логов об ошибках воспроизведения на сервер

Название опции send_portal_logs_to_server, тип данных: bool.

Возможные значения:

  • true — на сервер, в файл /var/log/microimpuls/smarty/smarty_portal.log будут отправляться ошибки воспроизведения потоков на устройствах android_stb.
  • false — функция отключена (по умолчанию).

Пример:

var CLIENT_SETTINGS = {
  // …
  'send_portal_logs_to_server': true
};

Максимальное время блокировки запроса после получения 500-й ошибки

Название опции max_retry_delay_for_internal_server_error, тип данных: int.

Если приложение получило в ответ от сервера ошибку 500, то оно перестанет на какое-то время обращаться к нему по этому запросу (минимизация нагрузки на сервер в аварийных ситуациях). Данная опция устанавливает максимальное время ожидания приложения до следующей попытки обращения к серверу. Значение по умолчанию: 3600, задаётся в секундах.

Пример:

var CLIENT_SETTINGS = {
  // …
  'max_retry_delay_for_internal_server_error': 3600
};

Список интервалов для повторного запроса после получения 500-й ошибки

Название опции retry_delay_sequence_for_internal_server_error, тип данных: list.

Если приложение получило в ответ от сервера ошибку 500, то оно перестанет на какое-то время обращаться к нему по этому запросу (минимизация нагрузки на сервер в аварийных ситуациях). Данная опция устанавливает перечень интервалов в секундах, спустя которые приложение попробует заново обратиться к методу с ошибкой 500.

Пример:

var CLIENT_SETTINGS = {
  // …
  'retry_delay_sequence_for_internal_server_error': [60, 120, 180, 300, 600, 900, 1800, 3600]
};