Changeset 14f7cb2 in Klonkt for src/services/ActivityPubService.js
- Timestamp:
- 08/06/2026 09:10:41 AM (5 weeks ago)
- Branches:
- main
- Children:
- 68a4d1b
- Parents:
- 0e27e54
- git-author:
- Robin <roboburr@…> (08/06/2026 09:10:40 AM)
- git-committer:
- Claude (agent) <aiclaude@…> (08/06/2026 09:10:41 AM)
- File:
-
- 1 edited
-
src/services/ActivityPubService.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/services/ActivityPubService.js
r0e27e54 r14f7cb2 3429 3429 * werk voor fase 2, mét datamigratie. 3430 3430 */ 3431 /** 3432 * Wat heb IK met dit object gedaan? Leest de tussentabel, de bron van waarheid 3433 * sinds shaer-9e9 fase 2. Vervangt getMyReactions en getTimelineReaction, die 3434 * dezelfde vraag beantwoordden uit twee verschillende bronnen. 3435 */ 3436 export function getReaction(slug, uri) { 3437 try { 3438 const rows = (slug && uri) 3439 ? db.prepare('SELECT kind FROM ap_my_reactions WHERE site_slug = ? AND target_uri = ?').all(slug, uri) 3440 : []; 3441 return { liked: rows.some((r) => r.kind === 'like'), boosted: rows.some((r) => r.kind === 'boost') }; 3442 } catch { return { liked: false, boosted: false }; } 3443 } 3444 3445 /** 3446 * Dezelfde vraag voor een hele pagina in EEN query. De C2S-tijdlijn zet 3447 * shaer:liked op elke post; per rij vragen zou dat een N+1 maken, en dan had je 3448 * een consistentiebug geruild voor een traagheidsbug. 3449 */ 3450 export function getReactionsFor(slug, uris) { 3451 const out = new Map(); 3452 const list = [...new Set((uris || []).filter(Boolean))].slice(0, 500); 3453 if (!slug || !list.length) return out; 3454 try { 3455 const rows = db.prepare( 3456 `SELECT target_uri, kind FROM ap_my_reactions 3457 WHERE site_slug = ? AND target_uri IN (${list.map(() => '?').join(',')})`, 3458 ).all(slug, ...list); 3459 for (const r of rows) { 3460 const cur = out.get(r.target_uri) || { liked: false, boosted: false }; 3461 if (r.kind === 'like') cur.liked = true; 3462 if (r.kind === 'boost') cur.boosted = true; 3463 out.set(r.target_uri, cur); 3464 } 3465 } catch { /* leeg = niets gereageerd, en dat is een veilige uitkomst */ } 3466 return out; 3467 } 3468 3431 3469 export function setReaction(slug, uri, kind, on, opts = {}) { 3432 3470 if (!slug || !uri || (kind !== 'like' && kind !== 'boost')) return; … … 4809 4847 gateOutgoingFollow, performApprovedFollow, 4810 4848 parseOwnPoll, pollTally, ownPollView, deliverPollUpdate, maybeCrawlThread, sendReport, localMentionSlugs, 4811 autoBoostCount, boostedCount, markBoosted, unmarkBoosted, markLiked, unmarkLiked, setReaction, get TimelineReaction, upsertBoostedNote, getCirkelPosts, getCirkelMembers, selfHealTimeline,4849 autoBoostCount, boostedCount, markBoosted, unmarkBoosted, markLiked, unmarkLiked, setReaction, getReaction, getReactionsFor, getTimelineReaction, upsertBoostedNote, getCirkelPosts, getCirkelMembers, selfHealTimeline, 4812 4850 getNotifications, listBlocks, isBlockedAny, blockTarget, unblock, 4813 4851 deliverWithRetry, enqueueDelivery, processDeliveryQueue, startDeliveryWorker,
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)