8.3 KiB
created, namespace, related, status, tags, title, type, updated
| created | namespace | related | status | tags | title | type | updated | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-09-22 | personal |
|
proposed |
|
Watchlist в UI Lampa — плагин отображения | plan | 2026-09-22 |
Watchlist в UI Lampa — плагин отображения (план)
Составлен 2026-09-22. Ждёт подтверждения Alex. Предыдущий шаг (Lampac на Кра́кене) — personal/plans/lampac-kraken, шаги 1–6 закрыты.
Задача
Показывать список фильмов Alex (family/documents/movies-watchlist.md) прямо в UI Lampa на ТВ —
как каталог для просмотра. Не локальный плейбэк, а отображение списка.
Уточнение Alex: «это не локальный плейбэк а отображение фильмов из списка».
Что НЕ так понято (зафиксировать, чтобы не переделывать)
| Толкование | Верно? |
|---|---|
Показать свой список (movies-watchlist.md) в UI |
✅ да, это задача |
| Показать файлы библиотеки с диска Кра́кена (Jellyfin-подобное) | ❌ нет — это шаг 7 старого плана, другое |
| Локальный плейбэк (раздача торрента с диска Кра́кена) | ❌ нет |
Что нашлось в Lampac (разведка 2026-09-22)
В образе ghcr.io/lampac-nextgen/lampac 33 модуля (/lampac/module/). Релевантные три:
| Модуль | Что делает | Статус | Подходит? |
|---|---|---|---|
| Catalog | YAML-каталоги → плагин /catalog.js |
⛔ выключен | ✅ главный кандидат |
| DLNA | DLNA/UPnP, локальные файлы, торрент-менеджмент | ✅ включён | ⚠️ это про файлы, не про список |
| Online | 70+ онлайн-источников → /online.js |
✅ включён | уже используется |
Модуль Catalog — детали
- Роут:
/catalog.js(плагин Lampa), внутренние —/catalog/<site> - Данные: YAML-файлы в
<modpath>/sites/<site>.yaml - Имя файла — только
[a-z0-9-], иначеRegex.Replaceсрежет - Есть lookup по
displaynameвнутри*.yaml, если файла по имени нет - WAF-лимит:
^/catalog/→ 10 запросов/сек ModuleBaseConfсlimit_map, классCatalogSettings, естьIEnumerable-итерация
Почему выключен:
// current.conf
"SkipModules": [ "Catalog", "Tracks", "Transcoding", ... ]
"catalog": false // в блоке плагинов LampaWeb
Оба надо включить.
⚠️ Питфолл: init.conf монтируется не был — у нас в compose нет volume на /lampac/init.conf.
Файл живёт внутри образа. Правки через docker exec потеряются при пересоздании контейнера.
Значит: либо добавить volume, либо править через AdminPanel, либо docker cp + mount.
Развилка архитектуры — нужно решение Alex
Отображение списка и воспроизведение — разные вещи. Список отдаём, но по клику что играть?
| # | Вариант | Как работает | Плюсы | Минусы |
|---|---|---|---|---|
| A | Каталог → TMDB → торренты | /catalog.js отдаёт названия, Lampa ищет их в TMDB, по клику — TorrServer/онлайн |
Просто. Список = то, что уже есть. Работает сегодня | Каталог отдельно от «Избранного» Lampa |
| B | Генератор Lampa-«Избранного» | Отдаём movies-watchlist.md как JSON — Lampa кладёт его в свою папку «Буду смотреть» |
Из коробки в UI, без плагина | Лимит 50 у kinopoisk.js; формат Lampa-специфичный |
| C | Catalog + свои ссылки | YAML с ссылками на торренты с диска Кра́кена — это уже локальный плейбэк | Прямой запуск | ❌ Alex сказал — не это |
Рекомендация: A. Список показываем, воспроизведение оставляем штатным (торренты/онлайн). Это ровно «отображение фильмов из списка», без изобретения плейбэка.
Что нужно выяснить до кодирования
- Формат YAML — читать
Catalog/Controllersв образе, узнать схемуCatalogSettings(поля:displayname, иконка, источник элементов,tmdb-режим?). - Есть ли готовый Konopoisk/TMDB-режим — если Catalog умеет принимать TMDB-коллекцию, задача сводится к генерации YAML из watchlist.
- Как обновлять каталог — watchlist меняется (Radarr, ⬇️,
[x]), нужен генератор + hook. - Фильтры — показывать только
[ ](не просмотренные)? Прятать👎? Секции (Фильмы/Аниме/Мультфильмы)? init.conf— как правки не потерять: volume vs AdminPanel.
Черновик шагов (уточнится после разведки формата)
- Включить модуль: убрать
CatalogизSkipModules, поставить"catalog": true. - Разобрать схему YAML по кодe
Catalog/Controllers/*.cs(в контейнере). - Написать генератор:
movies-watchlist.md→sites/<name>.yaml.- Источник данных — vault (
family/documents/movies-watchlist.md), git-синхронизирован - Уже есть готовый парсер:
watchlist-sync/parser.py(см. family/projects/watchlist-sync)
- Источник данных — vault (
- Смонтировать
sites/в контейнер. - Плагин на ТВ: Lampa → Настройки → Плагины →
http://192.168.1.14:9118/catalog.js. - Приёмка: список виден в UI Lampa на ТВ, названия совпадают с
movies-watchlist.md.
Как обновлять
Варианты (выбрать после шага 2):
- hook в
watchlist-nightly.sh(уже кроном 01:00 на Кра́кене) — догенерировать YAML после прогона - отдельный cron-скрипт
- ручной запуск генератора
⚠️ watchlist-nightly.sh живёт в ~/scripts/ — root:root, правка только sudo install -m 755.
Открытые вопросы к Alex
- Развилка A/B/C — согласен на A (каталог → TMDB → штатное воспроизведение)?
- Что показывать: только непросмотренные
[ ]? Или всё? - Секции: как в файле (
Фильмы,Мультфильмы,Аниме) или одним списком? 👎и🗓️— прятать?
Связанные
- personal/plans/lampac-kraken — базовое развёртывание (шаги 1–6 сделаны)
- personal/tech/lampac-deployment — эксплуатация Lampac
- family/projects/watchlist-sync — парсер списка, CLI, cron
- family/projects/watchlist-automation — полный flow, форматы маркеров
- family/documents/movies-watchlist — источник данных