[2026-09-27] eagle: personal/plans/music-artist-albumartist-repair.md personal/tech/music-tags-repair-truenas.md
This commit is contained in:
1 parent
eac340006e
commit
cb60ba12f9
2 files changed
+263
-5
No files matched your search
@@ -23,7 +23,33 @@ related:
|
||||
|
||||
# Music Tags Repair — TrueNAS (7906 → 7905 файлов)
|
||||
|
||||
> ## 🔴 АКТУАЛЬНОЕ СОСТОЯНИЕ (2026-09-27, сессия 28) — ЧИТАЙ ЭТО ПЕРВЫМ
|
||||
> ## 🔴 АКТУАЛЬНОЕ СОСТОЯНИЕ (2026-09-27, сессия 29-секси) — ЧИТАЙ ЭТО ПЕРВЫМ
|
||||
>
|
||||
> 🔴 **ГЕНЕРАТОР ПЛАНА НАЙДЕН И ПОФИКШЕН: `~/Developer/personal-os/tools/music-tags/build_fix_plan2.py`**
|
||||
> Вызов: `python3 build_fix_plan2.py INVENTORY.csv OUT.csv [HOST_ROOT]`. Ищется **только через
|
||||
> Zulip DB** — локальный `grep` даёт 63 файла-потребителя и **ни одного генератора**.
|
||||
>
|
||||
> 🔑 **КОРЕНЬ ДЕФЕКТА «мусор в album не правится»** (`Песни` у Никулина, `Храбрый Зайчик…`
|
||||
> у Миансарова) — **не в списках слов**, а в `derive_from_path()`: после среза категории
|
||||
> (`!Retro`, `!Pop, Club, Любэ` — они в `CATEGORY_DIRS`) остаётся **ОДИН** компонент пути,
|
||||
> ветка `if len(dirs) >= 2:` (та, что ставит `album`) **не выполняется**, падает в
|
||||
> `len(dirs) == 1` → `return only, ""` → **album ВСЕГДА пустой**. Правило «файл в корне артиста
|
||||
> → album = имя папки» в генераторе **отсутствовало вообще**.
|
||||
> **Фикс (3 правки):** `path_parts(rel, with_flag=True)` отдаёт флаг среза; `derive_from_path`
|
||||
> возвращает `(only, only)` при срезе; в блоке album добавлено `is_artist_root = bool(d_album)
|
||||
> and d_artist == d_album` → `album<-artist-root`. Верификация: `/tmp/prove_root_rule.py`.
|
||||
>
|
||||
> ✅ **Сделано в сессии 29-секси:** `apply-plan-v2.csv` (**7861**, fix 5079, `album<-artist-root`
|
||||
> **643**) — **старый `APPLY-PLAN.csv` НЕ тронут**; канонный диф к базе
|
||||
> `DIFF-base-vs-applyplan-v2.csv` (**1270** = 907 ПАПКА + 363 ТРЕК).
|
||||
>
|
||||
> 🔴 **ОТКРЫТО (блокер):** `Sbornik_Novij_Rok` **регрессировал** — правило корня перебивает
|
||||
> верный `Сборник нового рока` (тот же косяк, за который Alex ругал в 29-бис). Нужен критерий
|
||||
> **сверки с тегом `artist`**, а не с именем папки. Плюс `albumartist` 7861 (`old_38=''` у всех —
|
||||
> генератор это поле не заполняет) и `track` 3505 (`0` ↔ `''` нормализовать).
|
||||
> **Диф НЕ готов к показу Alex.**
|
||||
>
|
||||
> Подробно — [[personal/plans/music-artist-albumartist-repair]] § СЕССИЯ 29-СЕКСИ.
|
||||
>
|
||||
> ⚠️ **НОВОЕ (сессия 28): детектор «файл в корне папки артиста» сравнивал на РАВЕНСТВО
|
||||
> и терял папки-огрызки.** `'Руки'` ≠ `'Руки Вверх'` → `!Retro/Руки` (8 файлов) и
|
||||
@@ -32,17 +58,17 @@ related:
|
||||
> (`RULE-CHECK.csv` → `RULE-CHECK-v2.csv`, 60 → 169 папок). Подробно —
|
||||
> [[personal/plans/music-artist-albumartist-repair]] § СЕССИЯ 28.
|
||||
>
|
||||
> 🔑 **МЕТОД-УРОК (повторяется 3-й раз):** при сопоставлении имени папки с именем артиста
|
||||
> 🔑 **МЕТОД-УРОК (повторяется 5-й раз):** при сопоставлении имени папки с именем артиста
|
||||
> **НИКОГДА не сравнивать на равенство** — только `norm()` + вхождение в обе стороны.
|
||||
> Иначе теряются ровно те случаи, ради которых правило писалось (папка-огрызок,
|
||||
> `Забугр`/`Забугор`, разный регистр, `Руки`/`Руки Вверх`).
|
||||
> `Забугр`/`Забугор`, разный регистр, `Руки`/`Руки Вверх`, `norm(new_al) in NON_ARTIST`).
|
||||
>
|
||||
> **Этот файл — исторический лог волны 38 (завершена). Актуальная работа идёт здесь:**
|
||||
>
|
||||
> | Документ | О чём |
|
||||
> |---|---|
|
||||
> | **[[personal/plans/tagwriter-container]]** | ⭐ скрипт-писатель `apply_tags_v2.py` (566 стр): логика полей, ID3v1-снос, тесты, 18 питфоллов, запуск |
|
||||
> | **[[personal/plans/music-artist-albumartist-repair]]** | ⭐ **правила формирования плана, `APPLY-PLAN.csv`, диффы, сессии 1-28** |
|
||||
> | **[[personal/plans/music-artist-albumartist-repair]]** | ⭐ **правила формирования плана, `APPLY-PLAN.csv`, диффы, сессии 1-29** |
|
||||
> | **[[personal/tech/music-broken-toload]]** | 29 битых/DRM файлов на перезагрузку |
|
||||
>
|
||||
> **Состояние:** план `APPLY-PLAN.csv` доведён до **0 пустых полей**. Диффы **ПЕРЕСОБРАНЫ
|
||||
|
||||
Reference in new issue
Block a user