[2026-09-27] eagle: personal/plans/music-artist-albumartist-repair.md personal/tech/music-tags-repair-truenas.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-27 20:54:25 +06:00
1 parent c8778307e9
commit 204b254cc5
2 files changed
+142 -15

No files matched your search

+30 -15
View File
@@ -25,11 +25,12 @@ related:
> ## 🔴 АКТУАЛЬНОЕ СОСТОЯНИЕ (2026-09-27, сессия 29-ОКТИ) — ЧИТАЙ ЭТО ПЕРВЫМ
>
> ✅ **КАНОННЫЙ ДИФФ v3 СОБРАН:** `~/Downloads/music-tags/DIFF-base-vs-applyplan-v3.csv`
> — **1062 записи** (710 ПАПКА + 352 ТРЕК), из них `genre` 911 · `track` 118 · `album` 27 ·
> `albumartist` 6. База 7861 ↔ план 7861, сопоставлено 7861, **не найдено 0**.
> Источник: `/tmp/apply-plan-v3.csv` (7861, собран из `new_*` `APPLY-PLAN.csv` + правило
> корня; **31 правка**, лог с колонкой `reason` — `~/Downloads/music-tags/APPLY-PLAN-v3-changes.csv`).
> ✅ **КАНОННЫЙ ДИФФ v3 СОБРАН И ЗАКРЫТ:** `~/Downloads/music-tags/DIFF-base-vs-applyplan-v3.csv`
> — **945 записей**, `md5 a89d7b56ce65835c361395c5b7d1064d`. Поля: `album` 28 ·
> `albumartist` 6 · `genre` 911. `track` — **0** (весь блок убран как шум, см. ниже).
> База 7861 ↔ план 7861, сопоставлено 7861, **не найдено 0** (фильтр `path NOT LIKE 'backup%'`).
> Источник: `/tmp/apply-plan-v3.csv` (7861, из `new_*` `APPLY-PLAN.csv` + правило корня;
> **31 правка**, лог с колонкой `reason` — `~/Downloads/music-tags/APPLY-PLAN-v3-changes.csv`).
> Сборщик: `/tmp/build_canon_diff_v3.py`.
>
> 🔴 **ДЕФЕКТ СОРТИРОВКИ (найден Alex: «почему сортировки по филду нету в диффе») — ИСПРАВЛЕН.**
@@ -40,22 +41,36 @@ related:
> `sorted({...})`, НЕ список в порядке объявления.** Разбор —
> [[personal/plans/music-artist-albumartist-repair]] § СОРТИРОВКА ПО `field` — АЛФАВИТНАЯ.
>
> ⚠️ **ОТКРЫТО (2 дефекта верификации v3-диффа):**
> 1. `!Детские/Из чего же.mp3` — `album` в БД `[Unknown Album]` → `new` в диффе **пусто**
> (потеря значения, не правило корня).
> 2. `Sbornik_Novij_Rok` — сборник, `genre` не одно значение (`Folk/Pop/Rock/Punk/Rap`) →
> N ПАПКА-строк по одному полю. Схлопывание `(folder, field, new)` на сборниках
> разваливается; нужно решение Alex.
> 🔴 **ШУМ `track N → N/M` ВЫЧИЩЕН — 118 строк.** Подтверждено из БД: `track_number`
> хранится **ЦЕЛЫМ** (`0` 1581 · `1` 510 · … · `24` 22), без `/M` и без ведущих нулей →
> `6 → 6/14` и `8 → 08` **значение НЕ меняют**. Скрипты `/tmp/drop_track_noise.py` (+ добор).
> ⚠️ **ПИТФОЛЛ СЧЁТА:** `awk -F',' | grep -c "/"` дал **33** вместо **117** — `awk` разваливает
> пути с запятыми в кавычках. Считать CSV-парсером. **РЕШЕНИЕ ALEX: `N/M` в треках НЕ ПРАВИМ.**
>
> ✅ **ВЕРИФИЦИРОВАН «короткий список опечаток» — все 6 правок УЖЕ в `APPLY-PLAN.csv`**
> (Простоквашено 0 · Агата кристи 0 · 11 Track 11 0 · IM-склейка 0 · `Radio - ` 0 ·
> Бард - Авангард 0 в `new_*`). v3-генератор их наследует автоматически, как и задумано
> архитектурой «от `new_*`, не с нуля». Скрипт проверки: `/tmp/check_shortlist_full.py`.
> ✅ **ОБА ДЕФЕКТА ВЕРИФИКАЦИИ ЗАКРЫТЫ** (`/tmp/fix_v3_typos.py`, бэкап
> `/tmp/apply-plan-v3.csv.bak-20260927-204950`; `APPLY-PLAN.csv` — канон/RC — **НЕ ТРОНУТ**):
> 1. `!Детские/Из чего же.mp3` — битый `cur_album` (`Íåèçâåñòíîå íàçâàíèå`, CP1251) обнулён
> генератором; подстановка ушла в `new_albumartist`, а `album` остался пуст →
> **`[Unknown Album] → Детские`**.
> 2. `!A Not sorted/…/Андервуд` (опечатка в имени папки) протекла в `album` →
> **`Андервуд → Ундервуд`** (доказательство — `cur_artist` того же файла).
>
> ✅ **«КОРОТКИЙ СПИСОК ОПЕЧАТОК» — все 6 правок УЖЕ в `APPLY-PLAN.csv`** (Простоквашено 0 ·
> Агата кристи 0 · 11 Track 11 0 · IM-склейка 0 · `Radio - ` 0 · Бард - Авангард 0 в `new_*`).
> v3-генератор их наследует автоматически. Скрипт: `/tmp/check_shortlist_full.py`.
> 🔑 **ПИТФОЛЛ: `grep` по ВСЕМУ CSV даёт ложную тревогу «правки откатились»** — опечатки
> живут в колонке `title` (название песни). Проверять ТОЛЬКО по колонке через CSV-парсер.
> `Муммий` в `new_*` = 0 (в тегах `Мумий Тролль`), в `path` = 88 (имя папки на диске;
> **продукт не трогается — переименование папок не входило в задачу**).
>
> 🔴 **РЕШЕНИЕ ALEX: ПАПКУ `Разное` НЕ РАЗГРЕБАЕМ.** Класс 76 файлов (папки-мусорки внутри
> артиста: `Высоцкий/Разное` 44 · `Пилот/Избранное` 14 · `ДДТ/2003 - песни` 10 ·
> `Rammstein/misc` 3 и др.) — **ПЛАН, а не дефект**: папка-мусорка намеренно становится
> альбомом-мусоркой. **НЕ «улучшать»**, детектор `/tmp/diag_root_junk.py` ловит их ложно.
>
> ⏳ **ОСТАЁТСЯ:** `Sbornik_Novij_Rok` — сборник, `genre` не одно значение
> (`Folk/Pop/Rock/Punk/Rap`) → N ПАПКА-строк по одному полю. Решения Alex нет.
>
> Подробно — [[personal/plans/music-artist-albumartist-repair]] § СЕССИЯ 29-ОКТИ / 29-СЕПТИ.
> ## 🗄️ ПРЕДЫДУЩЕЕ СОСТОЯНИЕ (сессия 29-секси) — АРХИВ