[2026-09-23] eagle: family/projects/watchlist-automation.md personal/plans/lampac-watched-to-watchlist.md personal/plans/lampac-watchlist-plugin.md
This commit is contained in:
1 parent
34dfc8cfc6
commit
945a4f6f5a
3 files changed
+78
No files matched your search
@@ -110,6 +110,56 @@ no-op), `nightly` 01:00, `catalog` 02:30→02:32 (каналов 4, позици
|
||||
осталась с ранней версии. Правка `crontab` = боевой конфиг → порядок «коммит ДО → правка →
|
||||
заливка → проверка Alex → коммит ПОСЛЕ».
|
||||
|
||||
### 🔴 2026-09-23: `[x]` из Lampa НЕ проставляется — канал найден, но не подключён
|
||||
|
||||
**Вопрос Alex:** «А у нас из лампы уходят отметки просмотрено в список галочками как было в jellyfin?»
|
||||
**Ответ: НЕТ.** Ни Lampa, ни Jellyfin сейчас не дают `[x]`. Задача в работе — см.
|
||||
[[personal/plans/lampac-watched-to-watchlist]].
|
||||
|
||||
**Почему Jellyfin-канал мёртв (замеры 2026-09-23):**
|
||||
|
||||
| Проверка Jellyfin (`BaseItems` / `UserData`) | Значение |
|
||||
|---|---|
|
||||
| `BaseItems` всего | 53 |
|
||||
| из них `movie` | **0** |
|
||||
| из них `series` | 1 (плейлист/коллекция) |
|
||||
| `UserData.IsPlayed=true` | **0** |
|
||||
| `PlaybackActivity` | **0** |
|
||||
|
||||
Причина: смотрят через **Lampa + TorrServer**, а не Jellyfin. Плюс с 2026-09-22
|
||||
автозакачки выключены → новые файлы в Jellyfin не приходят. `sync_up.py`
|
||||
(`GET /Users/{id}/Items?IsPlayed=true` → `[x]`) читает пустоту.
|
||||
|
||||
**🔑 Где реально живёт история просмотров — модуль Lampac `TimeCode`:**
|
||||
|
||||
| Элемент | Значение |
|
||||
|---|---|
|
||||
| Модуль | `/lampac/module/Sync/TimeCode/` (`Controller.cs`, `plugin.js`, `SqlContext.cs`) |
|
||||
| БД | `/lampac/database/TimeCode.sql` (SQLite). **На хосте:** `$H/lampac/database/TimeCode.sql` |
|
||||
| Таблица | `timecodes` |
|
||||
| Колонки | `Id, user, identity, card, item, position, duration, percent, profile, deleted, watched_at, updated_at, extra` |
|
||||
| Пишет | Lampa → `POST /timecode/add` (легаси) / `/timecode/set` (нативный), пачками ≤10 req/s |
|
||||
| Ключ личности | `identity = {tmdb_id}_movie` — готовый ключ для матча со списком по TMDB-ID |
|
||||
|
||||
Живая запись на 2026-09-23 (единственная в БД):
|
||||
```
|
||||
identity = 1758655_movie card = movie-1758655
|
||||
position = 1222.0 duration = 6898.0 percent = 18.0
|
||||
watched_at = 0 deleted = 0
|
||||
```
|
||||
|
||||
🔴 **Питфолл: `sqlite3` в контейнере `lampac` НЕТ** (`sh: sqlite3: not found`).
|
||||
Читать БД так: `docker cp lampac:/lampac/database/TimeCode.sql /tmp/` + на хосте
|
||||
`python3 -c "import sqlite3; ..."`. На хосте Кра́кена `python3` есть.
|
||||
⚠️ `viewed.json` и `config.db` в `/lampac/data/ts/` — это **TorrServer'овские**, к
|
||||
TS-истории просмотров Lampa отношения не имеют (не путать).
|
||||
|
||||
**Решение (план, ждёт апрува):** новый модуль `sync_from_lampac.py` в `watchlist-sync` —
|
||||
читает `timecodes` (`deleted=0` и (`percent>=90` или `watched_at>0`)) → матч по `tmdb_id`
|
||||
из `watchlist.json` (у **346/346** films `tmdb_id` есть) → `[x]` через существующий
|
||||
`sync_up._mark_watched` → вызов в `watchlist-nightly.sh` после `sync-up`.
|
||||
Полный план, грабли и чек-лист приёмки — [[personal/plans/lampac-watched-to-watchlist]].
|
||||
|
||||
### 🔜 2026-09-22: УДАЛЕНИЕ авто-закачек — инвентаризация снята, ЖДЁТ КОМАНДЫ
|
||||
|
||||
Alex: *«закачки отменять и проверить еще раз что заново не добавятся»* →
|
||||
|
||||
@@ -134,3 +134,30 @@ watched_at = 0 deleted = 0
|
||||
- **Не** возвращаем `sync-down` в крон — закачек быть не должно.
|
||||
- **Не** пишем в Jellyfin — он не источник просмотров.
|
||||
- **Не** трогаем `cleanup` — отдельная задача.
|
||||
|
||||
---
|
||||
|
||||
## 7. Открытый вопрос (задан Alex 2026-09-23, ответа нет)
|
||||
|
||||
Как именно в Lampa ставится «просмотрено» — **вручную кнопкой** или **автоматически
|
||||
при досмотре до конца**? От этого зависит порог в шаге 6:
|
||||
|
||||
| Как ставится | Какая колонка сработает |
|
||||
|---|---|
|
||||
| Вручную кнопкой | `watched_at > 0` (Lampa кладёт `updated` в `watched_at`) |
|
||||
| Автодосмотр до конца | `percent >= 90` |
|
||||
|
||||
В плане заложены **оба условия одновременно** (`percent >= 90` **ИЛИ** `watched_at > 0`) —
|
||||
работает в любом случае, но при ответе Alex можно сузить и убрать ложные срабатывания.
|
||||
|
||||
---
|
||||
|
||||
## 8. Связанные находки этой сессии (не часть плана, но проверено)
|
||||
|
||||
- **Стек после ребута:** 14/14 контейнеров поднялись сами, Radarr/Sonarr queue `0`,
|
||||
Transmission 9 торрентов всё `Done/Idle`, диск 31%, Lampac 200 / Jellyfin 302.
|
||||
Ночные скрипты (cleanup 02:00, nightly 01:00, catalog 02:30) отработали.
|
||||
Записано в [[family/projects/watchlist-automation]].
|
||||
- **🔴 Лог `nightly` живёт в `/tmp/watchlist-nightly.log`** → умирает при ребуте.
|
||||
Сегодняшний прогон следа не оставил. Предложен фикс (перенести в `~/logs/`),
|
||||
ждёт команды. Остальные логи уже в `~/logs/`.
|
||||
@@ -7,6 +7,7 @@ related:
|
||||
- '[[family/projects/watchlist-sync]]'
|
||||
- '[[family/projects/watchlist-automation]]'
|
||||
- '[[family/documents/movies-watchlist]]'
|
||||
- '[[personal/plans/lampac-watched-to-watchlist]]'
|
||||
status: cub-sections-working-awaiting-tv-restart-deploy
|
||||
tags:
|
||||
- lampac
|
||||
|
||||
Reference in new issue
Block a user