[2026-09-22] eagle: family/how-to/tv-lampac-plugin.md family/projects/watchlist-automation.md personal/plans/lampac-kraken.md personal/plans/lampac-watchlist-plugin.md personal/tech/lampac-deployment.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-22 12:13:29 +06:00
1 parent ba65c521f0
commit 97237168a0
5 files changed
+238 -18

No files matched your search

+13 -5
View File
@@ -144,10 +144,15 @@ curl -fsS "http://localhost:9118/version?type=hash"
Итог: `movies-watchlist.md` отдаётся каталогом Lampa через модуль `Catalog`:
- Плагин на ТВ: `http://192.168.1.14:9118/catalog.js` → источник **«Мой список»**
- 4 категории: Фильмы 360 · Новинки 34 · Мультфильмы 3 · Аниме 7
- Плагин на ТВ: `http://192.168.1.14:9118/catalog.js`
- Источник выбирается **панелью слева** в меню каталогов (пункта «Настройки → Источник» НЕ существует!)
- 4 категории: Фильмы 360 · Новинки **33** · Мультфильмы 3 · Аниме 7
- Автообновление: cron `30 2 * * *` → `~/scripts/watchlist-catalog.sh`
⚠️ **Не проверено в UI ТВ.** Alex добавил плагин, но каталог не увидел; соединений ТВ → `:9118` — ноль.
Гипотеза: нужен **полный перезапуск Lampa** (каталоги регистрируются только при старте).
Порядок диагностики — [[personal/tech/lampac-deployment]], раздел «Выбор источника каталога в Lampa».
⚠️ **Исходная формулировка шага 7 была неточной** («плагин, который ходит к библиотеке
как к источнику воспроизведения»). Уточнено Alex: задача — **отображение списка**, не плейбэк.
Механизм — встроенный модуль `Catalog`, свой плагин не писался.
@@ -266,7 +271,9 @@ curl -fsS "http://localhost:9118/version?type=hash"
⚠️ **Смонтирован `config-module/init.conf` — это исправляет шаг «init.conf без volume»**,
который раньше числился в открытых задачах.
Осталось на Alex: добавить на ТВ плагин `http://192.168.1.14:9118/catalog.js` (пультом).
Осталось на Alex: добавить на ТВ плагин `http://192.168.1.14:9118/catalog.js` (пультом),
**полностью перезапустить Lampa** и выбрать источник **панелью слева** в меню каталогов
(пункта «Настройки → Источник» не существует).
Сопутствующие доки: [[family/how-to/tv-luna-send]], [[family/how-to/htpc-webos-luna]],
[[family/how-to/tv-lampac-plugin]].
@@ -326,8 +333,9 @@ curl -fsS "http://localhost:9118/version?type=hash"
### Что осталось
1. **Лимит кэша TorrServer** (шаг 3) — дефолт. Единственный незакрытый шаг. Критичность низкая.
2. **Alex добавляет плагин на ТВ** пультом — `catalog.js`.
1. **Лимит кэша TorrServer** (шаг 3) — дефолт. Критичность низкая.
2. **Каталог watchlist не подтверждён в UI ТВ** — плагин добавлен, но не виден. Нужен полный
перезапуск Lampa + выбор источника панелью слева. Соединений ТВ → `:9118` было ноль.
3. **Проверка полосы на торрент-источнике** — не сделана.
## Журнал сессии 2026-09-22
+16 -7
View File
@@ -27,9 +27,9 @@ updated: '2026-09-22'
> Базовое развёртывание — [[personal/plans/lampac-kraken]] (шаги 1–6 закрыты).
>
> **Итог одной строкой:** Lampac отдаёт `movies-watchlist.md` как каталог Lampa
> через модуль `Catalog` → 4 категории (360/34/3/7 позиций), автообновление кроном 02:30.
> через модуль `Catalog` → 4 категории (360/33/3/7 позиций), автообновление кроном 02:30.
> Работает на стороне сервера; на ТВ остаётся добавить плагин
> `http://192.168.1.14:9118/catalog.js` (см. «Что осталось на Alex»).
> `http://192.168.1.14:9118/catalog.js` и выбрать источник (см. «Что осталось на Alex»).
## Задача
@@ -170,7 +170,11 @@ Cron: `30 2 * * *` → лог `~/logs/watchlist-catalog.log`.
Добавить плагин на ТВ — **пультом**, 1 минута:
1. Lampa → **Настройки → Плагины** → добавить URL `http://192.168.1.14:9118/catalog.js`
2. Lampa → **Настройки → Источник** → выбрать **«Мой список»**
2. **Полностью перезапустить Lampa** (не сворачивать) — каталоги регистрируются только при старте
3. На главной встать на ряд каталога и нажать **влево** → в выехавшей панели выбрать **«Мой список»**
🔴 **Пункта «Настройки → Источник» в Lampa НЕ СУЩЕСТВУЕТ** — я его выдумал, Alex дважды указал на ошибку.
Источник переключается панелью слева в меню каталогов. Подробно: [[family/how-to/tv-lampac-plugin]].
Приёмка = категории видны в UI Lampa, названия совпадают с `movies-watchlist.md`.
@@ -192,16 +196,21 @@ Cron: `30 2 * * *` → лог `~/logs/watchlist-catalog.log`.
| Проверка | Результат |
|---|---|
| `/catalog.js` по IP | 200, `api_host:'http://192.168.1.14:9118'` |
| Каталог в `/catalog` | «Мой список» в списке каналов |
| `/catalog.js` по IP | 200, ~32 КБ, `api_host:'http://192.168.1.14:9118'` |
| Каталог в `/catalog` | **7 ключей**, «Мой список» первым (Rezka, Kinobase, FilmixApp, VoKino, Eneyida, KinoUkr, Мой список) |
| JSON-файлы | `watchlist.json` + `watchlist-{films,new,cartoons,anime}.json` — все 200 |
| Выдача по категориям | films 360 · new 34 · cartoons 3 · anime 7 |
| Выдача по категориям | films 360 · new **33** · cartoons 3 · anime 7 (после фикса сирот 2026-09-22) |
| Формат ответа `/catalog/list` | `{page, results, total_pages}`, `total_pages: 1` для films |
| Сортировка | ⭐ → рейтинг ↓ → ужасы |
| Чистота названий | эмодзи-маркеров 0 |
| Сирота «Конец света» | ❌ отсутствует во всех 4 категориях |
**НЕ проверено:**
- ❌ **UI Lampa на ТВ** — Alex ещё не добавил плагин. Это единственная непроверенная часть.
- ❌ **UI Lampa на ТВ** — Alex добавил плагин, но каталог в UI не увидел.
Соединений ТВ → `:9118` на момент диагностики — **ноль**. Гипотеза: не сделан полный
перезапуск Lampa (каталоги регистрируются только при старте) либо не выбран источник
в панели слева. **Требуется подтверждение от Alex.**
- ❌ Боевой прогон крона в 02:30 (скрипт отработал вручную успешно).
- ❌ Карточка/постеры в UI.
+50
View File
@@ -324,6 +324,56 @@ ssh root@TV 'script -q -c "luna-send -n 1 -f luna://service/method {json}" /tmp/
**Как убрать выбор источника:** Lampa → Настройки → Плагины → выключить `online.js`. Останутся только торренты.
## 🔴 Выбор источника каталога в Lampa (проверено 2026-09-22)
**В Lampa НЕТ пункта «Настройки → Источник».** Я его выдумал — Alex дважды указал на ошибку.
Не повторять.
Источник (Rezka / Kinobase / «Мой список» / …) переключается **из меню каталогов на главной**:
1. Открыть Lampa на главной
2. Встать на любой ряд каталога → нажать **влево** на пульте
3. Слева выедет **панель со списком источников**
4. Выбрать нужный → OK; каталог перестроится, в заголовке появится имя источника
в верхнем регистре («Фильмы — МОЙ СПИСОК»)
**Плагин `catalog.js` не добавляет пункт меню — он подменяет существующие.**
Механика: при старте приложения `Lampa.Utils.account(api_host + '/catalog', …)` получает список
каталогов, регистрирует каждый как `Lampa.Params.values.source[key]` и подменяет
`Lampa.Api.sources[key]`. Затем хук `Lampa.Listener.follow('menu', …)` перехватывает клики по
`movie`/`tv`/`cartoon`/`anime`/`relise` и подставляет URL из `catalogs[key].menu`.
⚠️ **Следствие — каталоги регистрируются ТОЛЬКО при старте приложения.**
Добавил плагин и не перезапустил Lampa → источника не будет, `/catalog` не запрашивается,
соединений с `:9118` ноль. Нужен **полный перезапуск** (не сворачивание).
### ⚠️ Клиент на ТВ — это не «отдельная Lampa»
`com.lampac.tv` (webOS) грузит UI **с сервера**: `loader.js` читает `lampac_url` из localStorage
(дефолт `http://192.168.1.14:9118`) и подключает `app.min.js` + `lampainit.js`.
Значит логика каталога на ТВ = **серверная**, и править её надо на Lampac, а не на ТВ.
`/lampainit.js` содержит `var plugins_add = [...]` со строкой
`{"url":".../catalog.js","name":"Альтернативные источники каталога","status":1}` —
это **серверный список плагинов, которые Lampac сам подсовывает** в UI.
Каталог watchlist работает через **модуль `Catalog`**, не через эту строку.
Не искать причину поломки в `plugins_add`.
### Диагностика «каталога нет в UI»
| Проверка | Команда | Норма |
|---|---|---|
| Плагин отдаётся | `curl -sI http://192.168.1.14:9118/catalog.js` | 200, ~32 КБ |
| Каталоги зарегистрированы | `curl -s http://192.168.1.14:9118/catalog \| jq 'keys'` | 7 ключей, «Мой список» есть |
| Данные отдаются | `curl -s "…/catalog/list?plugin=watchlist&cat=films" \| jq .total_pages` | 1 |
| ТВ реально ходит | `ssh kraken 'sudo ss -tnp \| grep :9118'` | есть ESTABLISHED <br>**ноль = Lampa не запускалась заново** |
Порядок разбора: сначала `ss` (ходит ли ТВ вообще), потом `/catalog` (что отдаёт сервер),
потом UI. Если ноль соединений — проблема не в сервере.
⚠️ `docker logs lampac` **HTTP-запросы не пишет** — по логам факт обращения ТВ не проверить.
Использовать `ss`, а не логи.
## Внутреннее устройство Lampac (разведка 2026-09-22)
**33 модуля** в образе (`/lampac/module/`):