Changeset 7090fd2 in Klonkt for src/services/music/index.js
- Timestamp:
- 08/16/2026 02:12:14 PM (3 weeks ago)
- Branches:
- main
- Children:
- 9026de5
- Parents:
- aebde2b
- File:
-
- 1 edited
-
src/services/music/index.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/services/music/index.js
raebde2b r7090fd2 451 451 const uit = new Map(); 452 452 for (const r of rijen) if (!uit.has(r.tid)) uit.set(r.tid, r); 453 // De post die deze plaat uitbrengt, EEN keer per album opgezocht en niet per 454 // track: uitgavePost() doet er echt werk voor (hij leest de typering van de 455 // post) en een site heeft veel meer nummers dan platen. 456 // 457 // WAAROM DIT ERBIJ MOET: buildPlaylistCollection laat leenVanPost de naam van 458 // de post overnemen -- de post IS de uitgave. Zonder dezelfde lening hier zou 459 // het ingesloten Album "Cartoon Epic" heten en zijn eigen URI "Geen koffie, 460 // wel thee!". Een id met twee namen, en dat is precies wat op 16-8 uit de 461 // meting rolde. 462 const perAlbum = new Map(); 463 for (const r of uit.values()) { 464 if (perAlbum.has(r.id)) continue; 465 perAlbum.set(r.id, uitgavePost(siteId, r.id)); 466 } 467 for (const r of uit.values()) r._post = perAlbum.get(r.id) || null; 453 468 return uit; 454 469 } … … 470 485 if (!pl) return null; 471 486 const abs = (u) => !u ? null : (/^https?:/i.test(u) ? u : `${base}${u.startsWith('/') ? '' : '/'}${u}`); 472 const wanneer = pl.created_at ? new Date(pl.created_at).toISOString() : new Date(0).toISOString(); 487 // GEEN epoch als terugval. `published` is bij hen verplicht, maar 1970 is een 488 // ANTWOORD en geen ontbrekend veld -- en dat is erger: een lezer kan een gat 489 // opmerken, een leugen niet. playlists.created_at heeft een default, dus als 490 // hij hier ontbreekt is er een leespad dat de kolom laat vallen. Dat willen we 491 // zien, niet maskeren. (Zo kwam op 16-8 de route boven water die id, title, 492 // artist, year, cover_url en kind selecteerde en de rest niet.) 493 const wanneer = pl.created_at ? new Date(pl.created_at).toISOString() : null; 494 // Dezelfde lening als in buildPlaylistCollection: de post die de plaat 495 // uitbrengt geeft zijn titel, en de eigen titel blijft als alsoKnownAs staan. 496 const titel = (pl._post && pl._post.title) || pl.title; 473 497 const album = { 474 498 type: 'Album', 475 499 id: `${actorId(base, site.slug)}/playlists/${pl.id}`, 476 name: pl.title,477 published: wanneer,500 name: titel, 501 ...(wanneer ? { published: wanneer } : {}), 478 502 attributedTo: actorId(base, site.slug), 479 artist_credit: artistCredit(base, site, pl.artist, wanneer ),503 artist_credit: artistCredit(base, site, pl.artist, wanneer || new Date().toISOString()), 480 504 }; 505 if (titel !== pl.title) album.alsoKnownAs = pl.title; 481 506 // `released` alleen als er een ECHTE datum is. `year` vult hem niet aan: een 482 507 // jaartal is geen dag, en dat is de reden dat release_date bestaat.
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)