[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

@@ -5508,6 +5508,118 @@ track 118
**неподряд**, сортировка битая; если один `folder`+`field` повторяется с разными `new` —
это сборник, не дефект.
## ✅ ЧИСТКА ДИФФА ОТ ШУМА `track N → N/M` (2026-09-27, финал сессии 29-окти)
> **ТРИГГЕР:** Alex: «**я думаю трек 6 не надо править на "6/14" ты как считаешь?**»
### 🔑 ПОДТВЕРЖДЕНО ФАКТОМ ИЗ БД: `track_number` ХРАНИТСЯ ЦЕЛЫМ
```sql
SELECT track_number, COUNT(*) FROM media_file
WHERE path NOT LIKE 'backup%' GROUP BY track_number
```
Дал: `0` (1581) · `1` (510) · `2` (466) · … · `24` (22) — **только целые**, без `/M`
и без ведущих нулей.
**Следствие:** `6 → 6/14` и `8 → 08` — **значение трека НЕ меняется**. База всё равно
приведёт его к целому. Это форматная косметика, не правка.
### ✅ УБРАНО 118 строк шума
| Скрипты | Убрано | Осталось |
|---|---:|---:|
| `/tmp/drop_track_noise.py` (`N → N/M`) | 117 | 945 |
| добор последней `8 → 08` | 1 | **945** |
⚠️ **ПИТФОЛЛ СЧЁТА:** первый подсчёт через `awk ... | grep -c "/"` дал **33** строки —
потому что `awk -F','` разваливает пути с запятыми в кавычках и часть строк теряется.
Реальный объём — **117**. Считать надо CSV-парсером, не `awk` по кавычкам.
**Бэкапы:** `/tmp/DIFF-v3.bak-20260927-205211.csv`, `/tmp/DIFF-v3.bak2-*.csv`
### 🔴 РЕШЕНИЕ ALEX (зафиксировано): `N/M` в треках НЕ ПРАВИМ
Причина, названная Alex и подтверждённая фактом: значение не меняется, правится впустую.
Дополнительно: `TRCK` с `/` ломает часть парсеров и сортировку в Navidrome.
## 🔴 РЕШЕНИЕ ALEX: ПАПКУ `Разное` НЕ РАЗГРЕБАЕМ
> Alex: «**нет. план такой и был что папку Разное мы кидаем как альбом "Разное" а не разгребаем.**»
Класс из 76 файлов (папки-мусорки внутри артиста) — **ЗАКРЫТ БЕЗ ДЕЙСТВИЙ**:
```
44 !Барды/Владимир Высоцкий/Разное album='Разное'
14 !Rock&Folk/Пилот/Избранное album='Избранное'
10 !Rock&Folk/ДДТ/2003 - песни album='Песни'
3 !Rock&Folk/Наутилус Помпилиус/2000 - песни album='песни'
3 !Rock&Folk/Rammstein/misc album='misc'
1 !A Not sorted/SD-card-2026-05/Агата Кристи album='Избранное'
1 !Детские/Из чего же.mp3 album='' → починен, см. ниже
```
🔑 **Это ПЛАН, а не дефект.** Папка-мусорка намеренно становится альбомом-мусоркой.
**НЕ «улучшать»** — Николай/следующая сессия: не предлагать разгребать `Разное`,
`Избранное`, `Песни`, `misc`. Детектор `/tmp/diag_root_junk.py` ловит их как «мусор» —
это **ложное срабатывание по определению плана**.
## ✅ ФИКС ОПЕЧАТКИ `Андервуд` + ДЫРКИ `!Детские` (2026-09-27, финал)
> **ТРИГГЕР:** Alex: «**Андервуд надо исправить еще**» → «**`!Детские/Из чего же.mp3` - где альбом**»
### 1. `Андервуд` (опечатка протекла из имени папки в `album`)
```
folder !A Not sorted/SD-card-2026-05/Андервуд
cur_artist Ундервуд ← уже правильное написание
new_album Андервуд → Ундервуд ← ❌ было имя папки с опечаткой
```
Папка на диске названа с опечаткой (`А` вместо `У`); правило корня взяло её как есть.
Доказательство правильного значения — `cur_artist` у того же файла.
### 2. `!Детские/Из чего же.mp3` (потеря значения)
```
cur_album Íåèçâåñòíîå íàçâàíèå ← битьё CP1251 = «Неизвестное название»
new_album (пусто) → Детские
```
Генератор распознал битый `cur_album` как мусор и **обнулил**, но подставил значение
в `new_albumartist = Детские песни` — не в то поле. `album` остался пустым, диф показывал
`[Unknown Album] → (пусто)`, т.е. план **сотрал бы тег**. Файл лежит в корне `!Детские`.
### Скрипт и верификация
`/tmp/fix_v3_typos.py` — правит **только `/tmp/apply-plan-v3.csv`**,
`APPLY-PLAN.csv` (канон/RC) **НЕ ТРОНУТ**. Бэкап: `/tmp/apply-plan-v3.csv.bak-20260927-204950`.
Проверено `grep` по диффу:
```
строка 2: Андервуд — album: Андервуд -> Ундервуд ✅
строка 28: !Детские — album: [Unknown Album] -> Детские ✅
```
## 📊 ФИНАЛЬНОЕ СОСТОЯНИЕ ДИФФА (2026-09-27, сессия 29-окти — ЗАКРЫТА)
| Артефакт | Значение |
|---|---|
| `~/Downloads/music-tags/DIFF-base-vs-applyplan-v3.csv` | **945 записей** |
| `md5` | `a89d7b56ce65835c361395c5b7d1064d` |
| Сортировка | `field` **по алфавиту**: `album → albumartist → genre` |
```
album 28 склейки, правило корня, опечатки папок
albumartist 6 The Prodigy, Дискотека Авария, Потап, Король и Шут,
Eminem (<2 разных>), Ленинград (<2 разных>)
genre 911 снятие «!» префиксов
```
`track` в диффе **0** — весь блок убран как шум (см. выше).
БД 7861 ↔ план 7861, сопоставлено 7861, **не найдено 0**.
### 🔴 ОСТАЁТСЯ НА РЕШЕНИЕ ALEX
`Sbornik_Novij_Rok` — сборник, `genre` не одно значение (`Folk/Pop/Rock/Punk/Rap`) →
N ПАПКА-строк по одному полю. Alex решения не давал; для сборника это ожидаемо,
но требует подтверждения формы вывода.
## 🔴 ОСТАВШИЙСЯ ДЕФЕКТ: `!Rock&Folk/Rammstein/misc` — 3 файла
Обнаружен Alex в конце сессии: «**`!Rock&Folk/Rammstein/misc` - album - rammstein - неправильно**».