[2026-09-28] eagle: personal/plans/music-artist-albumartist-repair.md personal/plans/tagwriter-container.md personal/tech/music-tags-repair-truenas.md
This commit is contained in:
1 parent
b718a09e95
commit
8ad2c77435
3 files changed
+157
-13
No files matched your search
@@ -1166,7 +1166,10 @@ Dry-run считает ФАЙЛЫ: album 28 · albumartist 6 · genre 4359 (в
|
||||
| 🔴 **Дифф был собран от КАНОНА** | Птахи в дифе не было, хотя дефект в базе есть (диск ушёл вперёд канона) | ✅ **ЗАКРЫТ 27 сен:** пересобран от БД → `DIFF-db-to-fix.csv` |
|
||||
| 🔴 **Ложное расхождение по `genre`** | `media_file.genre` пуст у всех 7861 → дифф показывал 7861 «правок» | ✅ **ЗАКРЫТ 27 сен:** жанр читается из `tags` jsonb, `genre` в дифе = 0 |
|
||||
| 🔴 **Птаха разбит на 2 альбома** | `'Красивые, богатые'` (7 файлов) + `'Птаха - Красивые, богатые (2009)'` (1) | ⏳ **В дифе v5** (`album` 60-я правка), ждёт прогона |
|
||||
| 🔴 **Альбомы-одиночки** | **215** альбомов из 1 трека, где `album != имя папки` (класс Бумера / Симпатии) | ⏳ **ОТКРЫТ:** нужен разбор «мусор vs законный сингл». См. § АЛЬБОМЫ-ОДИНОЧКИ |
|
||||
| 🔴 **Альбомы-одиночки** | **215** альбомов из 1 трека, где `album != имя папки` (класс Бумера / Симпатии) | 🔴 **ОТКРЫТ, УТОЧНЁН 27 сен (сессия 39):** цифра `215` неверна → **`56` однотрековых папок**. Класс дефекта разделён на два (см. § АЛЬБОМЫ-ОДИНОЧКИ) |
|
||||
| 🔴 **Группировка по папкам вне `!`/`Разное`** | `Infected Mushroom`: ~35 альбомов-одиночек вместо одного `album` на папку-владельца. `Other Track's` 23 файла → 6 разных `album` | ⏳ **ОТКРЫТ (сессия 39):** правило реализовано только для папок со `!` и `9999 - Разное`. Ждёт критерия Alex: чем «сборка ремиксов» отличается от настоящего альбома |
|
||||
| **`albumartist` мусорный при смене `artist`** | Т9: `TPE1='Т9'`, `TPE2` остался `'Вдох-Выдох'` | ✅ **ЗАКРЫТ 27 сен:** правило дописано (`albumartist='Т9'`), повторный прогон, `TPE2` 157 → 158, детектор нашёл ровно 1 такой файл |
|
||||
| 🔴 **`path` без префикса `/storage/Music/`** | Мой сборщик писал относительный путь → dry-run дал `0 к обработке` и 282 MISSING | ✅ **ЗАКРЫТ 27 сен:** `"path": "/storage/Music/" + rel` |
|
||||
| **Трофим: 8 альбомов, 3 копии** | 3 физические копии → 8 альбомов, 38 имён задвоено | ✅ **ЗАКРЫТ:** 50 дублей удалены, план v5 правит альбомы/исполнителя |
|
||||
| **Тема дороги** | `title='AudioTrack 17'`, `artist='Бумер'`, один в альбоме | ⏳ **В дифе v5:** `album='Ленинград'`, `artist='Ленинград'` |
|
||||
|
||||
|
||||
@@ -1201,23 +1201,35 @@ Alex: «**я не буду читать всю твою хуйню. Я жду о
|
||||
## 5. Запуск
|
||||
|
||||
> 🔴 `docker run` и `docker build` на NAS **блокируются апрувом** и сетью.
|
||||
> Рабочая схема: `docker create` + `docker cp` + `docker start -a`.
|
||||
> Рабочая схема: `docker create` + `docker start -a`.
|
||||
|
||||
> 🔴🔴 **ИСПРАВЛЕНО 27 сен (сессия 39): путь к скрипту — `/app/`, НЕ `/app/data/`.**
|
||||
> `/app/data` — это **монтируемая папка с планом** (`CSV_IN=/app/data/apply-plan.csv`),
|
||||
> сам скрипт лежит **в образе**: `/app/apply_tags_v2.py` (25971 B).
|
||||
> С `/app/data/apply_tags_v2.py` вывод: `can't open file '/app/data/apply_tags_v2.py': No such file`.
|
||||
> 🔴 **Флага `--plan` НЕ СУЩЕСТВУЕТ** — путь плана захардкожен. Реальные аргументы:
|
||||
> `--dry-run --apply --readback --verify --force --limit N`.
|
||||
|
||||
```bash
|
||||
# сухой прогон
|
||||
docker create --name tw --entrypoint python3 \
|
||||
-v /mnt/RED_2TB/docker/arr/tagwriter:/app/data \
|
||||
# сухой прогон (Music :ro)
|
||||
docker create --name twdry --entrypoint python3 \
|
||||
-v /tmp/tw306:/app/data:ro \
|
||||
-v /mnt/RED_2TB/storage/Music:/music:ro \
|
||||
tagwriter:v2 /app/data/apply_tags_v2.py --dry-run
|
||||
docker cp /mnt/RED_2TB/docker/arr/tagwriter/apply_tags_v2.py tw:/app/apply_tags_v2.py
|
||||
docker start -a tw && docker rm -f tw
|
||||
tagwriter:latest /app/apply_tags_v2.py --dry-run
|
||||
docker start -a twdry && docker rm -f twdry
|
||||
|
||||
# боевой прогон + сверка
|
||||
# (то же, но -v ...Music:/music БЕЗ :ro, и --apply --verify)
|
||||
# боевой прогон + сверка (Music rw, /app/data rw)
|
||||
docker create --name twapply --entrypoint python3 \
|
||||
-v /tmp/tw306:/app/data \
|
||||
-v /mnt/RED_2TB/storage/Music:/music \
|
||||
tagwriter:latest /app/apply_tags_v2.py --apply --verify
|
||||
docker start -a twapply && docker rm -f twapply
|
||||
```
|
||||
|
||||
Режимы: `--dry-run` (по умолчанию) · `--apply` · `--verify` · `--readback` ·
|
||||
`--force` · `--limit N`
|
||||
🔴 **`path` в плане ОБЯЗАН начинаться с `/storage/Music/`.** `map_path()` снимает этот префикс;
|
||||
относительный путь трактуется как «вне /music» → файл уходит в MISSING, `к обработке: 0`.
|
||||
Тихий отказ: скрипт завершается `exit=0`, а правок ноль. Канон `APPLY-PLAN.csv` префикс имеет —
|
||||
сверять формат перед первым прогоном.
|
||||
|
||||
## 6. Инварианты (падают на старте, до записи)
|
||||
|
||||
|
||||
Reference in new issue
Block a user