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


Ignore:
Timestamp:
08/14/2026 01:55:45 AM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
e9128bc
Parents:
861c228
Message:

Een verhuizing krijgt de rauwe inhoud, niet de gebakken

Robin: het is gelukt, maar posts laden de playlists, albums of audio niet. Het
bericht toonde "🎵 TikTik — listen on soundfabrics" als tekstlink, waar een
speler hoort te staan.

buildNote bakt de shorthand om voor de fediverse: [[track:]], [[album:]] en
[[playlist:]] worden GESTRIPT en er komt achteraan een blok met de titels. Dat
is precies goed voor Mastodon, en precies fout voor een verhuizing: de
doelinstantie is zelf een Klonkt en maakt van [[track:]] gewoon een speler.

Ik heb eerst overwogen om die link terug te vertalen naar de shorthand. Dat kan
niet zonder verlies:

  • de shorthand wordt gestript, dus zijn PLAATS in de post is weg; het blok komt altijd achteraan;
  • er gaan hooguit VIER titels in, dus een album van tien nummers is onherstelbaar;
  • [[album:]] en [[playlist:]] worden opgelost naar losse tracks, dus je krijgt tien spelers in plaats van een plaat.

Dus niet terugvertalen maar niet bakken. buildNote kreeg een optie
rauweInhoud, de outbox-route zet hem aan voor precies de actor waar dit
account naartoe verhuisd is. Dezelfde regel als bij de outbox-audience, de
tracks en de playlists: wie ondertekend vraagt namens de doel-actor krijgt onze
eigen kijk.

Gemeten op twee instanties, dezelfde post twee keer opgehaald:

anoniem <p>🎵 <strong><a href=".../tiktik#track-t-a">Nummer A</a>...
verhuizing <p>hoor dit</p>[[track:t-a]]

En [[playlist:pl]] komt heel aan, wat met terugvertalen nooit was gelukt.

Changed files:
src/services/ActivityPubService.js

  • buildNote kent rauweInhoud: niet strippen, geen listen-blok aanplakken
  • buildCreate en buildOutbox geven de optie door

src/routes/activitypub.js

  • de outbox zet hem aan voor de doel-actor van een Move

test/fep1580-migration.test.js

  • dezelfde post gebakken en rauw, naast elkaar

remarks: dit raakt alleen wie ondertekend vraagt namens moved_to. Voor de rest
van de fediverse verandert er niets aan de outbox. Suite 1001 groen, tegenproef
gedaan.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/activitypub.js

    r861c228 rdc802b4  
    212212    limit: AP.PAGINA_GROOTTE,
    213213  });
    214   const ob = AP.buildOutbox(baseUrl(req), site, posts, tracks, { page: nr, totalItems: totaal, alGesneden: true });
     214  // FEP-1580: de instantie waar dit account naartoe verhuisd is krijgt de
     215  // RAUWE inhoud, met [[track:]] en [[playlist:]] er nog in. Zij is een
     216  // Klonkt en rendert die zelf tot een speler. De gebakken variant komt
     217  // daar aan als tekstlink, en is bovendien onherstelbaar afgeknot: het
     218  // bakken plakt hooguit vier titels aan.
     219  const rauweInhoud = verifiedActor ? AP.isMoveTarget(site.slug, verifiedActor) : false;
     220  const ob = AP.buildOutbox(baseUrl(req), site, posts, tracks, { page: nr, totalItems: totaal, alGesneden: true, rauweInhoud });
    215221  if (audience === 'friend') {
    216222    // The owner's app builds its feed from this leg, and every note here is
Note: See TracChangeset for help on using the changeset viewer.