Changeset 9a585bf in Klonkt for src/services/ap-core.js


Ignore:
Timestamp:
08/16/2026 01:29:11 PM (3 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
21257e4
Parents:
38d5e40
Message:

Track: published en artist_credit erbij

Twee van de vijf gaten naar Funkwhale's bibliotheek-ingest.

published was een omissie in de kleine Emissary-vorm, niet een keuze:
MusicEntitySerializer (regel 1278) eist het en we hebben created_at.

artist_credit leek de onmogelijke. Hun keten is Track -> ArtistCredit ->
Artist, en elke schakel wil id, name en published -- terwijl een artiest
bij ons een tekstkolom is. De MusicBrainz-koppeling van vorige week liet
zien dat dat niet klopt: de site-ACTOR is de artiest. Een echt,
opvraagbaar adres, met de sitetitel als naam en een musicbrainzId zodra
hij gekoppeld is. Er valt niets te verzinnen, en het is niet nieuw --
open.audio leidde op 13-8 al zelf een artist_credit af uit onze
attributedTo. We maken expliciet wat daar toch al gebeurde.

De artiestnaam van de track gaat naar credit en niet naar de entiteit.
Dat is waar hun model de credittekst verwacht, en er een id per
artiestnaam van maken zou identiteit uit een string zijn -- dezelfde fout
die we bij het album vermijden (shaer-756s).

@container: @list op artist_credit is geen opsmuk: ze lezen het veld met
first_attr(FW.artist_credit, "@list"), en zonder die declaratie
expandeert onze array er niet naar. Dan staat er iets dat er goed uitziet
en dat hun lezer niet vindt -- precies het soort stil gat waar deze week
al twee keer een dag in ging zitten.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/services/ap-core.js

    r38d5e40 r9a585bf  
    8888    Track: 'fw:Track',
    8989    track: { '@id': 'fw:track', '@type': '@id' },
     90    // ARTIEST-CREDIT. Hun TrackSerializer eist minstens een artist_credit, en
     91    // dat leek lang onmogelijk: het vraagt een Artist met een eigen id, en bij
     92    // ons was een artiest tekst. Sinds de MusicBrainz-koppeling (shaer-mbz) is
     93    // dat niet meer waar -- de site-ACTOR is de artiest. Een echte, opvraagbare
     94    // URI, met de sitetitel als naam en een musicbrainzId als hij gekoppeld is.
     95    // Er valt hier niets te verzinnen; open.audio leidde dit zelfs al zelf af
     96    // uit onze attributedTo (gemeten 13-8).
     97    //
     98    // `@container: @list` is GEEN opsmuk. Ze lezen dit veld met
     99    // first_attr(FW.artist_credit, "@list"), en zonder die declaratie expandeert
     100    // onze array niet naar een @list -- dan staat er iets dat er goed uitziet en
     101    // door hun lezer niet gevonden wordt. Letterlijk hun contexts.py regel 311.
     102    Artist: 'fw:Artist',
     103    ArtistCredit: 'fw:ArtistCredit',
     104    artist: { '@id': 'fw:artist', '@type': '@id' },
     105    artist_credit: { '@id': 'fw:artist_credit', '@type': '@id', '@container': '@list' },
     106    credit: 'fw:credit',
     107    musicbrainzId: 'fw:musicbrainzId',
    90108    position: 'schema:position',
    91109    bitrate: 'schema:bitrate',
Note: See TracChangeset for help on using the changeset viewer.