Changeset 8bb3b09 in Klonkt


Ignore:
Timestamp:
08/22/2026 10:07:06 AM (3 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
4fbe2c1
Parents:
e679bce
Message:

Het bandje reist mee op de draad

Zonder dit bestond Mixtape alleen in onze eigen code. De playlist-collectie
blijft een OrderedCollection -- dat moet, want een lezer die type als tekst
uitpakt (Shaer) verliest anders het hele object -- en dus zei niets naar buiten
toe ooit dat dit een cassette was. Gemeten: in de Note van een mixtape-post
kwam het woord Mixtape niet voor, en de hub gooide zo'n bandje daarom stil weg.

Nu hangt het als BIJLAGE aan de Note, niet als het object zelf. De post blijft
daarmee een gewoon bericht voor Mastodon en alles wat het type niet kent; wie
het wel kent, vindt het bandje als geheel met zijn nummers in volgorde.

In een try/catch: een bandje minder is geen kapotte post.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/services/ActivityPubService.js

    re679bce r8bb3b09  
    3737import { TRACK_KOLOMMEN,
    3838  playlistOpenTracks, siteOpenTracks, openTrack, trackHostPosts,
    39   buildTrackAudio, buildTrackCollection, buildTrackCreate, trackUri,
     39  buildTrackAudio, buildTrackCollection, buildTrackCreate, trackUri, buildMixtapeObject, postMusicType,
    4040  buildPlaylistCollection, listPlaylistsAP, playlistLinkTags,
    4141  buildPostTrackCollection, uitgavePost,
     
    794794      return a; });
    795795  for (const a of openAudio) attachment.push(a); // fedi_open tracks → native Audio players
     796
     797  // HET BANDJE OP DE DRAAD. Zonder dit stuk bestaat `Mixtape` alleen in onze
     798  // eigen code: de playlist-collectie blijft namelijk een OrderedCollection
     799  // (dat moet, anders verliest een lezer die `type` als tekst uitpakt het hele
     800  // object), en dan zegt niets naar buiten toe ooit dat dit een cassette is.
     801  // Gemeten op 21-8: in de Note van een mixtape-post kwam het woord Mixtape
     802  // niet voor, en de hub gooide zo'n bandje daarom stil weg.
     803  //
     804  // Als bijlage en niet als het object zelf: de post blijft een Note, zodat
     805  // Mastodon en alles wat `Mixtape` niet kent gewoon een bericht met audio
     806  // ziet. Wie het type wel kent, vindt het bandje als geheel.
     807  try {
     808    const soort = postMusicType(post.content || '', site.id);
     809    if (soort && soort.type === 'mixtape' && soort.collectie && soort.collectie.id) {
     810      const pl = db.prepare('SELECT * FROM playlists WHERE id = ? AND site_id = ?')
     811        .get(soort.collectie.id, site.id);
     812      if (pl) {
     813        const tape = buildMixtapeObject(base, site, { ...pl, _post: post }, playlistOpenTracks(pl.id));
     814        if (tape) attachment.push(tape);
     815      }
     816    }
     817  } catch { /* een bandje minder is geen kapotte post */ }
    796818
    797819  // Inline @user@host mentions: the Mention tag objects + the mentioned actor URIs. Only
Note: See TracChangeset for help on using the changeset viewer.