[2026-09-22] eagle: personal/plans/lampac-watchlist-plugin.md personal/tech/lampac-deployment.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-22 16:22:40 +06:00
1 parent 7a021b26c3
commit 8441f3a4cb
2 files changed
+130 -9

No files matched your search

+25 -7
View File
@@ -7,7 +7,7 @@ related:
- '[[family/projects/watchlist-sync]]'
- '[[family/projects/watchlist-automation]]'
- '[[family/documents/movies-watchlist]]'
status: accepted-in-ui-cub-sections-pending
status: cub-sections-patched-awaiting-tv-restart
tags:
- lampac
- lampa
@@ -68,23 +68,41 @@ updated: '2026-09-22'
> Залито, отдаётся в сборке `/catalog.js` (35566 Б). **Ожидает приёмки в UI.**
> Механика — [[personal/tech/lampac-deployment]] раздел «Внедрение секций Watchlist в CUB-фид».
>
> **Обновление 2026-09-22 (шестая сессия): 🔴🔴 ПРИЧИНА «В CUB НИХУЯ НЕ ПОМЕНЯЛОСЬ» — `Manifest` НЕДОСТУПЕН В ОБЁРТКЕ.**
> Alex: «Ты вообще нихуя не поменял!!». Проверка через **CDP-пробу на живом ТВ** подтвердила
> его правоту: обёртка `Api.sources.cub.main` стояла (`__wl_injected: true`), но вызов
> `cub.main({})` возвращал **4 родные секции** и **ни одной нашей**.
> **Корень:** первая версия инжекта читала `Manifest.catalogs['watchlist']` напрямую, а
> `Manifest` объявлен **локально в замыкании плагина** → `ReferenceError: Manifest is not defined`
> → `catch` → молча отдавался родной фид. **Ошибки нет ни в UI, ни в логах.**
> **Фикс:** `window.__wl_menu` (заполняется в `loadCatalogs`) + `wlEnsureMenu()` с фолбэком
> на запрос `/catalog`. Переписан сборщик: **`build_plugin.py`** (детерминированный,
> с инвариантами `INJECT=1`/`def=1`/`startPlugin=1`, `node --check` + баланс скобок),
> вместо неидемпотентного `patch_cub_inject.py` (он вставлял INJECT дважды и ломал скобки).
> Залито (сборка **35440 Б**), **ждёт перезапуска Lampa на ТВ** — `docker restart lampac`
> НЕ перезагружает плагин в памяти ТВ.
> Механика + CDP-пробы — [[personal/tech/lampac-deployment]] раздел
> «🔴🔴 ШЕСТАЯ СЕССИЯ: ИСТИННАЯ ПРИЧИНА…».
> **Обновление 2026-09-22 (пятая сессия): ✅✅ ПРИЁМКА ALEX ПРОЙДЕНА — ФИЛЬМЫ ОТКРЫВАЮТСЯ И ПРОИГРЫВАЮТСЯ.**
> Дословно: «фильмы из списка Watchlist теперь открываются и проигрываются».
> Закрыт последний блокер — кириллический ключ плагина (`plugin: watchlist`).
> Плюс устранён питфолл `Staticache` (кэш собранного `/catalog.js` переживал
> заливку и выглядел как «патч не применяется» → `docker restart lampac`).
>
> **Осталось (2026-09-22, конец сессии):**
> 1. **5 фильмов с Кинопоиск-ID** (`film/NNNNN/`) — «Рассекая волны: экспедиция „Лас Бальсас“»,
> «Хамнет», «Цена вершины», «Астрал. Могильный ритуал 2», «О добре и зле».
> **Осталось (2026-09-22, конец шестой сессии):**
> 1. **Секции CUB в UI** — 🔴 инжект залит, но требовал **перезапуска Lampa на ТВ**
> (причина «ничего не поменялось» — `Manifest` в обёртке, см. выше). После перезапуска
> проверить через `probe_cub_main.py`: должно быть **8 секций** (4 родные CUB + 4 наши).
> 2. **5 фильмов с Кинопоиск-ID** (`film/NNNNN/`) — «Рассекая волны: экспедиция „Лас Бальсас“»,
> «Хамнет», «Эхопраксия», «Цена вершины», «Астрал. Могильный ритуал 2», «О добре и зле»,
> WeWork (2024).
> TMDB не нашёл (2025 год) → нет карточки и постера → клик даёт «здесь пусто».
> **Нужен выбор Alex:** заглушка с кнопкой поиска торрента либо дорисовать `tmdb_id`.
> 2. **~51 название без постера** — проблема ЗАПИСИ В СПИСКЕ, не скрипта:
> 3. **~51 название без постера** — проблема ЗАПИСИ В СПИСКЕ, не скрипта:
> `Плохие парни 1/2` (ДВА фильма одной строкой), `Солярис Тарковский` (уточнение
> режиссёра), `Самолетом, поездом, машиной (1987)` (русский аналог).
> Генератор такое угадать не может — **правится только список руками**.
> 3. **Секции CUB в UI** — инжект залит, нужен перезапуск Lampa и визуальная проверка:
> секции Watchlist должны появиться поверх родного фида CUB при активном источнике CUB.
>
> **Обновление 2026-09-22 (четвёртая сессия, ранее): ✅ ЧИСЛОВОЙ `tmdb_id` В КАРТОЧКАХ.**
> 352 из 352 карточек отдают `tmdb_id` числом, `source`, `runtime`, `vote_average`, жанры.