Changeset 2091647 in Klonkt for src/routes/activitypub.js


Ignore:
Timestamp:
08/15/2026 07:03:06 AM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
732272a
Parents:
eac3229
Message:

Een Library-skelet, want zonder bak blijft een track een naam zonder geluid

GEMETEN, en dat gaf dit zijn richting. open.audio heeft onze vier tracks
binnengehaald langs de AP-weg -- met ONZE track-id's als fid, en met een
artist_credit dat Funkwhale zelf uit onze attributedTo afleidde. Precies het
object waarvan ons gevraagd werd het te sturen; dat hoefde dus niet, hij leidt
het af. Maar uploads is leeg en is_playable false.

Het audiobestand is niet het probleem: /audio/stream geeft 200, audio/mpeg,
2722880 bytes, ook anoniem en met een vreemde User-Agent. Ze hebben het niet
opgehaald. Bij Funkwhale hangt een upload aan een LIBRARY, en die hadden we niet.

DE VORM IS DIE UIT HUN DOCS: type Library, id, name, followers, totalItems,
first, last, plus attributedTo en summary. Onze pagedCollection deed het meeste
al; wat erbij komt is de naam, de volgers en het type.

DE ENIGE TERM DIE WE UIT HUN VOCABULAIRE OVERNEMEN, en het verschil met
track/ArtistCredit is de reden dat dit wel mag: die twee vragen ENTITEITEN waar
wij tekst hebben -- een artiest en een album zijn bij ons kolommen, en er een id
voor verzinnen zou beloven wat we niet kunnen waarmaken. Een library is precies
wat er al staat: onze open tracks, met een echte telling en een echt id. Er valt
niets te verzinnen.

SKELET, letterlijk. Er is GEEN volg-afhandeling. Onze bibliotheek is openbaar --
alles erin heeft fedi_open -- dus er valt niets goed te keuren en de
volgerslijst is leeg en eerlijk. Komt er ooit een besloten variant, dan hoort
daar het Follow/Accept-werk bij en dat is een eigen stuk.

Een test bewaakt dat een GESLOTEN track er niet in komt. De bak is openbaar, en
dat kan alleen als er niets in zit dat het niet is -- anders overrulet de
openbaarheid van de bak de poort van de track.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/activitypub.js

    reac3229 r2091647  
    11421142});
    11431143
     1144// De bibliotheek van deze site (shaer-0nh). Funkwhale's Audio draagt een
     1145// `library`, en dat is bij hen het haakje waar een UPLOAD aan komt te hangen --
     1146// zonder die bak blijft een binnengehaalde track daar een naam zonder geluid.
     1147// Gemeten op 13-8: open.audio had onze vier tracks wel, met onze eigen AP-id's,
     1148// maar uploads leeg en is_playable false.
     1149//
     1150// Openbaar, want alles erin is fedi_open. Er valt dus niets goed te keuren en de
     1151// volgerslijst blijft leeg: wie ons volgt volgt de ACTOR, niet de bak.
     1152router.get('/ap/users/:slug/library', (req, res) => {
     1153  const site = publicSite(req.params.slug);
     1154  if (!site) return res.status(404).end();
     1155  AP.sendAP(res, AP.buildLibrary(baseUrl(req), site, AP.siteOpenTracks(site.id)));
     1156});
     1157
     1158// De volgerscollectie die hun docs als vereist noemen. Leeg en eerlijk: er is
     1159// geen goedkeuringspad omdat de bibliotheek openbaar is.
     1160router.get('/ap/users/:slug/library/followers', (req, res) => {
     1161  const site = publicSite(req.params.slug);
     1162  if (!site) return res.status(404).end();
     1163  AP.sendAP(res, AP.pagedCollection(`${AP.libraryId(baseUrl(req), site)}/followers`, []));
     1164});
     1165
    11441166// Eén track, los op te halen. Een gesloten track is AFWEZIG, niet leeg: 404,
    11451167// dezelfde regel als in de collectie, zodat het bestaan van een gated nummer
Note: See TracChangeset for help on using the changeset viewer.