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


Ignore:
Timestamp:
08/07/2026 06:46:34 PM (5 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
3e1aab1, a8364ee
Parents:
4b5db37
Message:

Playlist-federatie van main naar feature/playlists

Robins besluit (7-8): de Funkwhale-interop is nog onbewezen, en aan main
hangen zeven instances zonder terugrolpad (shaer-ska). Het werk is niet weg:
het staat als verse cherry-picks op feature/playlists en komt terug via een
gewone merge zodra de interop-test iets bewijst.

Draait terug: c25eff7 (playlist als AP-collectie) en c1df3e9 (vindbaarheid:
streams, de lijst, de Link-tag).

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/activitypub.js

    r4b5db37 rda84110  
    630630});
    631631
    632 // ── Playlist als dereferenceerbare AP-collectie (shaer-ayc) ───────
    633 // De eerste stap van het Funkwhale-spoor: een playlist heeft een id, dus een
    634 // stabiele URI. Alleen het fedi_open-deel staat erin (de poort is per bestand
    635 // en eenrichtings; zie setAudioFediOpen in routes/posts.js) — een collectie
    636 // zonder open tracks bestaat wel maar is leeg, want de playlist zelf is niet
    637 // geheim, alleen de bestanden erachter.
    638 // De lijst van alle playlist-collecties (shaer-ayc, stap 2). De actor wijst
    639 // hierheen via AS2 `streams`. Kaal standaard; verrijkte stubs op verzoek
    640 // (FEP-9876), dezelfde conventie als followers/following.
    641 router.get('/ap/users/:slug/playlists', (req, res) => {
    642   const site = publicSite(req.params.slug);
    643   if (!site) return res.status(404).end();
    644   AP.sendAP(res, AP.listPlaylistsAP(baseUrl(req), site, wantsEnriched(req, res)));
    645 });
    646 
    647 router.get('/ap/users/:slug/playlists/:id', (req, res) => {
    648   const site = publicSite(req.params.slug);
    649   if (!site) return res.status(404).end();
    650   const pl = db.prepare('SELECT id, title, artist, year, cover_url, kind FROM playlists WHERE id = ? AND site_id = ?')
    651     .get(req.params.id, site.id);
    652   if (!pl) return res.status(404).end();
    653   AP.sendAP(res, AP.buildPlaylistCollection(baseUrl(req), site, pl, AP.playlistOpenTracks(pl.id)));
    654 });
    655 
    656632// ── Note ──────────────────────────────────────────────────────────
    657633router.get('/ap/notes/:id', async (req, res) => {
Note: See TracChangeset for help on using the changeset viewer.