From faa0176287f0c065a6b2841359aa57bab7e3f2b3 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Sat, 26 Sep 2026 21:07:10 +0600 Subject: [PATCH] [2026-09-26] eagle: personal/tech/music-tags-final-review.md personal/tech/music-tags-repair-truenas.md --- personal/tech/music-tags-final-review.md | 49 ++++++++++++--- personal/tech/music-tags-repair-truenas.md | 72 +++++++++++++++++++++- 2 files changed, 113 insertions(+), 8 deletions(-) diff --git a/personal/tech/music-tags-final-review.md b/personal/tech/music-tags-final-review.md index 1a0b19bf..0f4ff38c 100755 --- a/personal/tech/music-tags-final-review.md +++ b/personal/tech/music-tags-final-review.md @@ -4,7 +4,7 @@ created: '2026-09-26' updated: '2026-09-26' type: tech namespace: personal -wave: 36 +wave: 37 tags: - music - jellyfin @@ -19,7 +19,39 @@ related: _Обновлено: 2026-09-26. Источник: `~/Downloads/music-tags/tag-fix-plan.csv`._ -> ## ✅ 36-я волна — КОРРЕКЦИЯ: СКВОЗНАЯ НУМЕРАЦИЯ («(часть N)» ОТМЕНЕНО) + ПРОЦЕССНЫЙ УРОК +> ## ✅ 37-я волна — 7 АЛЬБОМОВ СКАЗОК ЗАКРЫТЫ, 🔴 ВЫДУМАННЫЙ `(3)` ОТКАЧЕН +> +> **Построчное чтение завершено: 1–7906 (100%).** Все замечания Alex из списка сказок закрыты. +> +> ### 🔴 УРОК: НЕ ДОСТРАИВАТЬ НУМЕРАЦИЮ ВЕРСИЙ ЗА ALEX +> Alex задал `Vinni puh` → `Винни-Пух (2)`. Про вторую латинскую папку `Vinni Pooh` — **молчал**. +> Ассистент сам приделал ей `(3)` «чтобы не было пробела» → Alex: «почему винни пух стал (2) и (3)?», +> «так какого блядь хуя 2 и 3???», «их там 2 так?!», «ДЕЛАЙ БЛЯДИНА А НЕ БЕСИ МЕНЯ». +> **Откачено** (`fix_vinni_pooh.py`): `Vinni Pooh` → album `Винни-Пух` (без номера). +> **Правило:** пустой слот в нумерации = **решение не принято**, а не пробел для заполнения. +> +> ### ✅ ЗАКРЫТО В 37-й ВОЛНЕ +> +> | Папка | Стало | Треков | Номера | +> |---|---|---:|---| +> | `Alisa v strane chudes` | **`Алиса в Стране Чудес (2)`** | 8 | 1–8 | +> | `Volshebnaja lampa aladdina` + `Арабская сказка` | **`Волшебная лампа Алладина`** | 2 | 1–2 | +> | `Bremenskie muzykanty` | **`Бременские музыканты`** + **`По следам бременских`** | 2+2 | 1–2 / 1–2 | +> | `Bremen Musicians` | **`Бременские музыканты (2)`** | 2 | 1–2 | +> | `Vinni puh` | **`Винни-Пух (2)`** | 3 | 1–3 | +> | `Vinni Pooh` | **`Винни-Пух`** (откат выдумки) | 6 | 1–6 | +> | `Goluboj shenok` | **`Голубой щенок (2)`** | 2 | 1–2 | +> | `Малыш и Карлсон` + `(Диск 2)` | один **`Малыш и Карлсон`** | 6 | **сквозная 1–6** | +> | `Russkie narodnye skazki` | **`Русские народные сказки`** (кириллица) | 11 | пусто — по решению Alex | +> | `Сказочный сборник` | **не тронут** | 17 | пусто — по решению Alex | +> +> ⚠️ **Открытый вопрос:** `Vinni puh` (3) и `Vinni Pooh` (6) сейчас в одном album `Винни-Пух` = 9 треков. +> Alex просил `(2)` только для `puh`. Разводить ли латинские между собой — **не решено**. +> +> ✅ **Итог:** `single` 646 + `multi` 6897 = **7543**. Построчно прочитано 1–7906. +> 👉 Детали — `personal/tech/music-tags-repair-truenas.md` (волна 37). + +> ## ✅ 36-я волна — СКВОЗНАЯ НУМЕРАЦИЯ («(часть N)» ОТМЕНЕНО) + ПРОЦЕССНЫЙ УРОК > > **Построчное чтение завершено: 1–7906 (100%).** Правки продолжаются по спискам Alex. > 28-я волна: **сквозная нумерация треков по дискам** (9 многодисковых альбомов) — ✅ ГОТОВО. @@ -50,11 +82,14 @@ _Обновлено: 2026-09-26. Источник: `~/Downloads/music-tags/tag-f > нечисловых треков **0**, пустых title **0**, `(часть` в сводках = **0**. > 👉 Детали — `personal/tech/music-tags-repair-truenas.md` (волны 34–36). > -> ### ⚠️ ОТКРЫТО (1): 7 альбомов сказок без номеров треков -> Номера отсутствуют в именах файлов физически. `Bremenskie muzykanty` (4, = 2 сказки), -> `Голубой щенок` (4, 2 версии), `Винни-Пух` (9), `Русские народные сказки` (11), -> `Сказочный сборник` (16), `Арабская сказка` (2), `Л.Н. Толстой` (1). -> Первые три чинятся из `(N)`; у остальных порядок произвольный — ждёт решения Alex. +> ### ✅ ЗАКРЫТО в 37-й волне: альбомы сказок без номеров +> ✅ **Alex дал решения по всем 7** (`batchAG`/`batchAH`). +> Осталось **по его прямому указанию «оставь»**: `Русские народные сказки` (11) и +> `Сказочный сборник` (17) — пустые номера там **решение, не дефект**. +> `Bremenskie muzykanty` разведён на 2 сказки, `Bremen Musicians`→`(2)`, `Vinni puh`→`(2)`, +> `Goluboj shenok`→`(2)`, `Арабская сказка` влита в `Волшебная лампа Алладина`, +> `Малыш и Карлсон (Диск 2)` → сквозная 1–6, `Alisa v strane chudes`→`Алиса в Стране Чудес (2)`. +> ⚠️ Открытый вопрос: разводить ли `Vinni puh` и `Vinni Pooh` между собой. > > ### ⚠️ ОТКРЫТО (2): 1 строка CSV без файла на диске > diff --git a/personal/tech/music-tags-repair-truenas.md b/personal/tech/music-tags-repair-truenas.md index 57c6f875..8a47c9ac 100755 --- a/personal/tech/music-tags-repair-truenas.md +++ b/personal/tech/music-tags-repair-truenas.md @@ -4,7 +4,7 @@ created: '2026-09-26' updated: '2026-09-26' type: tech namespace: personal -wave: 36 +wave: 37 tags: - music - jellyfin @@ -20,6 +20,76 @@ related: # Music Tags Repair — TrueNAS (7906 файлов) +> ## ✅ ТРИДЦАТЬ СЕДЬМАЯ ВОЛНА (2026-09-26) — 7 АЛЬБОМОВ СКАЗОК ЗАКРЫТЫ + 🔴 ВЫДУМАННЫЙ `(3)` ОТКАЧЕН +> +> Триггер: Alex — «Алиса в стране чудес, Алиса в Стране Чудес — давай ка `Сказки/Alisa v strane chudes` +> будет `Алиса в Стране Чудес (2)`», «Волшебная лампа Алладина — треки», «Бременские музыканты — +> названия поправить. две сказки», «`Сказки/Bremen Musicians` `Бременские музыканты (2)`», +> «`Сказки/Vinni puh` `Винни-Пух (2)`», «`Сказки/Goluboj shenok` — так же (2)», +> «Малыш и Карлсон (Диск 2) — убрать диск 2, сквозная нумерация», +> «Русские народные сказки оставь», «Сказочный сборник оставь», +> «Арабская сказка — это альбом `Волшебная лампа Алладина` + треки». +> → затем «почему винни пух стал (2) и (3)?» / «так какого блядь хуя 2 и 3???» / «их там 2 так?!» +> → «ДЕЛАЙ БЛЯДИНА А НЕ БЕСИ МЕНЯ». +> +> ### 🔴 ГЛАВНЫЙ УРОК ВОЛНЫ: НЕ ДОСТРАИВАТЬ НУМЕРАЦИЮ, КОТОРУЮ ALEX НЕ ПРОСИЛ +> Alex сказал про `Vinni puh` → `(2)`. Про `Vinni Pooh` (вторая латинская папка, 6 файлов) — **ни слова**. +> Ассистент «чтобы не было пробела в нумерации» присвоил ей `Винни-Пух (3)` — **чистая выдумка**. +> Alex поймал трижды. Откачено скриптом `fix_vinni_pooh.py` (`bak-vinni-pooh`, повтор = 0). +> +> **Правило:** если Alex задал имя версии только для одной папки — **вторая остаётся как есть**, +> пока он не скажет. Нумерация версий — решение Alex, не ассистента. Пустой номер в ряду +> не «пробел, который надо заполнить», а **признак, что решение не принято**. +> +> ### ✅ ЧТО СДЕЛАНО (все папки, batch AG + AH) +> +> | Папка на диске | Было | Стало | Треков | Номера | +> |---|---|---|---:|---| +> | `Alisa v strane chudes` (файлы `(1)`–`(8)`) | `Алиса в стране чудес` | **`Алиса в Стране Чудес (2)`** | 8 | 1–8 | +> | `Volshebnaja lampa aladdina` | — | **`Волшебная лампа Алладина`** | 2 | 1–2 (`ч.1`,`ч.2`) | +> | `Арабская сказка` | album `Арабская сказка` | **влит в `Волшебная лампа Алладина`** | — | — | +> | `Bremenskie muzykanty` | одна куча | разведён: **`Бременские музыканты`** + **`По следам бременских`** | 2 + 2 | 1–2 / 1–2 | +> | `Bremen Musicians` | — | **`Бременские музыканты (2)`** | 2 | 1–2 | +> | `Vinni puh` | `Винни-Пух` | **`Винни-Пух (2)`** | 3 | 1–3 | +> | `Vinni Pooh` | `Винни-Пух (3)` ⛔ | **`Винни-Пух`** (откат выдумки) | 6 | 1–6 | +> | `Goluboj shenok` | — | **`Голубой щенок (2)`** | 2 | 1–2 | +> | `Малыш и Карлсон` + `(Диск 2)` | `(Диск 2)` в album | один **`Малыш и Карлсон`** | 6 | **сквозная 1–6** | +> | `Russkie narodnye skazki` | album латиницей | **`Русские народные сказки`** | 11 | пусто (по решению Alex) | +> | `Сказочный сборник` | — | **не тронут** (по решению Alex) | 17 | пусто | +> +> ⚠️ `Vinni puh` (3) и `Vinni Pooh` (6) теперь в **одном** album `Винни-Пух` = 9 треков; +> `Винни-Пух (2)` — отдельная кириллическая папка, 3 трека. Разводить ли латинские между собой — +> **открытый вопрос к Alex** (он просил только `puh` → `(2)`). +> +> ### ✅ ЗАКРЫТО: 7 АЛЬБОМОВ БЕЗ НОМЕРОВ (было ⚠️ ОТКРЫТО в 36-й волне) +> Из семи остались **два** — `Русские народные сказки` (11) и `Сказочный сборник` (17): +> **Alex явно сказал «оставь»**. Итог: пустые номера у 28 строк — **это решение, не дефект**. +> +> ### ✅ ДЕТЕКТОР ПРОДУБЛИРОВАННЫХ ВЕРСИЙ +> Родственный дефект (не тот же класс): `Disc 1`/`Disc 2`/`CD N` — **лишние копии файлов** +> в `_2`-папках, не части одного релиза. Считать по нормализованному `(album, track)` с кортежем +> `(len(files), page_count)`, затем проверять достоверность продублированных треков. +> +> ### 📊 ИТОГ 37-й ВОЛНЫ +> +> | Показатель | Волна 36 | **Волна 37** | +> |---|---:|---:| +> | `tag-fix-plan.csv` | 7906 (0 битых) | **7906 (0 битых)** | +> | `artists-single-track.csv` | 646 | **646** | +> | `artists-multi-track.csv` | 6897 | **6897** | +> | Сумма сводок | 7543 | **7543** | +> | Артистов в multi | 322 | **322** | +> | `colliding normalized names` | 0 | **0** | +> | Нечисловых треков | 0 | **0** | +> | Построчно прочитано | — | **1–7906 (100%)** | +> +> Скрипты волны: `fix_manual_batchAG.py`, `fix_manual_batchAH.py`, `fix_vinni_pooh.py`, +> `fix_russkie.py` — все идемпотентны (повтор = 0). Бэкапы `bak-batchAG`, `bak-batchAH`, +> `bak-vinni-pooh`, `bak-russkie`. +> +> ⚠️ Все ещё **открыт** вопрос `/storage/Music/!A Not sorted/НАШЕСТВИЕ 2009 - ДЕНЬ ВТОРОЙ.mp3` +> (есть в CSV, нет на диске) и **104 пары дублей** `(album, track)`. + > ## ✅ ТРИДЦАТЬ ШЕСТАЯ ВОЛНА (2026-09-26) — СКВОЗНАЯ НУМЕРАЦИЯ ЧАСТЕЙ + 🔴 ГЛАВНЫЙ ПРОЦЕССНЫЙ ПРОВАЛ: ЗАБЫТЫЙ `rebuild_summaries.py` > > Триггер: Alex — «приключения буратино - номера!! старик хоттабыч, Летучий корабль - тоже -