[2026-09-22] eagle: personal/plans/lampac-watchlist-plugin.md personal/tech/lampac-deployment.md
This commit is contained in:
1 parent
c4932a84f4
commit
0191154384
2 files changed
+195
-1
No files matched your search
@@ -7,7 +7,7 @@ related:
|
||||
- '[[family/projects/watchlist-sync]]'
|
||||
- '[[family/projects/watchlist-automation]]'
|
||||
- '[[family/documents/movies-watchlist]]'
|
||||
status: card-fixed-tv-check-pending
|
||||
status: cub-sections-blocked
|
||||
tags:
|
||||
- lampac
|
||||
- lampa
|
||||
@@ -1907,5 +1907,81 @@ Lampa на ТВ **кэширует манифест и ответы**. Посл
|
||||
выгрузить приложение** (не свернуть), иначе клиент держит старый кэш и
|
||||
показывает дореформенный результат.
|
||||
|
||||
---
|
||||
|
||||
## 🔴 СЕССИЯ 4 (2026-09-22, поздняя ночь): приёмка НЕ пройдена, требование изменено
|
||||
|
||||
### Что сказал Alex
|
||||
|
||||
1. «у фильмов в "Мой список" появились норм названия, годы и у большинства —
|
||||
постеры. **Но при открытии все так же "здесь пусто"** и никакого инфо или
|
||||
воспроизведения!»
|
||||
2. «че блядь значит надо Настройки → Остальное → Основной источник?! мы блядь
|
||||
это уже обсуждали и **надо было добавить в CUB список новые секции** а не
|
||||
ручное блядь переключение!»
|
||||
|
||||
### Статус по факту
|
||||
|
||||
| Пункт | Состояние |
|
||||
|---|---|
|
||||
| Серверная карточка | ✅ **исправна** — curl отдаёт `tmdb_id: 424781` числом, `source`, жанры, постер, описание |
|
||||
| Приёмка на ТВ | ❌ **НЕ пройдена** — «здесь пусто» на экране |
|
||||
| Соединения ТВ → Lampac | ❌ **ноль** (`sudo ss -tn \| grep 9118` пусто в момент проверки) |
|
||||
| Секции внутри CUB | ❌ не реализовано — сейчас подмена через `e.abort()` |
|
||||
|
||||
### Диагностика, выполненная в этой сессии
|
||||
|
||||
Разобран `app.min.js` (2.1 МБ) — **эталон CUB-источника**:
|
||||
|
||||
- `CUB.full()` ставит `json.source = 'cub'` сам (строка ~34252).
|
||||
- `Explorer` читает `this.object.movie || this.object.card`.
|
||||
- `full` пушится с `source: element.data.source || 'tmdb'` (**строка 44291**) —
|
||||
🔴 **фолбэк на tmdb, если у элемента нет поля `source`**. В ответе
|
||||
`/catalog/list` поля `source` **нет** → проверить первым делом.
|
||||
- `plugin.js:42-43` требует от карточки: `tmdb_id` (**число**), `original_name`
|
||||
(или `original_title`) для определения tv/movie, `img`, `overview`.
|
||||
|
||||
Полная анатомия — [[personal/tech/lampac-deployment]] → «Анатомия CUB-источника».
|
||||
|
||||
### 🎯 ЗАДАЧА СЛЕДУЮЩЕЙ СЕССИИ (переформулирована Alex'ом)
|
||||
|
||||
**Не переключать источник, а дорисовать наши секции ВНУТРЬ CUB.**
|
||||
|
||||
1. **Проверить гипотезу `source`.** Элементы `/catalog/list` не содержат `source`.
|
||||
Если `full` уходит в `tmdb` вместо `watchlist` — это и есть «здесь пусто».
|
||||
Проверка: `curl "/catalog/list?plugin=watchlist&cat=films&page=1" | jq '.results[0].source'`.
|
||||
2. **Отвязать плагин от перехвата `menu`.** Патчить рендер главной CUB
|
||||
(`app.min.js` строки ~44260-44310: `feed`/`category_full`) либо добавить ряды
|
||||
через `Lampa.Listener.follow('activity')`. `e.abort()` — НЕ использовать
|
||||
(отменяет родной раздел, чего Alex не хочет).
|
||||
3. **Приёмка = глазами на ТВ.** Открыть **обычный CUB** → сверху видны наши
|
||||
секции с постерами → клик → карточка с описанием → кнопка воспроизведения
|
||||
ведёт в TorrServer. Никакого ручного переключения источника.
|
||||
|
||||
### Питфоллы, найденные в этой сессии
|
||||
|
||||
- 🔴 **Проверять карточку по `/catalog/card`, НЕ по `/card`.** `/card` отдаёт 404
|
||||
и выглядит как поломка каталога — потерян час на ложном диагнозе.
|
||||
- 🔴 **Кэш `catalog:card:{plugin}:{uri}` живёт в ПАМЯТИ** и **переживает
|
||||
`docker restart`**. После правки данных старые ответы продолжают отдаваться.
|
||||
Проверять на **незэкешированном** `uri` (взять другой фильм).
|
||||
- 🔴 **`nodeValue` (`ModInit.cs:285`) возвращает любое `JValue` СТРОКОЙ** →
|
||||
в `card_args` нужен `format: "long.TryParse(value, out long v) ? v : 0"`.
|
||||
- 🔴 **`tmdb_id` ДОЛЖЕН быть числом** — `plugin.js` делает `if(json.tmdb_id)`.
|
||||
- macOS `tar` кладёт AppleDouble `._*` в `wwwroot` → `tar --no-mac-metadata`.
|
||||
- Права `root:root 600` → `Permission denied` → статика молча отдаёт **404**.
|
||||
Нужно `1000:1000` + `755`/`644`.
|
||||
- `find -exec` через `ssh -t` рвётся (`missing argument to -exec`) → `chmod -R`.
|
||||
- `&&`-цепочка рвёт tty-сессию ssh → каждая команда отдельным вызовом.
|
||||
- `tcpdump` на Кра́кене **не был установлен** → `sudo apt-get install -y tcpdump`.
|
||||
- `com.webos.service.devtools` **не существует** на webOS 5.4.2 Lite.
|
||||
- `luna-send` пишет в tty → только через `script -q -c "..." /tmp/out.txt`.
|
||||
|
||||
### Артефакты
|
||||
|
||||
- Скрипты: `/Users/admin/lampac-tmp/{gen_watchlist_v2.py,deploy_lampac.py,watchlist.yaml}`.
|
||||
- Копия UI Lampa для разбора: `/tmp/app-min.js` (2.1 МБ).
|
||||
- Бэкап плана: `~/backup-lampac-plugin-plan-20260922-150459.md`.
|
||||
- Доклады по карточке — [[personal/tech/lampac-deployment]] (конец файла).
|
||||
|
||||
## Связанные
|
||||
Reference in new issue
Block a user