- Timestamp:
- 08/14/2026 01:55:45 AM (4 weeks ago)
- Branches:
- main
- Children:
- e9128bc
- Parents:
- 861c228
- Location:
- src
- Files:
-
- 2 edited
-
routes/activitypub.js (modified) (1 diff)
-
services/ActivityPubService.js (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/activitypub.js
r861c228 rdc802b4 212 212 limit: AP.PAGINA_GROOTTE, 213 213 }); 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 }); 215 221 if (audience === 'friend') { 216 222 // The owner's app builds its feed from this leg, and every note here is -
src/services/ActivityPubService.js
r861c228 rdc802b4 706 706 } catch { /* non-fatal */ } 707 707 } 708 body = body.replace(/\[\[(track|album|playlist):[^\]]+\]\]/gi, ''); 708 // ONVERTAALD voor een verhuizing (FEP-1580). De doelinstantie IS een Klonkt: 709 // die rendert [[track:]], [[album:]] en [[playlist:]] zelf en maakt er een 710 // speler van. Bakken we ze eerst om, dan komt er een tekstlink aan en is de 711 // speler weg. Onherstelbaar bovendien: het bakken STRIPT de shorthand en 712 // plakt achteraan hooguit VIER titels, dus een album van tien nummers 713 // overleeft het niet. 714 // 715 // Dezelfde regel als bij de outbox en de tracks: wie ondertekend vraagt 716 // namens de actor waar wij naartoe verhuisd zijn, krijgt onze eigen kijk. 717 if (!opts.rauweInhoud) body = body.replace(/\[\[(track|album|playlist):[^\]]+\]\]/gi, ''); 709 718 // External embeds ([[embed:url]]) → emit the bare URL as a link so Mastodon 710 719 // renders its OWN preview/player card (YouTube/Spotify/SoundCloud/etc) instead … … 714 723 return `<p><a href="${u}">${u}</a></p>`; 715 724 }); 716 if (hadAudio ) {725 if (hadAudio && !opts.rauweInhoud) { 717 726 // Elke titel als eigen link naar zijn anker; een titel zonder id (een 718 727 // albumnaam zonder tracks) blijft gewone tekst. … … 1039 1048 } 1040 1049 1041 export function buildCreate(base, site, post ) {1042 const note = buildNote(base, site, post );1050 export function buildCreate(base, site, post, opts = {}) { 1051 const note = buildNote(base, site, post, opts); 1043 1052 return { 1044 1053 '@context': AP_CONTEXT, … … 1123 1132 } 1124 1133 1125 export function buildOutbox(base, site, posts, tracks = [], { page = false, totalItems, alGesneden = false } = {}) {1134 export function buildOutbox(base, site, posts, tracks = [], { page = false, totalItems, alGesneden = false, rauweInhoud = false } = {}) { 1126 1135 const id = `${actorId(base, site.slug)}/outbox`; 1127 1136 const wanneer = (x) => Date.parse(x && x.published ? x.published : 0) || 0; 1128 1137 const items = [ 1129 ...(posts || []).map((p) => buildCreate(base, site, p )),1138 ...(posts || []).map((p) => buildCreate(base, site, p, { rauweInhoud })), 1130 1139 // Eén zoekopdracht voor alle tracks samen, niet per stuk. 1131 1140 ...(() => {
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)