Hoezen en jaartallen komen nu uit de scan #56

Merged
roelof merged 1 commit from album-hoezen-en-jaartallen into main 2026-08-06 08:36:40 +02:00
Owner

Een plaat heeft een hoes en een jaar, en geen van beide staat in de database. Een collectie die door iets anders getagd binnenkomt, komt binnen met wat die tagger deed — en tot nu toe keek niemand. Over de 40.793 bestanden op schijf: 1.046 tracks zonder hoes en 12 zonder jaartal.

AlbumRepairService is de derde van de vier stappen van de scanknop en gaat van goedkoop naar duur. Per plaat wordt eerst uitgezocht wat er ontbreekt, dus een plaat die al heel is bereikt geen enkel verzoek:

  1. Omtypen wat er al isOther naar FrontCover. 825 van de 1.046, geen netwerk.
  2. Lenen binnen de plaat — draagt één track de hoes en de rest niet, dan is dat het antwoord. Het jaar net zo.
  3. MusicBrainz één keer, om de release-group: die geeft het id waar fanart.tv op sleutelt én de eerste verschijningsdatum, dus één verzoek regelt allebei wat er over is.
  4. fanart.tv om de hoes, met dat id.

De Albums-collectie draagt geen enkel release-group id — die albumtags zeggen al Bad Magic, dus IsVolumeTitle is onwaar en de scan heeft er nooit naar gevraagd. Daarom bestaat stap 3.

Onbekend doet mee, maar alleen aan stap 1: die rij is geen plaat maar één rij per artiest, dus lenen zou de hoes van de ene plaat aan de andere geven.

De albumrij is de plaat, dus de bestanden ervan lopen over collecties heen: Obsession houdt de elf tracks van de Albums-collectie én die ene van een RockHeaven-volume. Eén opgehaalde hoes bedient alle twaalf — dat is meteen de reden dat de 23 RockHeaven-tracks zonder hoes hier vanzelf mee opgelost worden.

Nagelopen

Tegen een wegwerp-PostgreSQL en kopieën van vijf platen, met alle vier de gevallen plus een gezonde controle:

SCAN:   added 51, skipped 0, failed 0
REPAIR: 4 records, 7 promoted, 24 covered, 11 dated, 0 still without a cover, 0 failed
REPAIR: 0 records, 0 promoted, 0 covered, 0 dated, 0 still without a cover, 0 failed

De tweede ronde schrijft niets — een bestand dat niets nodig heeft wordt niet geopend om geschreven te worden. De opgehaalde hoes van UFO's Obsession is de echte plaat en het jaar 1978 klopt; het omgetypeerde plaatje van Accepts Kaizoku-Ban is de echte hoes.

Eén waarschuwing waard

Elf bestanden in de bibliotheek lezen voor ffprobe als "twaalf audiostreams, geen tags" — negen van Agent Steels Omega Conspiracy, één van Brothers In Arms, één van Normaals Hoken Kreng. TagLib opent alle elf en vindt in tien ervan gewoon een hoes en een jaartal. Een inventarisatie van tagkwaliteit moet hier dus via TagLib, anders verzint hij werk dat er niet is. Staat zo in CLAUDE.md.

Een plaat heeft een hoes en een jaar, en geen van beide staat in de database. Een collectie die door iets anders getagd binnenkomt, komt binnen met wat die tagger deed — en tot nu toe keek niemand. Over de 40.793 bestanden op schijf: **1.046 tracks zonder hoes en 12 zonder jaartal**. `AlbumRepairService` is de **derde van de vier stappen van de scanknop** en gaat van goedkoop naar duur. Per plaat wordt eerst uitgezocht wat er ontbreekt, dus een plaat die al heel is bereikt geen enkel verzoek: 1. **Omtypen wat er al is** — `Other` naar `FrontCover`. 825 van de 1.046, geen netwerk. 2. **Lenen binnen de plaat** — draagt één track de hoes en de rest niet, dan is dat het antwoord. Het jaar net zo. 3. **MusicBrainz één keer**, om de release-group: die geeft het id waar fanart.tv op sleutelt *én* de eerste verschijningsdatum, dus één verzoek regelt allebei wat er over is. 4. **fanart.tv** om de hoes, met dat id. De Albums-collectie draagt **geen enkel release-group id** — die albumtags zeggen al `Bad Magic`, dus `IsVolumeTitle` is onwaar en de scan heeft er nooit naar gevraagd. Daarom bestaat stap 3. `Onbekend` doet mee, maar alleen aan stap 1: die rij is geen plaat maar één rij per artiest, dus lenen zou de hoes van de ene plaat aan de andere geven. De albumrij *is* de plaat, dus de bestanden ervan lopen over collecties heen: `Obsession` houdt de elf tracks van de Albums-collectie én die ene van een RockHeaven-volume. Eén opgehaalde hoes bedient alle twaalf — dat is meteen de reden dat de 23 RockHeaven-tracks zonder hoes hier vanzelf mee opgelost worden. ## Nagelopen Tegen een wegwerp-PostgreSQL en kopieën van vijf platen, met alle vier de gevallen plus een gezonde controle: ``` SCAN: added 51, skipped 0, failed 0 REPAIR: 4 records, 7 promoted, 24 covered, 11 dated, 0 still without a cover, 0 failed REPAIR: 0 records, 0 promoted, 0 covered, 0 dated, 0 still without a cover, 0 failed ``` De tweede ronde schrijft niets — een bestand dat niets nodig heeft wordt niet geopend om geschreven te worden. De opgehaalde hoes van UFO's *Obsession* is de echte plaat en het jaar 1978 klopt; het omgetypeerde plaatje van Accepts *Kaizoku-Ban* is de echte hoes. ## Eén waarschuwing waard Elf bestanden in de bibliotheek lezen voor **ffprobe** als "twaalf audiostreams, geen tags" — negen van Agent Steels *Omega Conspiracy*, één van *Brothers In Arms*, één van Normaals *Hoken Kreng*. TagLib opent alle elf en vindt in tien ervan gewoon een hoes en een jaartal. Een inventarisatie van tagkwaliteit moet hier dus via TagLib, anders verzint hij werk dat er niet is. Staat zo in `CLAUDE.md`.
Een plaat heeft een hoes en een jaar, en geen van beide staat in de database:
TrackEntity heeft ze niet en AlbumEntity.Year is alleen wat het eerst gescande
bestand toevallig zei. Een collectie die getagd door iets anders binnenkomt,
komt dus binnen met wat die tagger deed, en tot nu toe keek niemand. Over de
40.793 bestanden op schijf: 1.046 tracks zonder hoes en 12 zonder jaartal.

AlbumRepairService is de derde van de vier stappen van de scanknop en gaat van
goedkoop naar duur, waarbij per plaat eerst wordt uitgezocht wat er ontbreekt —
een plaat die al heel is bereikt geen enkel verzoek:

1. Omtypen wat er al is. Een bestand zonder FrontCover maar met een plaatje van
   het type Other is een bestand waarvan de tagger nooit zei wat het plaatje
   was. 825 van de 1.046, zonder netwerk.
2. Lenen binnen de plaat. Draagt één track de hoes en de rest niet, dan is dat
   het antwoord. Het jaar net zo.
3. MusicBrainz één keer, om de release-group. Die geeft het id waar fanart.tv
   op sleutelt én de eerste verschijningsdatum, dus één verzoek regelt allebei
   wat er over is. Het id gaat op de rij, zodat er nooit twee keer voor betaald
   wordt.
4. fanart.tv om de hoes, met dat id.

De Albums-collectie draagt geen enkel release-group id — die albumtags zeggen
al "Bad Magic", dus IsVolumeTitle is onwaar en de scan heeft er nooit naar
gevraagd. Daarom bestaat stap 3, en niet meteen fanart.tv.

AlbumMatch draagt nu het jaar. Beide opzoekingen rekenen de eerste verschijning
al uit om gelijk scorende platen te scheiden, dus meedragen kost niets — en het
is de enige bron voor een bestand dat zelf geen jaar heeft. Het gaat alleen een
bestand in dat er geen heeft.

"Onbekend" doet mee, maar alleen aan stap 1: die rij is geen plaat maar één rij
per artiest met al hun niet te plaatsen tracks, dus lenen zou de hoes van de ene
plaat aan de andere geven. Omtypen neemt niets van elders en blijft.

Er wordt nooit iets overschreven, en een bestand dat niets nodig heeft wordt
niet geschreven — een tweede ronde laat elke mtime met rust.

Nagelopen tegen een wegwerpdatabase en kopieën van vijf platen: 7 omgetypeerd,
24 hoezen gezet, 11 jaartallen ingevuld, tweede ronde nul. De opgehaalde hoes
van UFO's Obsession is de echte, en het jaar 1978 klopt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
roelof merged commit 3326b18dc8 into main 2026-08-06 08:36:40 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
KavalirOS/RockHeaven!56
No description provided.