[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:
1 parent
6d8cd5e1eb
commit
63694c7f57
3 files changed
+93
-3
No files matched your search
@@ -221,6 +221,13 @@ curl -s --max-time 10 "http://localhost:7878/radarr/api/v3/queue?pageSize=50" \
|
||||
(частичный молча возвращает старое). Через host-config тупик: валидатор требует непустой
|
||||
`allowedHosts` при `authenticationRequired != Enabled` и не принимает звёздочку.
|
||||
|
||||
**🔴 Дальше — консолидация (план согласован 2026-09-24, не реализован):** отдельный
|
||||
генератор каталога `lampac/scripts/gen_watchlist.py` признан вторым независимым матчером
|
||||
TMDB — он не знает про `resolve` и его маркеры, из-за чего после удаления arr каталог
|
||||
разъехался с `.md` на 3 позициях (Олдбой/Unbroken/Shogun). Слияние логики в модуль
|
||||
проекта `watchlist_sync/feed.py` + CLI-шаг `feed` — см.
|
||||
[[personal/plans/lampac-watchlist-plugin]] § «2026-09-24 (вечер): ПЕРЕПИСЫВАНИЕ».
|
||||
|
||||
### ✅ 2026-09-24 (вечер): контент удалён — Radarr/Sonarr пустые
|
||||
|
||||
Alex: «если они ни в чем не участвуют, удали все фильмы/сериалы». Проверка перед удалением:
|
||||
|
||||
@@ -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 закрыты).
|
||||
>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: Lampac — развёртывание и эксплуатация (Кра́кен)
|
||||
created: '2026-09-22'
|
||||
updated: '2026-09-22'
|
||||
updated: '2026-09-24'
|
||||
type: tech
|
||||
namespace: personal
|
||||
tags:
|
||||
@@ -27,6 +27,41 @@ related:
|
||||
|
||||
> Технический справочник. Развёрнуто 2026-09-22. План и статус шагов — [[personal/plans/lampac-kraken]].
|
||||
|
||||
## 🔴 2026-09-24: генератор каталога признан вторым матчером — уходит в проект
|
||||
|
||||
`lampac/scripts/gen_watchlist.py` (878 строк) + `mark_missing.py` (179) — **отдельные
|
||||
скрипты вне `watchlist-sync`**. Разбор кода в этой сессии:
|
||||
|
||||
- резолв **трёхуровневый**: Radarr по названию → TMDB `/search/{movie,tv}` (кэш
|
||||
`cache/.lampac_tmdb_cache.json`) → КП по номеру из ссылки в `.md`
|
||||
(`kp_id_from_url`, приоритет выше поиска по названию) → КП по названию с порогом
|
||||
`KP_SIM_THRESHOLD = 0.75` и проверкой год ±1 / совпадения `media_type`;
|
||||
- детали карточек — `cache/.lampac_tmdb_details.json` (описание, жанры, актёры, runtime,
|
||||
ru-title + year; требование Alex «отображать как в tmdb/kp»);
|
||||
- пишет: `wwwroot/watchlist.json` (channels), `wwwroot/watchlist-{films,new,cartoons,anime}.json`,
|
||||
`wwwroot/cards.json` + `wwwroot/cards/card-<type>-<id>.json` (файл на фильм, обёртка
|
||||
`{"card": {...}}`), `wwwroot/missing.json` (для маркера ❓);
|
||||
- позиции без TMDB-ID в фид **не отдаются** (требование «чего нет для просмотра — того
|
||||
нет в списке»), уходят в `missing.json`;
|
||||
- `load_env()` ищет `.env` в жёстком списке путей (Кракен-пути + Mac-путь) — хрупко.
|
||||
|
||||
**Проблема:** скрипт не читает `.resolve_cache.json` и не знает маркеров ✅/🗓️/❓ —
|
||||
это ВТОРОЙ независимый матчер того же списка. Ранее связывался с `resolve` неявно через
|
||||
Radarr (матч по названию → те же версии, что выбрал резолвер). После удаления контента
|
||||
из arr (2026-09-24) мост исчез → 3 карточки сменили фильм.
|
||||
|
||||
**Решение (план согласован, не реализован):** логика переезжает в проект как
|
||||
`watchlist_sync/feed.py` + CLI-шаг `feed`, пути через `.env`-ключ `LAMPAC_ROOT`, шаг
|
||||
встаёт в nightly между `resolve` и `sync-up`; `gen_watchlist.py` / `mark_missing.py` /
|
||||
`watchlist-catalog.sh` (крон 02:30) — в `.bak`. Детали и порядок шагов —
|
||||
[[personal/plans/lampac-watchlist-plugin]] § «2026-09-24 (вечер): ПЕРЕПИСЫВАНИЕ».
|
||||
|
||||
⚠️ **НЕ трогать при переносе:** `catalog/sites/watchlist.yaml` (`plugin: watchlist` —
|
||||
обязателен, кириллица в ключе вырезается регуляркой `ModInit`; первая категория
|
||||
игнорирует `format` и берёт `list.uri`; `card_args` требуют `format` для числовых типов,
|
||||
иначе `tmdb_id` приедет строкой и карточка в Lampa будет «здесь пусто»),
|
||||
`catalog/plugin.js` (инжект секций в CUB через `Api.partNext`), структуру `cards/`.
|
||||
|
||||
## Что это
|
||||
|
||||
`lampac-nextgen/lampac` (MIT, .NET 10) — серверный бэкенд для Lampa. Один контейнер, порт **9118**.
|
||||
|
||||
Reference in new issue
Block a user