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


Ignore:
Timestamp:
08/09/2026 08:20:24 AM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
0677bac
Parents:
b2adc20
Message:

De post is de uitgave: losse tracks worden een collectie (shaer-38y)

Losse tracks gingen tot nu toe los de deur uit -- Audio-objecten die een lezer
nergens kon plaatsen. Ze horen bij elkaar omdat ze in dezelfde post staan, en
dat is wat /ap/users/<slug>/posts/<id>/tracks nu zegt. De post wijst er langs
dezelfde weg naartoe als naar een playlist: een Link-tag in de Note, want zonder
die link bestaat de collectie wel maar vindt niemand hem.

PUNT 1, DE VOLGORDE. De tracks staan in de volgorde van de POST en niet die van
de tabel. Zoals iemand ze heeft neergezet is de volgorde waarin ze bedoeld zijn.

PUNT 3, DE METADATA. Een playlist heeft een titel en soms een hoes; een post
heeft een titel, een tekst, een hoes, tags en een datum. Voor audio-gebaseerde
inhoud is de post de uitgave -- dat is waar iemand hem heeft uitgebracht en waar
het verhaal erbij staat. Zowel de collectie van losse tracks als een
playlist-collectie leent nu van de post die haar uitbrengt.

De posttekst wordt content en niet summary: in AS2 is summary de korte
samenvatting en content het lijf. Artiest en jaar blijven dus in summary staan,
want dat IS een samenvatting en de posttekst is dat niet. De eigen naam van de
playlist gaat niet verloren maar verhuist naar alsoKnownAs.

WIE LEENT ER UIT: alleen een post die er EEN muzikale eenheid van maakt. Staan
er twee collecties in, dan is de post niet meer de drager van een identiteit en
houdt de playlist de zijne. Dezelfde regel als in de afleiding, hier alleen
toegepast.

Een test die eerder vastlegde dat losse tracks GEEN Link-tag kregen is
omgedraaid, met de reden erbij: dat klopte zolang alleen een playlist een
collectie had.

Punt 2 van de bead (type afleiden) stond al in postMusicType.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/activitypub.js

    rb2adc20 ra5d14c7  
    784784});
    785785
     786// De losse tracks van een post als EEN uitgave (shaer-38y). Ze gingen tot nu
     787// toe los de deur uit -- Audio-objecten die een lezer nergens kon plaatsen. Ze
     788// horen bij elkaar omdat ze in dezelfde post staan, en die post leent zijn
     789// titel, tekst, hoes en tags uit. 404 als de post geen muzikale eenheid IS:
     790// dan is er niets om naar te wijzen, en dat is geen lege collectie maar een
     791// collectie die niet bestaat.
     792router.get('/ap/users/:slug/posts/:id/tracks', (req, res) => {
     793  const site = publicSite(req.params.slug);
     794  if (!site) return res.status(404).end();
     795  const post = db.prepare(
     796    "SELECT id, slug, title, excerpt, content, cover_image_url, tags FROM posts WHERE id = ? AND site_id = ? AND status = 'published'"
     797  ).get(req.params.id, site.id);
     798  if (!post) return res.status(404).end();
     799  const col = AP.buildPostTrackCollection(baseUrl(req), site, post);
     800  if (!col) return res.status(404).end();
     801  AP.sendAP(res, col);
     802});
     803
    786804router.get('/ap/users/:slug/playlists/:id', (req, res) => {
    787805  const site = publicSite(req.params.slug);
Note: See TracChangeset for help on using the changeset viewer.