[2026-09-28] 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-28 00:11:55 +06:00
1 parent 3466ad094d
commit b718a09e95
2 files changed
+157 -10

No files matched your search

+68 -1
View File
@@ -100,7 +100,74 @@ related:
> Файлы в сборниках (`disk/`, `disk_v2/`) **удалять нельзя** — указание Alex:
> «они корректно живут в сборниках». Удаляем ТОЛЬКО дубли альбомов.
> ## 🔴 АКТУАЛЬНОЕ СОСТОЯНИЕ (2026-09-27, сессия ~36) — ЧИТАЙ ЭТО ПЕРВЫМ
> ## 🔴 АКТУАЛЬНОЕ СОСТОЯНИЕ (2026-09-27, сессия 38) — ЧИТАЙ ЭТО ПЕРВЫМ
>
> 🔴🔴 **`apply` НЕ ЗАПУСКАТЬ БЕЗ ПРЯМОГО ПОДТВЕРЖДЕНИЯ ALEX.** Дословно: «**без подтверждения
> никакого apply блядь**». Дифф и dry-run — можно, запись — только «go».
>
> ✅ **ДИФФ v6 СОБРАН — ПОЛНЫЙ ПРОХОД ПО СБОРНИКАМ (главный результат сессии).**
> ```
> ~/Downloads/music-tags/DIFF-v6.csv
> 102 строки · 553 правки · 282 файла · md5 b2b68bf9f3a0ca7645cb0ef90ec95f30
> план: apply-plan-v6.csv — 7861 стр, md5 4480cc0d1ba81db6380b935a459e7eac
> ```
> | Поле | Файлов | Было в v5 |
> |---|---|---|
> | `album` | **183** | 60 |
> | `artist` | 155 | 154 |
> | `albumartist` | 157 | 157 |
> | `track` | 58 | 58 |
>
> Прирост `album` = **+123 файла** — ровно те сборники, что v5 не видел.
>
> ✅ **СБОРЩИК НАПИСАН: `~/Downloads/music-tags/build_diff_v6.py`** (заменил `build_diff_from_db.py`).
> Реализует 8 правил, читает локальную копию БД `~/Downloads/navidrome-db/navidrome-after-v3.db`.
> 🔑 **Правила сборников теперь В КОДЕ, а не в хардкод-списке из 3 префиксов.**
>
> ✅ **СВЕРКА `DIFF-v6.csv` ПО ПАПКАМ — 16 album-строк:**
> ```
> !Retro 32 разных → 'Retro'
> !Rock&Folk/!rock_o_pop 16 разных → 'rock_o_pop'
> !Pop, Club, Любэ/!ZabuGor 8 разных → 'ZabuGor'
> !Классика 5 разных → 'Классика'
> 9999 - Разное/{Кавер-версии,Неизданное,Проекты} → имя вложенной папки (30 файлов)
> !Pop, Club, Любэ/detskiy_hor_benassi… → 'Radio' (адресно)
> !Pop, Club, Любэ/!Radio/Stylemasters… → 'Radio' (адресно)
> !Рэп/03. Т9 - Вдох-Выдох… → 'Вдох-выдох' + artist 'Т9'
> !Рэп/Птаха - Красивые… → 'Красивые, богатые'
> !Рэп/Трофим/01-04 Аристократия помойки → срез префикса NN_
> z Другое…/Тема дороги.mp3 → 'Ленинград' + artist 'Ленинград'
> ```
>
> 🔴 **Т9 - «Вдох-Выдох» — АЛЬБОМ УСТАНОВЛЕН ПО ВНЕШНЕМУ ИСТОЧНИКУ (Discogs).**
> Файл `!Рэп/03. Т9 - Вдох-Выдох (Ода Нашей Любви).mp3` лежал в корне `!Рэп` с мусорным
> `album='Record Super Chart #1'` и `artist='Вдох-Выдох'` (часть названия песни!).
> Релиз `Т9 — Вдох-Выдох`, CD Album, **2008** (Discogs r3300495).
> **Решение Alex: `album='Вдох-выдох'`, `artist='Т9'`** ✅ подтверждено.
> 🔑 **МЕТОД: реальный альбом одиночного файла ставится по внешнему источнику (Discogs/MusicBrainz),
> НЕ по имени папки.** Иначе в тег уедет `Record Super Chart #1`.
>
> 🔴 **ПРАВИЛО КОРНЕВЫХ ФАЙЛОВ (закрыто):** файл прямо в категории (`!Рэп/x.mp3`,
> `!Pop, Club, Любэ/x.mp3`) → `album` = имя категории БЕЗ `!`. Для `!Radio` внутри —
> `album='Radio'`. Вложенные `!Radio/v 2009-03 mIr.vEsNЫ/…` **НЕ ТРОГАЕМ** (Alex: их
> значение `2009-03 mIr.vEsNЫ` верное — это дата-папка релиза, не дефект).
> ⚠️ **Питфолл: я спрашивал про `Record Super Chart #1` как про «папку» — такой ПАПКИ НЕТ.**
> Это значение поля `album`. **Прежде чем спрашивать — читать `os.path.dirname`, а не гадать.**
>
> ✅ **ДУБЛИ ТРОФИМА ПОДТВЕРЖДЕНЫ УДАЛЁННЫМИ (проверено `find` на NAS):**
> ```
> !Рэп/Трофим/ 157 файлов ← ЭТАЛОН (живое дерево)
> backup/!Рэп/Трофим/ 220 файлов ← бэкап
> backup_album_root_…-229/…/3 SHANSON/Трофим 49 файлов ← бэкап
> ```
> Живых копий `!Radio/z Старое/disk*/3 SHANSON/Трофим` — **0**. Удаление 50 файлов выполнено ✅.
> 🔑 **Проверка: `find … -ipath "*Трофим*" -name "*.mp3" -printf "%h\n" | sort | uniq -c`.**
> Префикс `backup` в пути = бэкап; живое дерево всегда без него.
>
> ⚠️ **ОСТАЛОСЬ (перед apply):** **dry-run v6 не запущен.** Плюс висят решения Alex по
> `10 Ностальгия`/`Боже, какой пустяк` и `Sbornik_Novij_Rok` genre.
> ## 🔴 АКТУАЛЬНОЕ СОСТОЯНИЕ (2026-09-27, сессия 37) — АРХИВ
>
> 🔴🔴 **`apply` НЕ ЗАПУСКАТЬ БЕЗ ПРЯМОГО ПОДТВЕРЖДЕНИЯ ALEX.** Дословно 27 сен:
> «**без подтверждения никакого apply блядь**». Дифф и dry-run — можно, запись — только «go».