Changeset aebde2b in Klonkt for src/services/i18n.js

Timestamp:
08/16/2026 02:03:14 PM (3 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
7090fd2
Parents:
d68ee3a
Message:

Album als eigen object op de draad (shaer-756s, stap 2)

De uitgave -- een playlist met kind='album' -- gaat nu als fw:Album mee op
elke track die erop staat: type, id, name, published, released,
musicbrainzId, image en een eigen artist_credit.

INGESLOTEN EN NIET ALS URI, en dat is de kern. Hun TrackSerializer heeft
album = AlbumSerializer(): een object met eigen verplichte velden. Een
kale URI expandeert naar een knoop met alleen een @id en valt daar af --
precies waarom Emissary's tracks bij Funkwhale net zo goed stranden,
terwijl ze het veld wel sturen. Als URI staat het album daarnaast op het
Audio-object zelf, zoals Funkwhale 2.0 en Emissary allebei doen.

Het id is de BESTAANDE playlist-collectie. Geen tweede adres voor een
ding dat er al een heeft, en die URI draagt nu dezelfde albumvelden zodat
er hetzelfde staat als in het ingesloten object.

type op die collectie blijft OrderedCollection, en blijft een STRING.
Er stond hier even ['OrderedCollection','Album'] -- geldig AS2, en het is
ook werkelijk allebei -- maar een bestaande test viel erover en had
gelijk: een lezer die type als tekst uitpakt (Shaer) verliest dan in
stilte de hele playlist. Het kost niets, want hun AlbumSerializer
declareert geen type-veld en valideert het dus niet.

trackAlbums() zoekt in EEN query op, zoals trackHostPosts: per track
vragen wordt bij tweehonderd nummers tweehonderd queries. Alleen
kind='album' telt mee -- een mixtape is geen uitgave, en zou hij hier wel
een album opleveren dan was dat onderscheid decoratie.

artistCredit() is nu gedeeld door track en album. Twee keer los bouwen is
hoe een nummer en de plaat waar hij op staat een verschillende artiest
krijgen.

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

(No files)

Note: See TracChangeset for help on using the changeset viewer.