[2026-09-24] eagle: family/projects/watchlist-automation.md personal/plans/lampac-watchlist-plugin.md personal/tech/lampac-deployment.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-24 16:57:52 +06:00
1 parent 6d8cd5e1eb
commit 63694c7f57
3 files changed
+93 -3

No files matched your search

+50 -2
View File
@@ -8,7 +8,7 @@ related:
- '[[family/projects/watchlist-automation]]'
- '[[family/documents/movies-watchlist]]'
- '[[personal/plans/lampac-watched-to-watchlist]]'
status: cub-sections-working-awaiting-tv-restart-deploy
status: unified-feed-approved-awaiting-implementation
tags:
- lampac
- lampa
@@ -22,13 +22,61 @@ tags:
- torrserver
- tmdb
- card-parse
- feed
title: Watchlist в UI Lampa — каталог из списка
type: plan
updated: '2026-09-22'
updated: '2026-09-24'
---
# Watchlist в UI Lampa — каталог из списка
## 🔴 2026-09-24 (вечер): ПЕРЕПИСЫВАНИЕ — один sync-скрипт вместо отдельного генератора
**Требование Alex:** «перепиши по нормальному чтобы не отдельный скрипт на лампу был
а один sync скрипт и писал сразу lampa feed… обнови синк скрипт чтобы писал фид вместо
добавления закачек в arr, а отдельный lampac script удали».
**Причина (найдено в этой сессии).** `gen_watchlist.py` (Lampac, 878 строк) — ВТОРОЙ,
независимый матчер TMDB: он не читает ни `.resolve_cache.json`, ни маркеры ✅/🗓️/❓.
Годами его связывал с резолвером Radarr неявно (матч по названию → те же версии фильмов,
что выбрал `resolve`). После удаления контента из arr 2026-09-24 мост исчез, и каталог
впервые матчил вслепую → 3 карточки сменили фильм (Олдбой 2003→2013 ремейк,
Unbroken 2003→Несломленный 2014, Shogun 1968→Убийца сёгуна 1980). Лечим не годами
в `.md`, а слиянием матчеров.
**План (согласован, реализация НЕ начата).**
| Шаг | Что |
|---|---|
| 1 | Логику `gen_watchlist.py` перенести в модуль проекта: `watchlist_sync/feed.py`, функция `run()` как у остальных |
| 2 | Новый CLI-шаг `feed`; в nightly — ПОСЛЕ `resolve` (маркеры уже стоят), ПЕРЕД `sync-up` |
| 3 | Пути — через `.env`-ключ `LAMPAC_ROOT=/srv/.../lampac` (не хардкод); модуль сам собирает `wwwroot/watchlist.json`, `wwwroot/cards/`, `cache/` |
| 4 | Проверка на копии фида: ожидание **392 позиции / 390 постеров / missing 30** — точь-в-точь как текущий живой |
| 5 | Живой прогон + `docker restart lampac` (сброс кэша Catalog) |
| 6 | Выпилить: `lampac/scripts/gen_watchlist.py` + `mark_missing.py` → `*.bak-20260924`; `~/scripts/watchlist-catalog.sh` + строка крон `30 2 * * *` |
| 7 | Доки + скилл, коммит/пуш |
**Что НЕ трогаем:** `catalog/sites/watchlist.yaml` (контракт Lampac — `plugin: watchlist`,
категории, `card_parse`/`card_args` с `format`-выражениями), `catalog/plugin.js`
(инжект секций в CUB через `Api.partNext`), структура `cards/card-movie-NNN.json`.
Механика `missing.json` → маркер ❓ уже живёт в проекте и работает.
**`sync-down` остаётся вырезанным из крона** — добавлений в arr из watchlist нет;
`arr.py` не трогаем (автозакачка вернулась для РУЧНЫХ добавлений, коммит `ef7e7af`).
**Реперные метрики живого фида на 2026-09-24** (для сверки после переноса):
```
каналы: new 32 / films 346 / cartoons 7 / anime 7 → карточек 392
источники: Radarr 0, TMDB 371, автопоиск по названию 17,
по номеру из ссылки 4, без TMDB 30, постеров 390
```
🟡 **Рабочее правило (Alex):** код писать сразу в проекте на Маке
(`~/Developer/watchlist-sync/`), `/tmp` — только для чтения чужих файлов и одноразовых
выборок. Мак-репа и Кракен держатся на одном коммите (`4266e37` на момент старта).
---
> Реализовано 2026-09-22. План был переписан после разведки кода модуля Catalog.
> Базовое развёртывание — [[personal/plans/lampac-kraken]] (шаги 1–6 закрыты).
>