Changeset 8ed36de in Klonkt for src/services/ActivityPubService.js
- Timestamp:
- 08/21/2026 04:57:20 PM (3 weeks ago)
- Branches:
- main
- Children:
- b0ccd0d
- Parents:
- 4e5fe29
- File:
-
- 1 edited
-
src/services/ActivityPubService.js (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/services/ActivityPubService.js
r4e5fe29 r8ed36de 37 37 import { TRACK_KOLOMMEN, 38 38 playlistOpenTracks, siteOpenTracks, openTrack, trackHostPosts, 39 buildTrackAudio, buildTrackCollection, buildTrackCreate, 39 buildTrackAudio, buildTrackCollection, buildTrackCreate, trackUri, 40 40 buildPlaylistCollection, listPlaylistsAP, playlistLinkTags, 41 41 buildPostTrackCollection, uitgavePost, … … 3107 3107 3108 3108 // Tell followers a post is gone (Delete + Tombstone) so it's removed from their feeds. 3109 export async function deliverDelete(site, post) { 3109 /** 3110 * Delete(Tombstone) voor een van onze EIGEN objecten, naar alle volgers. 3111 * 3112 * De romp staat apart omdat een post niet het enige is dat wij de draad op 3113 * sturen. Een track is een eersterangs Audio-object met een eigen id 3114 * (shaer-0nh), en die werd bij verwijderen nergens aangekondigd: de rij ging 3115 * weg, het object ging 404 en elke server die hem had geindexeerd hield hem 3116 * voor altijd. Op de hub kwam dat op 21-8 aan het licht als een track die naar 3117 * een dode URL wees. 3118 * 3119 * Het object-id komt van de aanroeper. Dat moet ook wel: bij verwijderen is de 3120 * rij vaak al weg, dus er valt niets meer op te zoeken. 3121 */ 3122 export async function deliverObjectDelete(site, objectId) { 3110 3123 const base = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, ''); 3111 if (!base || !site || !site.slug || ! post || !post.id) return;3124 if (!base || !site || !site.slug || !objectId) return; 3112 3125 const followers = fStmts().list.all(site.slug); 3113 3126 if (!followers.length) return; … … 3115 3128 const keys = getOrCreateKeys(site.slug); 3116 3129 const me = actorId(base, site.slug); 3117 const nid = noteId(base, post.id);3118 3130 const del = { 3119 3131 '@context': AP_CONTEXT, 3120 id: `${ nid}#delete-${Date.now()}-${rid()}`,3132 id: `${objectId}#delete-${Date.now()}-${rid()}`, 3121 3133 type: 'Delete', 3122 3134 actor: me, 3123 3135 to: [PUBLIC], 3124 object: { id: nid, type: 'Tombstone' },3136 object: { id: objectId, type: 'Tombstone' }, 3125 3137 }; 3126 3138 for (const inbox of inboxes) deliverWithRetry(site.slug, inbox, del, `${me}#main-key`, keys.private_pem); 3139 } 3140 3141 export async function deliverDelete(site, post) { 3142 const base = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, ''); 3143 if (!base || !post || !post.id) return; 3144 return deliverObjectDelete(site, noteId(base, post.id)); 3145 } 3146 3147 /** 3148 * Zelfde voor een track. Roep dit aan VOOR het verwijderen van de rij, net als 3149 * bij een post: daarna is `id` er nog wel maar de context niet meer. 3150 */ 3151 export async function deliverTrackDelete(site, trackId) { 3152 const base = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, ''); 3153 if (!base || !site || !site.slug || !trackId) return; 3154 return deliverObjectDelete(site, trackUri(base, site, trackId)); 3127 3155 } 3128 3156 … … 6966 6994 buildPostTrackCollection, uitgavePost, 6967 6995 buildLibrary, libraryId, 6968 followerCount, deliver, fetchActor, verifyRequest, handleInbox, deliverCreate, deliverDelete, deliver Update, deliverActorUpdate, resyncFeaturedPins,6996 followerCount, deliver, fetchActor, verifyRequest, handleInbox, deliverCreate, deliverDelete, deliverObjectDelete, deliverTrackDelete, deliverUpdate, deliverActorUpdate, resyncFeaturedPins, 6969 6997 feedCursor, feedChangesSince, waitForFeedChange, 6970 6998 getInteractions, getInteractionById, setInteractionBoosted, setInteractionLiked, buildReplyNote, getOutboxNote, getSentNotes, deliverReply, resolveRemoteNote, noteAudience, mayReadNote,
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)