Changeset 1976a10 in Klonkt
- Timestamp:
- 08/24/2026 04:57:45 PM (2 weeks ago)
- Branches:
- main
- Children:
- 3e7dde2
- Parents:
- db81e56
- Location:
- src/services
- Files:
-
- 1 added
- 1 edited
-
ActivityPubService.js (modified) (2 diffs)
-
ap-cirkel.js (added)
Legend:
- Unmodified
- Added
- Removed
-
src/services/ActivityPubService.js
rdb81e56 r1976a10 112 112 }; 113 113 // Stap 9 (shaer-drc): de inbox woont in ap-inbox.js. De schakelkast krijgt 114 // onderaan zijn tweeendertig werktuigen via wireInbox.114 // onderaan zijn vierendertig werktuigen via wireInbox. 115 115 import { handleInbox, wireInbox } from './ap-inbox.js'; 116 116 export { handleInbox }; 117 // Stap 10 (shaer-drc): de Cirkel woont in ap-cirkel.js. Geen wire: hij leest 118 // alleen db. 119 import { autoBoostCount, getCirkelPosts, getCirkelMembers } from './ap-cirkel.js'; 120 export { autoBoostCount, getCirkelPosts, getCirkelMembers }; 117 121 // Doorgeven wat hier altijd vandaan kwam, zodat elke bestaande aanroep blijft werken. 118 122 export { AP_CONTEXT, actorId, noteId, guessMediaType }; … … 2818 2822 function emojiJsonOf(map) { return (map && Object.keys(map).length) ? JSON.stringify(map) : null; } 2819 2823 2820 // ── Cirkel = posts from the accounts you auto-boost ("feature an artist") ──2821 let _abCount, _cirkelPosts, _cirkelMembers;2822 export function autoBoostCount(slug) {2823 try { if (!_abCount) _abCount = db.prepare('SELECT COUNT(*) AS n FROM ap_following WHERE slug = ? AND auto_boost = 1'); return _abCount.get(slug).n; } catch { return 0; }2824 }2825 export function getCirkelPosts(slug, limit, offset) {2826 try {2827 // Cirkel = posts from featured (auto_boost) accounts + posts you boosted2828 // (t.boosted), mixed by date. One row per note in ap_timeline → no duplicates.2829 if (!_cirkelPosts) _cirkelPosts = db.prepare(`2830 SELECT t.id, t.author_uri, t.author_name, t.author_handle, t.author_icon, t.author_url,2831 t.content, t.url, t.published, t.media_json, t.nsfw, t.cw,2832 (rb.target_uri IS NOT NULL) AS boosted2833 FROM ap_timeline t2834 LEFT JOIN ap_following f ON f.slug = t.slug AND f.actor_uri = t.author_uri2835 -- Uit de tussentabel, niet uit t.boosted: die kolom is een afgeleide. De2836 -- UNIQUE(site_slug, target_uri, kind) garandeert hoogstens één match, dus2837 -- deze join kan geen rijen verdubbelen.2838 LEFT JOIN ap_my_reactions rb ON rb.site_slug = t.slug AND rb.target_uri = t.id AND rb.kind = 'boost'2839 WHERE t.slug = ? AND (f.auto_boost = 1 OR rb.target_uri IS NOT NULL)2840 ORDER BY COALESCE(t.published, t.created_at) DESC, t.rowid DESC2841 LIMIT ? OFFSET ?`);2842 return _cirkelPosts.all(slug, limit || 60, offset || 0);2843 } catch { return []; }2844 }2845 export function getCirkelMembers(slug) {2846 try { if (!_cirkelMembers) _cirkelMembers = db.prepare('SELECT name, url, icon FROM ap_following WHERE slug = ? AND auto_boost = 1 ORDER BY name'); return _cirkelMembers.all(slug); } catch { return []; }2847 }2848 2824 2849 2825
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)