[2026-09-22] eagle: family/how-to/gitea-config.md personal/plans/watchlist-tmdb-missing-marker.md personal/tech/lampac-deployment.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-22 17:28:29 +06:00
1 parent 42ac730a46
commit e3618d5001
3 files changed
+243 -15

No files matched your search

+36
View File
@@ -58,6 +58,42 @@ related:
**`plugin-cub.js`** (результат), `deploy_cub.py`, `tv_restart.sh`, `restart_lampa.sh`,
**`probe_*.py`** (CDP-пробы рантайма Lampa на ТВ).
## 📦 Репозиторий скриптов: `git_admin/lampac-scripts` (2026-09-22)
`~/lampac-tmp/` — **НЕ git-репо** (свалка одноразовых пробников, 50+ файлов).
Прод-генератор жил там без версионирования — ошибка, исправлено.
**Репозиторий:** `/Users/admin/Developer/lampac-scripts/` (gitea, private)
**Remote (ЧИСТЫЙ URL, токен не в URL):** `https://git.mallexxx.duckdns.org/git_admin/lampac-scripts.git`
Токен — в `~/.git-credentials` (600). Питфолл №1 из [[family/how-to/gitea-config.md]].
```
/Users/admin/Developer/lampac-scripts/
├── scripts/gen_watchlist.py (из gen_watchlist_v2.py — ПРОД-генератор)
├── scripts/deploy_lampac.py
├── scripts/mark_missing.py (в прод НЕ ставить — см. план, Шаг 1.3)
└── tests/accept_step1.py, tests/accept_step1_order.py
```
Создание репо через API — `~/lampac-tmp/create_gitea_repo.py` (Python, а не bash:
подстановка `$( … | sed … )` вырезается фильтром безопасности — питфолл №2 из
[[family/how-to/gitea-config.md]]).
## 🔄 Ночной крон на Кра́кене — что делает автоматика
`~/scripts/watchlist-nightly.sh`, cron **01:00**:
```
sync-vault (pull) → process-thumbs --apply → resolve --recheck --apply
→ sync-down --apply --batch 2 → sync-up --apply → sync-vault (push)
```
`~/scripts/watchlist-catalog.sh`, cron **30 2 * * *** — генерация JSON + рестарт lampac.
`~/scripts/watchlist-cleanup.sh`, cron **0 2 * * *** — сносит просмотренное при заполнении диска.
🔴 **`resolve --recheck --apply` снимает маркер сам**, когда фильм находится.
Это работа резолвера `watchlist_sync/resolver.py` — НЕ генератора каталога и НЕ ручная.
`resolve` **пропускает** позиции с `❓`/`🗓️` (флаг `ambiguous` в `WatchItem`, `parser.py`).
🔴 **Права на файлы в `wwwroot/` — владелец `1000:1000` (= пользователь `lampac`
в контейнере), каталоги `755`, файлы `644`.** Не `kraken:kraken` — контейнер ходит
не под хост-пользователем. Если файл окажется `root:root 600`, dotnet ответит