[2026-09-22] eagle: personal/plans/watchlist-tmdb-missing-marker.md personal/tech/lampac-deployment.md
This commit is contained in:
1 parent
4d0c0867db
commit
f7c06d2e41
2 files changed
+184
-7
No files matched your search
@@ -5,10 +5,80 @@
|
||||
**Статус:** ✅ ОСНОВНАЯ ЗАДАЧА ЗАВЕРШЕНА. Шаги 1, 1.3, 2, 3 задеплоены и приняты в UI.
|
||||
Маркер `❓` работает **в обе стороны** (24 снято, 18 поставлено), боевой `.md`
|
||||
синхронизирован с каталогом, автозакачка в Radarr отключена и **16 авто-закачек
|
||||
удалены вместе с файлами**, кэш резолва на HDD, кэш-копия с SD удалена.
|
||||
Коммиты: `lampac-scripts` **`1122b71`** (маркер в обе стороны), `watchlist-sync` **`396acc3`**.
|
||||
удалены вместе с файлами**, кэш резолва на HDD, кэш-копия с SD удалена,
|
||||
**название и год карточки берутся из TMDB** (было — из `.md`).
|
||||
Коммиты: `lampac-scripts` **`53e5803`** (имя/год из TMDB), `1122b71` (маркер в обе
|
||||
стороны), `watchlist-sync` **`396acc3`**.
|
||||
**Открытые задачи (в работе / ждут Alex)** → [[#🔜 Открытые задачи (2026-09-22, вечер)]]
|
||||
**Связано:** [[personal/plans/lampac-watchlist-plugin]], [[personal/plans/lampac-disable-1xbet-ads]], [[family/projects/watchlist-automation]], [[family/projects/watchlist-sync]], [[personal/tech/lampac-deployment]]
|
||||
**Связано:** [[personal/plans/lampac-watchlist-plugin]], [[personal/plans/lampac-disable-1xbet-ads]], [[personal/plans/lampac-pidtor-503-fix]], [[family/projects/watchlist-automation]], [[family/projects/watchlist-sync]], [[personal/tech/lampac-deployment]], [[personal/tech/lampac-torrserver]]
|
||||
|
||||
---
|
||||
|
||||
## ✅ Название и год карточки — из TMDB (2026-09-22, коммит `53e5803`)
|
||||
|
||||
Alex: *«че по имени в карточке? оно должно из источника ставиться»*,
|
||||
*«названия блядь доделал?»*, *«БЛЯДЬ фильм есть или нет?? ... Отображать как в tmdb/kp»*.
|
||||
|
||||
### Что было / что стало
|
||||
|
||||
```python
|
||||
# БЫЛО: it["name"] = название из .md, it["year"] = год из .md (часто null)
|
||||
# СТАЛО: tmdb_details() тянет ru-RU title + original_title + год из release_date
|
||||
```
|
||||
|
||||
`tmdb_details()` расширен полями `title`, `original_title`, `en_title`, `year`,
|
||||
`release_date`. В `enrich()` — подстановка с приоритетом **русское название TMDB →
|
||||
оригинал → `.md` как fallback**. Год проставляется, если в `.md` был `None`.
|
||||
|
||||
### Доказательства расхождения (сырьё)
|
||||
|
||||
| в `.md` | TMDB `ru-RU` | TMDB `en-US` |
|
||||
|---|---|---|
|
||||
| `Смерть единорога` | **`Смерть Единорога`** | `Death of a Unicorn` |
|
||||
| `Everything Everywhere All at Once` | **`Всё везде и сразу`** | `Everything…` |
|
||||
| `Простите за беспокойство` | `Простите за беспокойство` | `Sorry to Bother You` |
|
||||
| `Духless` | `Духless` | `Soulless` |
|
||||
| `Бумбараш` | `Бумбараш` | `Bumbarash` |
|
||||
|
||||
**Год вообще не проставлялся** (`year: null` в каталоге), хотя TMDB отдаёт
|
||||
`release_date='2025-03-17'`.
|
||||
|
||||
### 🔴 Миграция кэша деталей
|
||||
|
||||
`cache/.lampac_tmdb_details.json` (367 записей) **не содержал `title`** — старая
|
||||
версия сохраняла только описание/жанры/актёров. Добавлена проверка:
|
||||
|
||||
```python
|
||||
key = f"{mtype}/{tmdb_id}"
|
||||
if key in details:
|
||||
d = details[key]
|
||||
if d.get("title"): # ← миграция: без title дотянуть заново
|
||||
return d
|
||||
```
|
||||
|
||||
Записи дотягиваются по одной при первом обращении (~12 запросов/с, ~30 сек на 367).
|
||||
|
||||
### Результат боевого прогона
|
||||
|
||||
```
|
||||
376 позиций без года: 1 (из 376) — 'Волшебный участок: Фильм' (нет в TMDB)
|
||||
296 позиций: русское name + original
|
||||
источники: Radarr 9, TMDB 346, автопоиск по названию 17, по kp_id 4, miss 33, карточек 376
|
||||
|
||||
'Смерть Единорога' orig='Death of a Unicorn' year=2025
|
||||
'Всё везде и сразу' orig='Everything…' year=2022
|
||||
'Простите за бесп…' orig='Sorry to Bother You' year=2018
|
||||
'Я ругаюсь' orig='I Swear' year=2025
|
||||
'Гамнет' orig='Hamnet' year=2025
|
||||
```
|
||||
|
||||
🔴 **Скрипты, вносившие правку, лежат в `~/lampac-tmp/`:**
|
||||
`probe_titles.py` (сверка ru/en), `probe_details.py` (состав кэша),
|
||||
`probe_migrate.py` (проверка миграции), `verify_names.py` (итог прогона).
|
||||
|
||||
🔴 **Прогон дважды падал на обрыве ssh** (`client_loop: send disconnect: Broken pipe`)
|
||||
даже с `setsid nohup`. Рабочее решение — `systemd-run --user --unit=gen-watchlist
|
||||
--scope /tmp/gen-runner.sh`. См. [[personal/tech/lampac-deployment]].
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -118,9 +118,8 @@ sync-vault → process-thumbs → resolve --recheck --apply → sync-up → sync
|
||||
**Единственный автоматический путь в закачку** (проверено grep по `~/scripts/*.sh`):
|
||||
в активном виде не осталось ни одного. Все упоминания `sync-down` — комментарии.
|
||||
|
||||
⚠️ **Radarr уже получил закачки за прошлые прогоны** — 16 фильмов, см. раздел
|
||||
«Инвентаризация авто-закачек в Radarr/Sonarr» ниже. Судьба решается Alex'ом
|
||||
(на момент записи — ждём команду на удаление).
|
||||
⚠️ **Radarr уже получил закачки за прошлые прогоны** — 16 фильмов, **УДАЛЕНЫ
|
||||
2026-09-22 вместе с файлами** (см. раздел «Инвентаризация авто-закачек» ниже).
|
||||
|
||||
### Разграничение двух «лимитов» (частый источник путаницы)
|
||||
|
||||
@@ -132,6 +131,110 @@ sync-vault → process-thumbs → resolve --recheck --apply → sync-up → sync
|
||||
Каталог строится `.md` → `watchlist.json`; **Radarr в отображении не участвует.**
|
||||
Alex спрашивал про «лимит обработки/выдачи в lampa» — это НЕ `batch`.
|
||||
|
||||
## ✅ Инвентаризация авто-закачек Radarr/Sonarr и УДАЛЕНИЕ (2026-09-22)
|
||||
|
||||
Alex: *«удалить все добавленные автоматикой закачки в т.ч. файлы. и radarr и sonarr»*
|
||||
|
||||
### Как определялось «добавлено автоматикой»
|
||||
|
||||
У Radarr/Sonarr **нет тега «кто добавил»**. Признак — окно работы `sync-down`:
|
||||
пайплайн пошёл в работу 20–21.09.2026.
|
||||
|
||||
```
|
||||
RADARR: 50 фильмов. added >= 2026-09-20 -> 16 штук ← это авто
|
||||
34 более старых (18.05–04.06) -> НЕ авто (watchlist тогда не работал)
|
||||
SONARR: 13 сериалов, ВСЕ добавлены 18.05–01.06 -> авто-закачек НЕТ (added>=20.09: 0)
|
||||
```
|
||||
|
||||
### Удалено: 16 фильмов Radarr вместе с файлами
|
||||
|
||||
```
|
||||
deleteFiles=true&addImportExclusion=false
|
||||
DELETE /api/v3/movie/{id} -> все 16 вернули HTTP 200, ошибок 0
|
||||
```
|
||||
|
||||
| id | Фильм | Год | Файл |
|
||||
|---|---|---|---|
|
||||
| 40 | American History X | 1998 | был |
|
||||
| 41 | Oficina do Diabo | 2025 | нет |
|
||||
| 42 | I Swear | 2025 | был |
|
||||
| 43 | Gladiator | 2000 | нет |
|
||||
| 44 | Warfare | 2025 | был |
|
||||
| 45 | The Secret Agent | 2025 | был |
|
||||
| 46 | Den of Thieves 2: Pantera | 2025 | был |
|
||||
| 47 | The Ugly Stepsister | 2025 | был |
|
||||
| 48 | Rental Family | 2025 | был |
|
||||
| 49 | The Life List | 2025 | был |
|
||||
| 50 | People We Meet on Vacation | 2026 | был |
|
||||
| 51 | It Was Just an Accident | 2025 | был |
|
||||
| 52 | The Perfect Neighbor | 2025 | нет |
|
||||
| 53 | Chasing the Wind | 2025 | нет |
|
||||
| 54 | Sirāt | 2025 | был |
|
||||
| 55 | Death of a Unicorn | 2025 | был |
|
||||
|
||||
**Результат (проверено сырьём):**
|
||||
```
|
||||
Radarr: 50 -> 34 фильма | added >= 20.09: 0 | очередь: 0 | monitored: 0
|
||||
все 12 каталогов с файлами: удалены с диска (movie-radarr: 29 -> 17 каталогов)
|
||||
корзина .recyclebin: пуста (файлы ушли физически, не в корзину)
|
||||
Sonarr: 13 сериалов, не тронуто (авто-закачек не было)
|
||||
```
|
||||
|
||||
Артефакты: дамп `/tmp/radarr-sonarr-dump-20260922-184351/`,
|
||||
снимок `/tmp/radarr-delete-snapshot.json`, скрипт `~/lampac-tmp/delete_autodownloads.py`.
|
||||
|
||||
**Повторное добавление невозможно — два независимых барьера:**
|
||||
`monitored: 0` у всех 50 + `sync-down` вырезан из крона (см. выше).
|
||||
|
||||
### 🔴🔴 ПИТФОЛЛ: `/media/movies-radarr` существует в ДВУХ разных местах
|
||||
|
||||
Это стоило ошибочного вывода «файлы не удалились».
|
||||
|
||||
```
|
||||
СНАРУЖИ хоста: /media/movies-radarr -> SD-ПУСТЫШКА (0 файлов!)
|
||||
это /dev/mmcblk0p2, корень SD
|
||||
ВНУТРИ Radarr: /srv/dev-disk-by-uuid-49e8f586-…/media/movies-radarr -> РЕАЛЬНЫЕ файлы
|
||||
(17 каталогов) это ОТДЕЛЬНЫЙ диск 1.8T
|
||||
```
|
||||
|
||||
**Radarr монтирует ДРУГОЙ диск**, не тот, где живёт lampac:
|
||||
|
||||
```
|
||||
uuid 49e8f586-3839-4c5d-a1e1-58bfc3579ade → медиа (movies-radarr, series-sonarr, downloads)
|
||||
uuid 6194539b-03e0-4f33-986b-4da09834e82f → lampac, docker, obsidian
|
||||
Оба — sda1 1.8T, но это РАЗНЫЕ разделы/диски
|
||||
```
|
||||
|
||||
Правильная проверка маунтов:
|
||||
```bash
|
||||
docker inspect radarr --format '{{range .Mounts}}{{.Source}} -> {{.Destination}}{{println}}{{end}}'
|
||||
# /srv/dev-disk-by-uuid-49e8f586-…/media -> /media
|
||||
# /srv/dev-disk-by-uuid-49e8f586-…/media/downloads -> /downloads
|
||||
# /srv/dev-disk-by-uuid-6194539b-…/docker/radarr/config -> /config
|
||||
```
|
||||
|
||||
🔴 **`find` по наружному пути ВРЁТ** — он смотрит на SD-пустышку. Всегда
|
||||
сверяться с `docker inspect` маунтами.
|
||||
|
||||
### 🔴 ПИТФОЛЛ: `setsid nohup` НЕ спасает фоновый процесс от обрыва ssh
|
||||
|
||||
Прогон генератора каталога умирал дважды на `client_loop: send disconnect:
|
||||
Broken pipe` (на 100/366 позиций). `setsid nohup ... &` **не помогает** —
|
||||
ssh забирает группу процессов при разрыве.
|
||||
|
||||
**Рабочее решение — `systemd-run`:**
|
||||
```bash
|
||||
systemd-run --user --unit=gen-watchlist --scope /tmp/gen-runner.sh
|
||||
# Running scope as unit: gen-watchlist.scope
|
||||
```
|
||||
Процесс отвязан от сессии, доживает до конца даже при обрыве ssh.
|
||||
|
||||
### 🔴 ПИТФОЛЛ: проверять состояние, а не полагаться на «удалил»
|
||||
|
||||
После удаления первой проверкой я смотрел `/media/movies-radarr` (SD-пустышку),
|
||||
увидел 0 файлов и решил, что всё удалено — **случайно угадал**. Правильная
|
||||
проверка — по реальному маунту `49e8f586`, там `movie-radarr: 29 -> 17`.
|
||||
|
||||
## 🔴 Кэш резолва переехал с SD-карты на HDD (2026-09-22)
|
||||
|
||||
Alex: *«какого хуя что-то лежит на sd карте блядь?!»*
|
||||
@@ -160,7 +263,7 @@ DETAILS_FILE = _cache_dir() / ".lampac_tmdb_details.json"
|
||||
сначала решил, что копирование не сработало.
|
||||
|
||||
**Проверено по времени правки файла:** кэш на HDD обновляется прогоном,
|
||||
на SD застыл.
|
||||
на SD застыл. Копия на SD удалена — см. следующий раздел.
|
||||
|
||||
### ✅ Копия кэша с SD УДАЛЕНА (2026-09-22, 18:42)
|
||||
|
||||
@@ -185,8 +288,12 @@ SD-путь /home/kraken/.lampac_tmdb_cache.json существует: False
|
||||
|
||||
## 📋 Инвентаризация авто-закачек в Radarr/Sonarr (2026-09-22)
|
||||
|
||||
> ✅ **ВЫПОЛНЕНО: 16 фильмов Radarr удалены вместе с файлами** (см. ниже
|
||||
> «Удаление»). Sonarr не тронут — авто-закачек там не было.
|
||||
|
||||
Полный дамп: `/tmp/radarr-sonarr-dump-20260922-184351/` (`radarr-movies.json`,
|
||||
`sonarr-series.json`) — **единственный откат**, Radarr корзины не имеет.
|
||||
Снимок состояния перед удалением: `/tmp/radarr-delete-snapshot.json`.
|
||||
|
||||
### Доступ к API (креды из `/srv/...6194539b.../watchlist-sync/.env`)
|
||||
|
||||
|
||||
Reference in new issue
Block a user