Ignore:
Timestamp:
08/08/2026 05:06:43 AM (5 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
2220c49
Parents:
fb22f78
git-author:
Robin <roboburr@…> (08/08/2026 05:05:39 AM)
git-committer:
Robin <roboburr@…> (08/08/2026 05:06:43 AM)
Message:

De feed draagt de muziek, niet alleen de wegwijzer ernaartoe

De actor adverteert /feed.xml als kanaal-feed sinds bdcb3a3. Maar die feed was
een blogfeed: twee items, NUL enclosures. Een podcast-app zoekt precies op
<enclosure>, dus voor hem was hij leeg hoe veel items er ook in stonden. Ik had
de wegwijzer gebouwd zonder te kijken waar hij heen wees.

Elke opengezette track is nu een eigen item met een enclosure: url, lengte in
bytes uit media.size, en het echte mime-type. Plus itunes:duration, want een
lezer die een lengte kan tonen hoort er een te krijgen.

EEN ITEM PER TRACK, en dat is geen stijlkeuze: RSS 2.0 staat maar EEN enclosure
per item toe. Een album in een item proppen zou van vijf nummers er vier laten
verdwijnen. Dezelfde tweedeling als in de outbox -- de post is het bericht, de
track is de publicatie -- en ze staan door elkaar op datum.

Geen <link> op een track-item: Klonkt heeft geen trackpagina, en een post over
vijf nummers is niet de pagina van dit ene nummer. De guid is daarom geen
permalink maar de stabiele AP-id van de track, zodat een lezer een track
herkent die hij al kende.

Welke tracks open zijn beslist siteOpenTracks in de AP-service, niet deze
route: die poortregel hoort op een plek te staan, en de test bewaakt dat een
gesloten track titel noch bestandsnaam lekt.

6 tests.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/services/ActivityPubService.js

    rfb22f78 r47ca083  
    10591059// open deel: een eerlijke telling over wat er werkelijk in de collectie staat,
    10601060// niet over wat wij thuis in de kast hebben.
     1061// m.size hoort erbij voor de RSS-enclosure: die eist een lengte in bytes.
    10611062const TRACK_KOLOMMEN = `t.id, t.title, t.artist, t.duration, t.cover_url, t.created_at,
    1062      m.filename, m.storage_path, m.mime_type`;
     1063     m.filename, m.storage_path, m.mime_type, m.size`;
    10631064
    10641065export function playlistOpenTracks(playlistId) {
Note: See TracChangeset for help on using the changeset viewer.