Changeset 7090fd2 in Klonkt for scripts/funkwhale-gat.mjs


Ignore:
Timestamp:
08/16/2026 02:12:14 PM (3 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
9026de5
Parents:
aebde2b
Message:

Album: geen epoch-datum, en een naam die overal hetzelfde is

Gevonden door de twee representaties van hetzelfde id naast elkaar te
leggen, met een echte album-playlist op dev (Robin, 16-8).

EEN ID, TWEE NAMEN. Het ingesloten Album heette "Cartoon Epic" en zijn
eigen URI "Geen koffie, wel thee!". buildPlaylistCollection laat
leenVanPost de titel van de uitgavepost overnemen -- de post IS de
uitgave -- en buildAlbumObject deed dat niet. Nu leent hij dezelfde
titel, met de eigen titel als alsoKnownAs, precies zoals leenVanPost.
De uitgavepost wordt EEN keer per album opgezocht en niet per track:
uitgavePost() leest de typering van de post, en een site heeft veel meer
nummers dan platen.

PUBLISHED 1970-01-01. buildAlbumObject viel terug op epoch als
created_at ontbrak, en dat gebeurde: de AP-route selecteerde id, title,
artist, year, cover_url en kind -- en de rest niet. Daarmee ontbraken
released en musicbrainzId daar trouwens ook.

Twee dingen gerepareerd, en de terugval zelf is het derde: er komt nu
GEEN published meer als er geen datum is. Het veld is bij hen verplicht,
dus dat kost ons een item -- maar 1970 is een antwoord en geen ontbrekend
veld, en een lezer kan een gat opmerken en een leugen niet. Ontbreekt het
nog, dan is er een leespad dat de kolom laat vallen, en dat willen we
zien.

Ook PlaylistService.get() geeft created_at nu terug.

Co-Authored-By: Claude Opus 5 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • scripts/funkwhale-gat.mjs

    raebde2b r7090fd2  
    5252const items = pagina.items || pagina.orderedItems || [];
    5353if (!items.length) { console.log('geen items in de bibliotheek'); process.exit(1); }
    54 const a = items[0];
    5554
    56 console.log(`bron: ${BRON}\nitem: ${a.name}\n`);
     55// ALLE items, niet het eerste. De eerste versie keek naar items[0] en gaf
     56// daarover een oordeel alsof het over de bibliotheek ging -- op 16-8 meldde hij
     57// zo `track.album` als GAT terwijl drie van de vier tracks hem wel hadden: het
     58// ene nummer dat hij toevallig pakte stond niet op een plaat. Een steekproef
     59// van een is geen meting, en een meting die je vertrouwt moet zeggen hoeveel.
     60console.log(`bron: ${BRON}\nitems: ${items.length}\n`);
     61
    5762let gaten = 0;
    58 const toon = (lijst, waarde) => {
     63const toon = (kop, lijst, kies) => {
     64  console.log(kop);
    5965  for (const [naam, test] of lijst) {
    60     let ok = false;
    61     try { ok = !!test(waarde); } catch { ok = false; }
    62     if (!ok) gaten++;
    63     console.log(`  ${ok ? 'OK ' : 'GAT'}  ${naam}`);
     66    let ok = 0;
     67    for (const a of items) { try { if (test(kies(a))) ok++; } catch { /* telt als niet ok */ } }
     68    const staat = ok === items.length ? 'OK ' : (ok === 0 ? 'GAT' : 'DEELS');
     69    if (ok !== items.length) gaten++;
     70    console.log(`  ${staat.padEnd(5)} ${naam}${ok !== items.length ? `  (${ok}/${items.length})` : ''}`);
    6471  }
    6572};
    66 console.log('UploadSerializer (regel 1741):');
    67 toon(UPLOAD, a);
    68 console.log('\nTrackSerializer (regel 1569 + MusicEntity 1278):');
    69 toon(TRACK, a.track);
     73toon('UploadSerializer (regel 1741):', UPLOAD, (a) => a);
     74console.log();
     75toon('TrackSerializer (regel 1569 + MusicEntity 1278):', TRACK, (a) => a.track);
    7076
    71 console.log(`\n${gaten === 0 ? 'niets meer nodig voor hun ingest' : gaten + ' veld(en) te gaan'}`);
     77console.log(`\n${gaten === 0 ? 'niets meer nodig voor hun ingest' : gaten + ' veld(en) nog niet op ELK item'}`);
Note: See TracChangeset for help on using the changeset viewer.