Enhance channel settings to include icon image support for IPTV
ci / build-backend (push) Successful in 1m18s
ci / build-frontend (push) Successful in 39s
ci / tests (push) Successful in 1m22s
ci / sonar (push) Successful in 3m41s

Updated the Channel and related DTOs to incorporate an optional IconImageId property, allowing for the specification of a channel icon for external IPTV players. Modified the UpdateChannelSettings command and its handler to accommodate this new property. Adjusted frontend components to manage the icon image, including selection and display functionality. Updated localization files to support new UI elements related to the IPTV icon. This enhancement improves the user experience by providing a visual representation of channels in IPTV applications.
This commit is contained in:
Leonid Pershin
2026-08-02 17:07:24 +03:00
parent bed6d4fcfc
commit 7a164dbd90
27 changed files with 1758 additions and 28 deletions
+8
View File
@@ -1131,6 +1131,14 @@ seed = hash(channelId, date, slotId, occurrenceInDay)
включённых каналов и ссылка на XMLTV с программой передач (`/api/iptv/epg.xml`, горизонт 7 суток,
подряд идущие серии одного шоу склеены в одну передачу, врезки и заставки в гид не попадают).
Иконка канала для плеера (`tvg-logo` в M3U и `<icon>` канала в XMLTV) — это **отдельное поле
`Channel.IconImageId`**, а не экранный логотип-оверлей (тот — полупрозрачный водяной знак в углу
видео и как иконка канала смотрелся бы плохо). Задаётся в общих настройках канала картинкой из
реестра изображений. Если не задана — плеер получает заглушку: фавикон сайта (`/favicon.svg`),
чтобы в списке каналов не было пустого квадрата. Абсолютные адреса собираются из схемы/хоста
запроса (внешний TLS → `X-Forwarded-*`), поэтому за корректно настроенным прокси ссылки идут по
https.
Плеер не умеет ни Bearer, ни httpOnly-cookie — только открыть URL. Поэтому пропуск зашит прямо
в ссылки файла долгим stream-токеном (`Storage:IptvTokenDays`, по умолчанию 30 суток), и его же
принимают плейлист канала и сегменты — рядом с cookie, тем же форматом и той же проверкой подписи.