Базовые понятия
Программа передач в Smarty предоставляется с помощью сущности EPGChannel
— это объект, к которому привязаны иконка канала (может быть несколько иконок разных размеров), а также программа передач с присущими программам свойствами (название передачи, ее описание, превью-изображения, время начала и время окончания передачи, жанры, категории и т.д.).
Можно сказать, что EPGChannel это своего рода «Канал», к которому абонент имеет опосредованный доступ — при правильной конфигурации абонент может увидеть иконку EPGChannel’а; название его текущей, прошедшей или будущей передачи; описание этих передач, их рекламные изображения и т.д., но о существовании такой сущности абонент не знает. Данная сущность необходима для связки между списком конкретных передач и иконок канала с каналом, который пользователь будет наблюдать у себя в портале.


EPGSource
— источник программы передач. Как правило, представляет из себя xmltv-файл со списком каналов и передач (или ссылкой на программу передач того или иного канала).
EPGChannelsSource
— источник телеканалов. Может быть использован для импорта каналов или иконок к ним.
EpgProgram
— непосредственно сама программа передач, связанная с конкретным EPGChannel
, к которому принадлежит данная программа. Каждый EpgProgram
хранит в себе информацию о названии передачи и о начале и окончании передачи (минимальный набор параметров, чтобы программа передач появилась в портале), а также ее описание, принадлежность к категории, возрастной рейтинг, превью-изображения и прочую информацию, которая может отображаться в портале.


Так программа хранится в Smarty

Канал
— сущность, к которой у пользователя будет последовательный доступ в портале. Представляет из себя совокупность конфигурации канала в админ-панели Smarty (стриминг-сервисы, тарифная конфигурация, LCN, родительский контроль и так далее) и связанного с этим каналом EPGChannel'а
(в рамках которого предоставляется доступ к программе передач данного телеканала).
Минимальные настройки Smarty перед импортом программы передач (EPG)
Процесс конфигурации можно описать следующим алгоритмом:
- Создать или отредактировать уже существующий
EPGSource
; - Создать необходимое количество
EPGChannel'ов
, связав их поid
с программой передач изEPGSource
(или импортировать все имеющиеся в источнике программы передач каналы); - Произвести импорт программы передач;
- Связать
EPGChannel'ы
с имеющимся каналами; - Добавить задачу по актуализации программы передач в планировщик задач.
Большинство операций по EPG
осуществляется в django-админке
(чтобы в нее попасть, нужен определенный уровень доступа, открывается при добавлении /admin
в конце адреса Smarty).
Ниже, каждый из этих пунктов будет разобран чуть поподробнее.
Создание источника программы передач (EPGSource)
- Перейти в раздел
Tvmiddleware
; - Открыть подраздел
EPG Sources
; - Нажать кнопку Добавить
EPG Source
; - Указать название
EPGSource
(необходимо для удобства администрирования); - Указать тип парсера
EPG
(для корректной интерпретации данных, хранящихся в выбранном источнике) - Указать адрес источника
EPG
(может быть как абсолютным — в случае конкретной ссылки на источник, так и относительным — в случае, если файл с программой передач хранится на том же сервере, что и Smarty); - В целях экономии свободного пространства хранилища медиа-файлов (а также для более быстрой загрузки и уменьшения нагрузки на пользовательские устройства) можно включить опцию «Конвертировать картинки» — если этот чекбокс включен, то все импортируемые превью-изображения передач будут сжиматься до размеров, указанных в конфигурации Smarty (соответствующие опции описаны в документации «Системные параметры»); если чекбокс выключен, то превью-изображения будут загружены в исходном разрешении.
Тип парсера EPG следует выбирать исходя из используемого источника EPG. В большинстве случаев название парсера интуитивно соответствует названию источника EPG, за редкими исключениями, такими как:Dummy_source
— это автоматический источник, создающий одинаковые программы с названием, соответствующим названию EPGChannel
и разбивкой раз в час. Может быть полезно для заполнения программы передач камер (в случае, если камеры пишут архив, для его просмотра требуется программа передач и заполнить ее можно через Dummy_source
).Xmltv_common
— универсальный парсер xmltv.Xmltv_from_file
— парсер, основанный на xmltv_common
, но способный считывать файл, который находится на сервере со Smarty.

Создание источника телеканалов (EPGChannelsSource) и импорт телеканалов
Процесс создания источника телеканалов не сильно отличается от процесса создания источника телепередач за некоторыми исключениями:
- Перейти в раздел
Tvmiddleware
; - Открыть подраздел
EPG channels sources
; - Нажать кнопку Добавить
EPG Channels Source
; - Связать источник
EPGChannels
сEPGSource
; - Указать адрес источника каналов (работает по аналогии с
EPGSource
);

Импорт телеканалов и импорт иконок для телеканалов из существующего источника осуществляется с помощью служебной команды epg_channel_import
.
Создание EPGChannel
Если по какой-то причине не удалось импортировать каналы из источника автоматически, их можно создать вручную с помощью Django-админки.


Пример экрана конфигурации EPGChannel с уже заполненными полями
- Перейти в раздел
Tvmiddleware
; - Открыть подраздел
EPG channels
; - Нажать кнопку Добавить
EPG Channel
; - Указать название
EPGChannel
; - Указать ID канала в источнике
EPG
(если в источнике у программы передач канала «Первый» указан id=000000004, то и при создании EPGChannel нужно указать id канала в источнике 000000004); - Указать категорию передачи (именно эти категории буду использоваться в портале для фильтрации контента по категориям) и, при необходимости, выбрать дополнительные категории для канала;
- При наличии уже загруженной иконки канала, можно указать ее URL, в поле «URL иконки». Либо, ее можно загрузить с помощью кнопок загрузки иконки канала (при необходимости можно загрузить разные иконки под разные разрешения).

Разные шаблоны интерфейсов могут использовать разные размеры иконок (например, шаблон futuristic
требует размера 120×90, а шаблон sibseti
— 176х104). Размер иконок можно задать через системные параметры Smarty с помощью параметра SMARTY_DEFAULT_ICON_SIZES
(подробнее об этом и других параметрах информация доступна в соответствующей документации).
Помимо эстетических проблем некорректные размеры иконок могут вызывать проблемы с быстродействием интерфейса — сжатие/увеличение картинок средствами абонентского устройства может приводить к заниженной скорости навигации в списке каналов.
При импорте иконок каналов с помощью команды epg_channel_import
иконки автоматически адаптируются до заданного в конфигурации размера.
Программа передач телеканала (EPGPrograms)
После создания EPGSource
, EPGChannels
и связки их друг с другом можно произвести импорт программы передач.
Импорт программы осуществляется служебной командой epg_import
(команда имеет большое количество параметров, один из них в том числе позволяет создавать подборки передач для раздела «Архив»).
Можно автоматизировать импорт программы передач, добавив задачу в планировщик задач. В этом случае импорт передачи будет осуществляться автоматически по расписанию.

По окончанию импорта можно ознакомиться со списком передач в разделе Tvmiddleware
, подразделе EPG programs
.

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



Внимание! Некоторые шаблоны (например, Redmax
) используют несколько превью-изображений разного формата (на примере того же шаблона Redmax
, где используются как 16:9, так и 2:3 изображения). Для такой ситуации у программ передач в поле "Meta"
есть дополнительный список превью-изображений под названием extra_previews
— объект, в котором хранятся списки дополнительных изображений, разбитые по соответствующим пропорциям.
Также, список передач можно посмотреть в админ-панели Smarty, настроив нужные фильтры на экране «Настройки контента» — «Телепрограмма» (для этого канал в Smarty должен быть связан с соответствующим EPGChannel’ом).

В случае, если программа передач по заданным параметрам не нашлась, можно нажать на кнопку «Принудительно импортировать EPG» — в этом случае Smarty отправит команду на импорт программы передач для выбранного в параметрах фильтрации канала.
Примеры применения EPG в шаблонах
Futuristic
Для шаблона Futuristic
рекомендуется использовать следующие размеры иконок телеканалов:
- 120x91px (для экрана «ТВ», в режиме list и grid);
- 40×40 px (для режима longlist);
- 60×48 px (для экрана сортировки телеканалов);
И превью-изображений:
- соотношения 16:9 не меньше 280×157 px;
- соотношения 4:3 не меньше 200х150 px.





"tv_channels_icon_mode": "icon"

"tv_channels_icon_mode": "program_preview"

Различные портальные опции, изменяющие поведение шаблона в связке с EPG можно посмотреть в соответствующей документации.
Sibseti
Для шаблона Sibseti
рекомендуются иконки телеканалов с разрешением 176х104 px.
Превью-изображения телепрограмм рекомендуется использовать с пропорциями 16:9 и размерами не меньше 550х309 px




Различные портальные опции, изменяющие поведение шаблона в связке с EPG, можно посмотреть в соответствующей документации.
Redmax
Для шаблона Redmax
рекомендовано использование иконок телеканалов размерами 40х40 px.
Превью-изображения телепрограмм рекомендуется использовать:
- для пропорций 16:9 не меньшее 720х405 px;
- для пропорций 2:3 не меньше 170х255 px.




Различные портальные опции, изменяющие поведение шаблона в связке с EPG можно посмотреть в соответствующей документации.