[2026-09-27] eagle: personal/plans/music-artist-albumartist-repair.md
This commit is contained in:
1 parent
36014c7e59
commit
891942e1d6
1 file changed
+207
-41
@@ -4,7 +4,7 @@ created: '2026-09-27'
|
||||
updated: '2026-09-27'
|
||||
type: plan
|
||||
namespace: personal
|
||||
status: БОЕВОЙ-ПРОГОН-ВЫПОЛНЕН / TCON-4359-ЗАПИСАН / BD-ПЕРЕСОЗДАНА / 2-баги-вскрыты / ПЛАН-v4-ТРЕБУЕТСЯ
|
||||
status: ПЛАН-v4-СОБРАН / ДИФФ-v4-СОБРАН / ДУБЛИ-УДАЛЕНЫ-50 / 2-ВОПРОСА-ОТКРЫТЫ
|
||||
tags:
|
||||
- music
|
||||
- metadata
|
||||
@@ -35,40 +35,44 @@ related:
|
||||
**Что делаем:** привести ID3-теги библиотеки `/mnt/RED_2TB/storage/Music` (7861 файл)
|
||||
в порядок, чтобы Navidrome показывал правильные альбомы/исполнителей/жанры.
|
||||
|
||||
**Главный артефакт на сейчас:**
|
||||
**Главный артефакт на сейчас (27 сен, сессия ~34):**
|
||||
|
||||
```
|
||||
Дифф: ~/Downloads/music-tags/DIFF-base-vs-applyplan-v3.csv
|
||||
md5 bdb20c6ae00e7dfab4da2f76653fe084
|
||||
945 строк (ПАПКА 711 · ТРЕК 234) · genre 911 · album 28 · albumartist 6
|
||||
План: /tmp/apply-plan-v3.csv (7861 строка, md5 6b9e49b2baa3f1d1708e4566972266a9)
|
||||
Лог: ~/Downloads/music-tags/APPLY-PLAN-v3-changes.csv (31 строка — УСТАРЕЛ, см. § ВЕРИФИКАЦИЯ)
|
||||
Канон: ~/Downloads/music-tags/APPLY-PLAN.csv (7861 строка — НЕ ПЕРЕЗАПИСЫВАТЬ)
|
||||
ДИФФ: ~/Downloads/music-tags/DIFF-canon-v4.csv
|
||||
90 строк (ПАПКА 26 · ТРЕК 64) — схлопнуто из 428 правок
|
||||
сортировка: по АЛФАВИТУ field (album → albumartist → artist → track)
|
||||
План: ~/Downloads/music-tags/apply-plan-v4.csv (7861 строка)
|
||||
Лог: ~/Downloads/music-tags/DIFF-canon-v4-changes.csv (428 строк, построчно, с причиной)
|
||||
Сборщик: ~/Downloads/music-tags/build_diff_canon_v4.py
|
||||
Удалено: ~/Downloads/music-tags/DELETE-dup-trofim.csv (50 дублей Трофима — ✅ снесены)
|
||||
Канон: ~/Downloads/music-tags/APPLY-PLAN.csv (7861 строка — НЕ ПЕРЕЗАПИСЫВАТЬ, эталон)
|
||||
Бэкап канона: /tmp/APPLY-PLAN.csv.bak-before-v4
|
||||
```
|
||||
|
||||
**Состояние (27 сен, сессия ~31):** ✅ **БОЕВОЙ ПРОГОН ВЫПОЛНЕН УСПЕШНО.**
|
||||
`7653/7653 ok, err=0`; **`TCON` записан в 4359 файлов** — открытый дефект с 27 сен ЗАКРЫТ.
|
||||
Проверка чтением файлов (не по логу): `7861/7861 имеют TCON`, `mismatches 0`, `read errors 0`.
|
||||
⚠️ **Сборщики диффа/плана писать СРАЗУ в `~/Downloads/music-tags/`, НЕ в `/tmp`.**
|
||||
Alex: «какого хуя он в тмп» — артефакт в `/tmp` он не находит.
|
||||
|
||||
Скрипт пишет **все 6 полей сразу** (`TIT2 TPE1 TPE2 TALB TCON TRCK`) — режима «только genre» нет.
|
||||
Решение Alex: **полный набор**, дифф не пересобираем; требование «совпасть по цифрам с
|
||||
APPLY-PLAN-v3-changes» снято самим Alex (дифф = ГРУППЫ, прогон = ФАЙЛЫ).
|
||||
**Состояние (27 сен, сессия ~34):** ✅ **БОЕВОЙ ПРОГОН v3 выполнен** (7653/7653 ok, err=0,
|
||||
`TCON` 4359, БД Navidrome пересоздана, скан 4m13s, импортировано 7861).
|
||||
|
||||
⏳ **Осталось (27 сен, сессия ~33) — ЧЕТЫРЕ ЗАДАЧИ ОТ ALEX, план v4 НЕ СОБРАН:**
|
||||
1. 🔴 **БАГА №1 генератора** — `/tmp/make_applyplan_v3.py` строки 148-154: правила
|
||||
`album==title` / `album==имя-файла` проверяются на **`new_*`**, а должны на **`cur_*`**.
|
||||
Задето **20 файлов** (Птаха — симптом №1). Разбор → § КОРЕНЬ ДЕФЕКТА ПТАХИ.
|
||||
2. 🔴 **БАГА №2 генератора — КАТЕГОРИЯ `z Другое, Enigma, Ленинград` НЕ СРЕЗАЕТСЯ.**
|
||||
В `CATEGORY_DIRS` строка набрана в СМЕШАННОЙ раскладке → `norm()` не совпадает →
|
||||
`stripped=False` → правило корня выключено для **~900 файлов** (Ленинград, Сектор Газа,
|
||||
Красная Плесень, Enigma, Pushnoy.ru). Именно поэтому «Тема дороги» не попала в альбом.
|
||||
Разбор → § БАГА №2 — КАТЕГОРИЯ Z ДРУГОЕ.
|
||||
3. **Трофим** — исполнитель `Трофим` → **`Сергей Трофимов`** (199 `new_artist` + 207 `album_artist`);
|
||||
альбомы `01..04 Аристократия помойки` → без цифрового префикса (58 файлов);
|
||||
**дубли альбома снести** (копии в `disk/` + `disk_v2/` Alex велел НЕ трогать — живут в сборниках).
|
||||
4. **Птаха** — 1 файл `new_album` → `Красивые, богатые`.
|
||||
✅ **ПЛАН v4 СОБРАН И ДИФФ ПОКАЗАН.** База сборки — **КАНОН** `APPLY-PLAN.csv` (НЕ план v3:
|
||||
v3 испорчен багой `album==title`; сборка от канона лечит 20 файлов автоматически).
|
||||
Правок 428: `albumartist 157 · artist 154 · album 59 · track 58`.
|
||||
Верификация v4 — 4 проверки, **0 ошибок** (`/tmp/verify_v4.py`): пути 1:1, каждая строка
|
||||
дифа подтверждается, изменений вне дифа 0, ложных срабатываний класса Птахи 0.
|
||||
|
||||
⚠️ **Три вопроса к Alex ОТКРЫТЫ** (без них план v4 не собрать) → § ВОПРОСЫ К ALEX.
|
||||
✅ **ДУБЛИ ТРОФИМА УДАЛЕНЫ** — 50 файлов из `disk/` + `disk_v2/` снесены по команде Alex
|
||||
(`/tmp/del_dups.py`, удалено 50/50, ошибок 0). `!Рэп/Трофим` цел (157 файлов).
|
||||
|
||||
⏳ **ОСТАЛОСЬ — 2 ВОПРОСА К ALEX (блокируют прогон v4):**
|
||||
1. **`10 Ностальгия` / `Боже, какой пустяк`** — дубль ВНУТРИ `!Рэп/Трофим`, `album='Ветер
|
||||
в голове'`. Удалять файл или сменить `album` на `Ностальгия`? В дифе его НЕТ (не трогал).
|
||||
2. **«Тема дороги» `artist`** — в дифе `Бумер → Ленинград` (по имени папки). Оставляем?
|
||||
Альтернативы: `Сергей Шнуров`, `Various Artists`.
|
||||
|
||||
**Порядок после ответов:** подтвердить диф → прогон v4 (`--apply`, план подложить как
|
||||
`apply-plan.csv`) → верификация чтением → **пересоздать БД Navidrome** (после удаления
|
||||
50 файлов рескан обязателен) → приёмка Alex в UI.
|
||||
|
||||
```
|
||||
Navidrome БД: /mnt/RED_2TB/docker/navidrome/data/ ← БЕЗ storage/ (дока ранее врала)
|
||||
@@ -109,6 +113,13 @@ compose: /mnt/RED_2TB/docker/navidrome
|
||||
| 19 | 27 сен | 🔴 **БАГА №2 НАЙДЕНА** — категория `z Другое…` не срезается (смешанная раскладка в `CATEGORY_DIRS`) | `/tmp/diag_category.py` |
|
||||
| 20 | 27 сен | 🔴 **ДЕФЕКТ ТРОФИМ** — 3 физические копии на диске → 8 альбомов, 38 имён задвоено | § ДЕФЕКТ ТРОФИМ |
|
||||
| 21 | 27 сен | 📋 **Решения Alex получены, план v4 НЕ собран** — 3 вопроса открыты | § ВОПРОСЫ К ALEX |
|
||||
| 22 | 27 сен | ✅ **РЕШЕНИЯ ALEX ПОЛУЧЕНЫ** — Трофим: исполнитель `Сергей Трофимов`, альбомы `01..04` без префикса, дубли снести; Тема дороги → `Ленинград` | § РЕШЕНИЯ ALEX |
|
||||
| 23 | 27 сен | ✅ **ДУБЛИ ТРОФИМА ПРОВЕРЕНЫ** — `disk/` и `disk_v2/` = одни 25 файлов, уникальных 0 | `/tmp/trofim_dups.py` |
|
||||
| 24 | 27 сен | ✅ **ПЛАН v4 СОБРАН от КАНОНА** — 428 правок (albumartist 157 · artist 154 · album 59 · track 58) | `apply-plan-v4.csv` |
|
||||
| 25 | 27 сен | ✅ **50 ДУБЛЕЙ УДАЛЕНЫ С ДИСКА** — 50/50, ошибок 0, `!Рэп/Трофим` цел (157) | `/tmp/del_dups.py` |
|
||||
| 26 | 27 сен | ✅ **ВЕРИФИКАЦИЯ v4** — 4 проверки, 0 ошибок | `/tmp/verify_v4.py` |
|
||||
| 27 | 27 сен | ✅ **ДИФФ v4 СОБРАН ПРАВИЛЬНО** — 90 строк (ПАПКА 26 · ТРЕК 64), сортировка по алфавиту field, схлопывание | `DIFF-canon-v4.csv` |
|
||||
| 28 | 27 сен | 🔴 **ПЕРЕДЕЛКА ДИФФА** — первый дифф был НЕ сортирован и НЕ схлопнут (428 построчных строк) | § ПЕРЕДЕЛКА ДИФФА |
|
||||
|
||||
---
|
||||
|
||||
@@ -268,14 +279,22 @@ backup_raw
|
||||
|
||||
### Рабочие (Mac)
|
||||
```
|
||||
~/Downloads/music-tags/APPLY-PLAN.csv канон, 7861 стр, md5 bc20f2a49e364ecd5ed57d9fc97bfbcb
|
||||
~/Downloads/music-tags/DIFF-base-vs-applyplan-v3.csv дифф v3, 945 стр, md5 bdb20c6ae00e7dfab4da2f76653fe084
|
||||
~/Downloads/music-tags/APPLY-PLAN-v3-changes.csv лог 31 правки v3, md5 2c6d2f0bb1d732d7e3e70ef1b210e7d8
|
||||
~/Downloads/music-tags/APPLY-PLAN.csv канон/ЭТАЛОН, 7861 стр, md5 bc20f2a49e364ecd5ed57d9fc97bfbcb
|
||||
~/Downloads/music-tags/DIFF-canon-v4.csv 🔴 ТЕКУЩИЙ ДИФФ v4, 90 стр (ПАПКА 26 · ТРЕК 64)
|
||||
~/Downloads/music-tags/apply-plan-v4.csv 🔴 ТЕКУЩИЙ ПЛАН v4, 7861 стр
|
||||
~/Downloads/music-tags/DIFF-canon-v4-changes.csv лог v4, 428 строк построчно
|
||||
~/Downloads/music-tags/DELETE-dup-trofim.csv 50 дублей Трофима (✅ уже удалены)
|
||||
~/Downloads/music-tags/build_diff_canon_v4.py сборщик диффа v4 (сортировка+схлопывание В КОДЕ)
|
||||
~/Downloads/music-tags/DIFF-base-vs-applyplan-v3.csv дифф v3 (устарел), 945 стр, md5 bdb20c6ae00e7dfab4da2f76653fe084
|
||||
~/Downloads/music-tags/APPLY-PLAN-v3-changes.csv лог v3 (устарел), 31 стр
|
||||
~/Downloads/music-tags/tag-fix-plan.csv 38-я волна, 7905 стр
|
||||
~/Downloads/music-tags/ALBUM-FIX-306.csv скобочный прогон, 306 стр
|
||||
~/Downloads/navidrome-db/navidrome-merged.db БД Navidrome (старая локальная копия)
|
||||
~/Downloads/navidrome-db/navidrome-after-v3.db 🔴 БД ПОСЛЕ прогона v3, 27586560 B — читать отсюда
|
||||
~/Downloads/navidrome-db/navidrome-after-v3.db БД ПОСЛЕ прогона v3, 27586560 B — читать отсюда
|
||||
```
|
||||
⚠️ `/tmp`-копии: `DIFF-v3-to-v4.csv` (428 строк — ПЕРВЫЙ, несортированный/несхлопнутый, устарел),
|
||||
`apply-plan-v4.csv`. **Не путать: правильный дифф — `DIFF-canon-v4.csv` в папке проекта.**
|
||||
Бэкап канона перед сборкой v4: `/tmp/APPLY-PLAN.csv.bak-before-v4`.
|
||||
|
||||
### Скрипты
|
||||
```
|
||||
@@ -305,6 +324,13 @@ backup_raw
|
||||
/tmp/diag_category.py 🔴 БАГА №2: побайтовое сравнение CATEGORY_DIRS с norm(папки)
|
||||
/tmp/diag_trofim.py дубли имён Трофима (53 имени), папки Трофима
|
||||
/tmp/diag_prefix_dups.py альбомы с цифровым префиксом (15, реальных префиксов 3)
|
||||
/tmp/trofim_map.py карта Трофима: папки/альбомы/треки по канону (157 файлов, 11 альбомов)
|
||||
/tmp/trofim_dups.py 🔑 дубли Трофима: disk/ и disk_v2/ = одни 25 файлов, уникальных 0
|
||||
/tmp/build_v4.py 🔴 СБОРЩИК ПЛАНА v4 (от канона; 428 правок)
|
||||
~/Downloads/music-tags/build_diff_canon_v4.py 🔴 СБОРЩИК ДИФФА v4 (ПАПКА/ТРЕК + алфавит field)
|
||||
/tmp/verify_v4.py верификация v4: пути 1:1, каждая строка дифа, пропуски, класс Птахи
|
||||
/tmp/del_dups.py удаление 50 дублей Трофима (на NAS как /app/data/del_dups.py)
|
||||
/tmp/move_dups.py карантинный вариант (НЕ РАБОТАЕТ: контейнер не видит /mnt/RED_2TB)
|
||||
/tmp/find_bug.py черновик детектора (ловил album==имя-папки — НЕ та бага)
|
||||
/tmp/find_bug2.py папки с НЕОДНОРОДНЫМ new_album внутри одной папки
|
||||
~/Developer/personal-os/tools/music-tags/build_fix_plan2.py генератор плана (пофикшен)
|
||||
@@ -474,17 +500,157 @@ new_artist: 'Трофим' 199 · В.Маркин · С.Трофимов,г
|
||||
|
||||
---
|
||||
|
||||
## 📋 ВОПРОСЫ К ALEX (открыты, блокируют сборку плана v4)
|
||||
## 📋 РЕШЕНИЯ ALEX (получены 27 сен, сессия ~34) — НЕ ПЕРЕСПРАШИВАТЬ
|
||||
|
||||
1. **Исполнитель «Тема дороги»**: `Ленинград`, `Сергей Шнуров` или `Various Artists` (это ОСТ)?
|
||||
2. **Трофим, `album_artist`**: тоже менять на `Сергей Трофимов`, или только `artist`?
|
||||
И входит ли `Женя Трофимов & Комната культуры` (другой артист) в «все его треки»?
|
||||
3. **Дубли Трофима**: «снести дубли альбомов» = удалить 58 файлов `!Рэп/Трофим/01..04`
|
||||
с диска, или только переименовать тег `album` (сняв цифровой префикс) и оставить файлы?
|
||||
Alex: «Абсолютно верно, видишь, ты сам можешь правильно рассуждать» — предложенные
|
||||
варианты приняты. Три вопроса из прошлой сессии **ЗАКРЫТЫ**:
|
||||
|
||||
**Порядок после ответов:** фикс баги №1 (`cur_*`) + фикс баги №2 (категория) → пересборка
|
||||
плана в **НОВЫЙ файл** относительно **текущей БД Navidrome** (не `cur_*` канона — они устарели)
|
||||
→ список CSV + дифф → показ Alex → прогон.
|
||||
1. ✅ **Исполнитель «Тема дороги»** → **`Ленинград`** (по имени папки, как положено правилом
|
||||
корня). Alex: «поместить в альбом Ленинград по корню папки как положено».
|
||||
2. ✅ **Трофим, исполнитель** → **`Сергей Трофимов`**: и `artist`, и `album_artist`.
|
||||
**Дуэты НЕ схлопывать** — только нормализовать формат:
|
||||
```
|
||||
'С.Трофимов,группа "Тутси"' -> 'Сергей Трофимов и группа «Тутси»'
|
||||
'С.Трофимов,группа "Отпетые мошенники"' -> 'Сергей Трофимов и группа «Отпетые мошенники»'
|
||||
'С.Трофимов,группа "Любовные истории"' -> 'Сергей Трофимов и группа «Любовные истории»'
|
||||
'С.Трофимов,Азиза' -> 'Сергей Трофимов и Азиза'
|
||||
```
|
||||
Остальные (Александр Маршал, Алексей Иванов, Т. Овсиенко, В.Маркин) — оставить.
|
||||
3. ✅ **Дубли Трофима** → **удалить 50 файлов** из `disk/` + `disk_v2/`. Оставляем
|
||||
`!Рэп/Трофим` как эталон. `disk/` и `disk_v2/` **проверены: одни и те же 25 файлов,
|
||||
уникальных 0** — терять нечего (`/tmp/trofim_dups.py`).
|
||||
|
||||
**Номер трека** в `01..04 Аристократия помойки` — **из имени файла** (`#1_06_Alkash.mp3` → 6).
|
||||
Причина: в `05..11` номера уже стоят и совпадают с номером из имени → нумерация авторская,
|
||||
не сплошная. Перенумерация 1..N сломала бы верное.
|
||||
|
||||
**Цифровой префикс** — **адресно, списком**, НЕ общим правилом (только 3 из 15 реальные).
|
||||
|
||||
### ⏳ 2 ОТКРЫТЫХ ВОПРОСА (блокируют прогон v4)
|
||||
|
||||
1. **`!Рэп/Трофим/10 Ностальгия` / `Боже, какой пустяк`** — 16-й файл в папке с
|
||||
`album='Ветер в голове'` (он же есть в `09 Ветер в голове` trk=14) → альбом «Ностальгия»
|
||||
раздвоен. **Удалять файл** (он дубль) или сменить `album` на `Ностальгия`?
|
||||
В дифе v4 его НЕТ — не трогал.
|
||||
2. **«Тема дороги» `artist`** — в дифе `Бумер → Ленинград`. Alex сказал «поместить в альбом
|
||||
Ленинград», но **про исполнителя прямо не сказал**. Подтвердить `Ленинград`?
|
||||
|
||||
---
|
||||
|
||||
## 🚀 ПЛАН v4 — СОБРАН (27 сен, сессия ~34)
|
||||
|
||||
**Сборщик:** `/tmp/build_v4.py` (сборка плана), `/Users/admin/Downloads/music-tags/build_diff_canon_v4.py` (сборка диффа).
|
||||
|
||||
🔑 **БАЗА СБОРКИ = КАНОН `APPLY-PLAN.csv`, НЕ план v3.** Причина: v3 испорчен багой
|
||||
`album==title` (20 файлов). Канон — эталон, в нём `new_*` правильные. Сборка от канона
|
||||
**автоматически лечит все 20 файлов**, включая Птаху. Отдельный фикс Птахи НЕ ПОТРЕБОВАЛСЯ
|
||||
(скрипт дал 0 правок по нему — он уже был верен в каноне).
|
||||
|
||||
```bash
|
||||
python3 /tmp/build_v4.py
|
||||
# → ~/Downloads/music-tags/apply-plan-v4.csv (7861 строка)
|
||||
# → /tmp/diag... (диагностика)
|
||||
```
|
||||
⚠️ Изначально скрипт писал в `/tmp` — Alex: «какого хуя он в тмп». **Писать в папку проекта.**
|
||||
|
||||
**428 правок, 4 класса:**
|
||||
|
||||
| класс | правок | что делает |
|
||||
|---|---|---|
|
||||
| `albumartist` | 157 | Трофим → `Сергей Трофимов` (все 11 альбомов) |
|
||||
| `artist` | 154 | 149× Трофим → `Сергей Трофимов` · 4× дуэты нормализованы · 1× Бумер → `Ленинград` |
|
||||
| `album` | 59 | 58× цифровой префикс Трофима (`01..04 Аристократия`) · 1× Тема дороги |
|
||||
| `track` | 58 | номера из имени файла (`#1_06_Alkash.mp3` → 6) |
|
||||
|
||||
**Результат по Трофиму** (`!Рэп/Трофим`, 157 файлов):
|
||||
```
|
||||
albumartist: 'Сергей Трофимов' 157/157
|
||||
artist: 'Сергей Трофимов' 149 + 4 дуэта + 4 гостя другого артиста
|
||||
пустых track: 0
|
||||
альбомы: 11 папок -> 11 альбомов без цифровых префиксов
|
||||
(кроме '10 Ностальгия' — там 2 значения, см. открытый вопрос)
|
||||
```
|
||||
|
||||
**Тема дороги** (`z Другое, Enigma, Ленинград/Ленинград/Тема дороги.mp3`):
|
||||
```
|
||||
canon: album='саунд треки к фильму' artist='Бумер'
|
||||
v4 : album='Ленинград' artist='Ленинград'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔴 ПЕРЕДЕЛКА ДИФФА — первый дифф был НЕ сортирован и НЕ схлопнут
|
||||
|
||||
**Alex: «почему диф опять не сортирован и не схлопнут?! ты опять для него заново скрипт
|
||||
писал?!»** — да, написал заново и не выполнил два обязательных требования.
|
||||
|
||||
Первый дифф `/tmp/DIFF-v3-to-v4.csv` — **428 построчных строк** (по строке на файл+поле):
|
||||
```
|
||||
ТРЕК,...,#1_01_Prolog.mp3,artist,Трофим,Сергей Трофимов
|
||||
ТРЕК,...,#1_01_Prolog.mp3,albumartist,Трофим,Сергей Трофимов
|
||||
ТРЕК,...,#1_01_Prolog.mp3,album,01 Аристократия помойки,Аристократия помойки
|
||||
ТРЕК,...,#1_01_Prolog.mp3,track,,1
|
||||
... × 157 файлов
|
||||
```
|
||||
Сортировки по алфавиту `field` не было, схлопывания не было.
|
||||
|
||||
**Правильный формат** (`DIFF-canon-v4.csv`, 90 строк):
|
||||
|
||||
```
|
||||
Правила (из канонного DIFF-base-vs-applyplan-v3.csv):
|
||||
ПАПКА-строка = (folder, field, new) — когда цель одинакова у 2+ файлов папки.
|
||||
old = '<N разных>' при разных старых значениях, конкретное при одном, пусто при всех пустых.
|
||||
ТРЕК-строка = файл, чья цель УНИКАЛЬНА в папке.
|
||||
СОРТИРОВКА = по АЛФАВИТУ field: album -> albumartist -> artist -> genre -> track,
|
||||
внутри — folder, затем path.
|
||||
🔑 sorted({...}) / ключ сортировки ДОЛЖНЫ БЫТЬ В КОДЕ, не в порядке объявления списка.
|
||||
```
|
||||
|
||||
**Результат:**
|
||||
```
|
||||
ПАПКА-строк: 26 ТРЕК-строк: 64 всего 90 (из 428 правок)
|
||||
|
||||
album 59 правок -> 5 строк (4 ПАПКА Трофим + 1 ТРЕК Тема дороги)
|
||||
albumartist 157 правок -> 11 строк (11 ПАПКА = 11 папок)
|
||||
artist 154 правки -> 16 строк (11 ПАПКА + 5 ТРЕК: 4 дуэта + Бумер)
|
||||
track 58 правок -> 58 строк (по ТРЕК: номера у всех разные, схлопывать нечего)
|
||||
genre/title 0 правок -> 0
|
||||
```
|
||||
🔑 **`track` схлопнуть нельзя by design** — у каждого файла свой номер, ПАПКА-строка невозможна.
|
||||
|
||||
---
|
||||
|
||||
## ✅ УДАЛЕНИЕ ДУБЛЕЙ ТРОФИМА (27 сен, сессия ~34)
|
||||
|
||||
Alex: «файлы удали из музыки которые мы хотели».
|
||||
|
||||
**Проверка перед удалением** (`/tmp/trofim_dups.py`):
|
||||
```
|
||||
!Рэп/Трофим 157 файлов ← эталон
|
||||
disk/ 25 файлов ← все 25 есть в эталоне по названию, уникальных 0
|
||||
disk_v2/ 25 файлов ← имена совпадают с disk/ 1:1, уникальных 0
|
||||
```
|
||||
`disk/` и `disk_v2/` — **одни и те же 25 файлов**. Терять нечего.
|
||||
|
||||
**Удаление** (`/tmp/del_dups.py`, после неудачи с карантином):
|
||||
```bash
|
||||
scp /tmp/del_dups.py truenas_admin@mallexxx.duckdns.org:/tmp/tw306/
|
||||
docker run --rm --entrypoint python3 \
|
||||
-v /tmp/tw306:/app/data:ro -v /mnt/RED_2TB/storage/Music:/music:rw \
|
||||
tagwriter:latest /app/data/del_dups.py
|
||||
```
|
||||
```
|
||||
в списке: 50 ; удалено: 50 ; не найдено: 0 ; ошибок: 0
|
||||
```
|
||||
**Проверка после:** `disk/3 SHANSON/Трофим/` — пусто, `disk_v2/…` — пусто, `!Рэп/Трофим` — 157 файлов.
|
||||
|
||||
⚠️ **ПИТФОЛЛ: карантин не сработал** — контейнер видит только `/mnt/RED_2TB/storage/Music`
|
||||
(смонтирован как `/music`), а `/mnt/RED_2TB` целиком НЕ виден →
|
||||
`PermissionError: [Errno 13] Permission denied: '/mnt/RED_2TB'`.
|
||||
Либо монтировать `/mnt/RED_2TB`, либо удалять напрямую (выбрано по команде Alex).
|
||||
|
||||
⚠️ **Navidrome:** 50 файлов с диска ушли, в БД они ещё есть → **обязателен рескан**
|
||||
(или полный пересбор БД) после прогона v4.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user