[2026-09-22] eagle: family/documents/movies-watchlist.md personal/plans/kraken-media-inventory-cleanup.md personal/tech/lampac-deployment.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-22 20:46:48 +06:00
1 parent 5b0147f53d
commit 159a805ce9
3 files changed
+100 -15

No files matched your search

+8 -2
View File
@@ -310,7 +310,7 @@ related:
- [ ] Рок-н-ролла
- [ ] ⬇️ Гладиатор
- [ ] ⬇️Афера Томаса Крауна
- [ ] Даун Хаус
- [x] Даун Хаус
- [ ] Айболит 66
- [ ] 300
- [ ] Одиссей
@@ -449,6 +449,8 @@ related:
- [ ] ⬇️All the president's men
- [ ] Butch Cassidy
- [ ] 🧟‍♀️ 28 дней спустя
- [ ] against the ice 2022
- [ ] Race for Glory Audi vs Lancia
- [x] A clockwork Orange
- [ ] Left behind
- Оставленные (2014) ★4.3
@@ -528,7 +530,7 @@ related:
- [x] Объяснялкины
- [x] Killers of the flower moon
- [x] Creator
- [x] Кибердеревня
- [ ] Кибердеревня
- [x] Mario
- [x] Шерлок Холмс СССР
- [x] Призраки в Венеции
@@ -651,6 +653,10 @@ related:
- [ ] Despicable me 4
- [ ] Inside Out 2
- [ ] ⬇️ Le Grand Mechant Renard et Autres Contes
- [ ] lightyear 2022
- [ ] Corpse Bride 2005
- [ ] inside out 2015
- [ ] Elemental 2023
## Аниме
- [ ] Акира
@@ -22,15 +22,47 @@ updated: '2026-09-22'
> Составлен 2026-09-22. Alex: «вообще все. нужна полная инвентаризация что можно сносить, а что нельзя».
> Итог: **802 файла, 233 позиции, 1 236 ГБ.** В watchlist (Lampa покажет) — 29 позиций / 456 ГБ.
> Не в watchlist — 204 позиции / 780 ГБ. **Точных дублей — 46 групп, зря занято 89,2 ГБ.**
>
> 🔴 **Цифры watchlist-матча ЗАНИЖЕНЫ — требует пересчёта.** Alex поймал 4 позиции,
> ошибочно записанные в «не в watchlist», хотя они В watchlist (см. раздел «Матч»).
## 🔴 Ошибка матча (найдена Alex'ом 2026-09-22)
Первый прогон сравнивал имя файла **только с русским `name`** watchlist-позиции.
Файлы, названные по **оригиналу**, не находились. Промахи:
| Файл на диске | ГБ | В watchlist | Русское `name` | TMDB |
|---|---|---|---|---|
| `Bram.Stoker's Dracula.1992` | 18.04 | ✅ | «Дракула» | 6114 |
| `The.Crow.1994` | 17.45 | ✅ | «Ворон» | 9495 |
| `despicable.me.4.2024` | 2.18 | ✅ | «Гадкий я 4» | 519182 |
| `Вивариум_2019_BDRip` | 1.46 | ✅ | «Вивариум» | 458305 |
**27,3 ГБ записано как «не в watchlist» ошибочно — эти 4 сносить НЕЛЬЗЯ.**
Правильно матчить против **обоих** полей (`name` И `original`) + **год ±1**.
Год обязателен: в watchlist «Дракула» стоит трижды (1992 / 2014 / 2025), а
`inside out (2015)` ложно матчится с «Головоломка 2» (2024) — разные фильмы.
⚠️ `Oldboy` (28.65 ГБ) и `Project Hail Mary` (28.12 ГБ) — **проверены отдельно,
их в watchlist правда НЕТ** (0 совпадений по обоим запросам в `watchlist.json`).
Они в Radarr, но в список не занесены. Это не ошибка матча.
Полный список перепроверки: `/Users/admin/kraken-missed-matches.json`.
Скрипты: `/tmp/kraken_fix2.py` (фразовое равенство по `original` + год),
`/tmp/kraken_why.py` (проверка конкретных тайтлов).
## Метод
1. `find` по `/srv/...6194539b.../media` → 802 видеофайла с размерами.
2. Группировка в «позиции»: папка первого уровня + подпапка; файлы в корне — каждая своя позиция;
`downloads/*` — по полному пути папки-раздачи (сезонные паки).
3. Сверка с `watchlist.json` (376 позиций) — **строгое равенство** нормализованных названий
(убраны год, качество, релиз-группа, расширение, транслит-шум). Подстрочный матч давал ложные
срабатывания: единственный файл 1.46 ГБ «Вивариум» склеивался в группу на 135 ГБ.
3. Сверка с `watchlist.json` (376 позиций). Первый прогон — строгое равенство по русскому
`name` (убраны год, качество, релиз-группа, расширение, транслит-шум). Подстрочный матч
давал ложные срабатывания: единственный файл 1.46 ГБ «Вивариум» склеивался в группу на 135 ГБ.
⚠️ **Строгое равенство по `name` тоже неполно** — пропускает файлы, названные по оригиналу.
Проверять против `name` И `original`, со сверкой года. Детали и промахи — в разделе
«Ошибка матча» выше.
4. TMDB-ID брался из `href` вида `https://www.themoviedb.org/movie/NNN` — в `watchlist.json`
его отдельным полем нет.
@@ -114,6 +146,11 @@ updated: '2026-09-22'
| Death.on.the.Nile.2022.HDRip | `movies` | 1 | 1.46 | 505026 | Смерть на Ниле |
| гладиатор | `movies` | 1 | 0.22 | 98 | Гладиатор |
🔴 **Список НЕПОЛНЫЙ — минимум 4 позиции пропущены матчем** (перечислены в разделе
«Ошибка матча»): `Bram.Stoker's Dracula.1992` (18.04), `The.Crow.1994` (17.45),
`despicable.me.4.2024` (2.18), `Вивариум_2019` (1.46). Итого реально в watchlist
**≥33 позиции / ≥483 ГБ**. После пересчёта таблицу заменить.
⚠️ **«смешарики webrip 1080p»** — 210 файлов в одной папке. Это сборник; совпадения с watchlist
(TMDB 107/402) — артефакт нормализации по отдельным файлам, не реальный матч.
Разобрать отдельно, если позиция пойдёт под нож.
@@ -148,8 +185,8 @@ updated: '2026-09-22'
| маленькие гиганты 2014 | `documentaries` | 20.57 | |
| кот в сапогах 2011 | `cartoons` | 19.92 | |
| the secret life of elephants | `documentaries-series` | 19.90 | доксериал |
| Bram.Stoker's Dracula.1992 | `movies` | 18.04 | |
| The.Crow.1994 | `movies` | 17.45 | |
| ~~Bram.Stoker's Dracula.1992~~ | `movies` | 18.04 | 🔴 **В WATCHLIST** — «Дракула» 1992, TMDB 6114 |
| ~~The.Crow.1994~~ | `movies` | 17.45 | 🔴 **В WATCHLIST** — «Ворон», TMDB 9495 |
| гиганты моря 2011 | `documentaries-series` | 16.40 | доксериал |
| tiger spy in the jungle s01 | `documentaries-series` | 16.30 | доксериал |
| it was just an accident | `movies` | 12.78 | |
@@ -179,9 +216,10 @@ updated: '2026-09-22'
- [x] Шаг 1 — выгрузка списка (802 файла)
- [x] Шаг 2 — группировка (233 позиции)
- [x] Шаг 3 — сверка с watchlist (29 в списке / 204 нет)
- [x] Шаг 3 — сверка с watchlist (29 в списке / 204 нет) — ⚠️ **ЦИФРА НЕВЕРНА, см. «Ошибка матча»**
- [x] Шаг 4 — `missing.json`: **0 совпадений** среди файлов (те 30 позиций — рукописные заметки)
- [x] Шаг 5 — таблица (этот документ)
- [ ] Шаг 5b — **пересчёт матча** по правилу `name` + `original` + год ±1 (ждёт решения Alex по допуску года)
- [ ] Шаг 6 — удаление (ждёт решения)
## Документация разложена
+48 -7
View File
@@ -3328,24 +3328,56 @@ if top == "downloads" and len(dirs) >= 3 and dirs[0] == "complete":
return (top, dirs[0]) if dirs else (top, r["file"])
```
### 🔴 Матч с watchlist — только СТРОГОЕ равенство
### 🔴 Матч с watchlist — строгое равенство НЕДОСТАТОЧНО (исправлено 2026-09-22)
Подстрочный матч (`c in e["name"]`) даёт мусор: короткие нормализованные строки
вроде `гладиатор` совпадают со множеством позиций, счётчик «в watchlist» раздувается
до неверного. Рабочее правило:
до неверного. Порядок эффекта: наивный подстрочный матч → 42 позиции / 811 ГБ;
строгий → 29 позиций / 456 ГБ.
```python
if c == e["n"] or (e["o"] and c == e["o"]): # точное равенство, len(c) >= 4
⚠️ **Но и строгое равенство по русскому `name` — тоже неверно, и это отдельная ошибка.**
Первый прогон сравнивал имя файла только с русским `name` watchlist-позиции. Файлы,
названные по **оригиналу**, не находились. Alex поймал это на трёх тайтлах:
| Файл на диске | В watchlist | Русское `name` |
|---|---|---|
| `Bram.Stoker's Dracula.1992` | ✅ TMDB 6114 | «Дракула» |
| `The.Crow.1994` | ✅ TMDB 9495 | «Ворон» |
| `despicable.me.4.2024` | ✅ TMDB 519182 | «Гадкий я 4» |
| `Вивариум_2019_BDRip` | ✅ TMDB 458305 | «Вивариум» |
🔴 **Матчить надо против ОБОИХ полей — `name` И `original` — и с проверкой года.**
Структура позиции watchlist:
```json
{"name": "Ворон", "original": "The Crow", "year": 1994,
"href": "https://www.themoviedb.org/movie/9495"}
```
Порядок эффекта: наивный подстрочный матч → 42 позиции / 811 ГБ «в watchlist»;
строгий → 29 позиций / 456 ГБ. Разница — целиком ложные срабатывания.
Рабочее правило: извлечь латинскую фразу из имени файла (`latin_phrase` — длиннейший
прогон `[a-z0-9']`-слов после нормализации) и сравнить с `original`; отдельно сравнить
нормализованное имя с `name`. **Обязательно сверять год ±1** — иначе `inside out (2015)`
ложно матчится с «Головоломка 2» (2024): разные фильмы. В watchlist один и тот же
русский `name` может стоять у трёх разных фильмов («Дракула» = 1992 / 2014 / 2025) —
год единственный различитель.
⚠️ **Токенный матч по пересечению слов тоже гадит** и как метод не годится:
«пингвины. шпион в толпе» → «Шпион» (Spy, 2015), «the secret life of elephants» →
«Список заветных желаний». Использовать только фразовое равенство + год.
**Нормализация** (обе стороны сравнения, обязательна): снять расширение → `[...]` → `(...)` →
год → не-буквы → шум-слова (качество, релиз-группа, `web-dl`, `bdrip`, `x264`, `megapeer`,
`bluebird`, `hdrezka`, транслит-хвосты) → сжать пробелы. Для сериалов дополнительно
`strip_ep`: `S01E04`, `N серия`, `N выпуск`, `сезон N`.
⚠️ **Год из имени файла снимается при нормализации** — его надо вытаскивать
ОТДЕЛЬНО (`year_of()`) из исходной строки, иначе сверять нечего.
🔴 **Цифры «29 / 456 ГБ» в этом документе и в плане ЗАНИЖЕНЫ** — матч по одному
русскому `name` пропустил минимум 4 позиции (27.3 ГБ), которые на самом деле в
watchlist. Пересчёт по правилу «name + original + год ±1» — **следующий шаг**, ждёт
от Alex решения по допуску года.
🔴 **TMDB-ID в `watchlist.json` отдельным полем НЕ лежит.** Он в `href`:
`https://www.themoviedb.org/movie/424781` → `re.search(r"/(\d{2,9})/?$", href)`.
Попытка читать `item["tmdb_id"]` даёт `null` по всем 376 позициям.
@@ -3379,9 +3411,18 @@ if c == e["n"] or (e["o"] and c == e["o"]): # точное равенство,
1. **`downloads/complete` (78.6 ГБ)** — нулевой риск, всё есть в библиотеке.
2. **Дубли `Life Is Beautiful`** — оставить одну из трёх копий.
3. **`documentaries*` вне watchlist (307 ГБ)** — доксериалы, нужен просмотр глазами.
4. **Всё не из watchlist (780 ГБ)** — включает `Oldboy`, `Project Hail Mary`, `F1`,
4. **Всё не из watchlist (780 ГБ)** — включает `Oldboy`, `Project Hail Mary`,
`The Cyberfarm`, `Brassic` — возможно нужное.
⚠️ **Список «не в watchlist» требует пересчёта перед удалением.** Матч по одному
русскому `name` пропустил минимум 4 позиции (27.3 ГБ), которые в watchlist ЕСТЬ:
`Bram.Stoker's Dracula.1992` (18.04 ГБ), `The.Crow.1994` (17.45 ГБ),
`despicable.me.4.2024` (2.18 ГБ), `Вивариум_2019` (1.46 ГБ).
**Эти 4 — сносить НЕЛЬЗЯ**, в текущем списке они помечены ошибочно.
`Oldboy` и `Project Hail Mary` проверены отдельно поиском по `watchlist.json` —
их там правда нет (0 совпадений по «Oldboy», 0 по «Hail Mary»); они в Radarr,
но не в watchlist.
## ⏳ Осталось добить (2026-09-22)
### 0. 🔴 Удаление медиа на Кра́кене — ждёт выбора Alex