- Timestamp:
- 08/10/2026 06:16:16 PM (4 weeks ago)
- Branches:
- main
- Children:
- fc9ca9d
- Parents:
- e215090
- Location:
- src
- Files:
-
- 2 edited
-
routes/activitypub.js (modified) (1 diff)
-
services/ActivityPubService.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/activitypub.js
re215090 r383e897 562 562 // dezelfde categorie als shaer:liked. Niet in totalItems persen: dat betekent 563 563 // 'hoeveel er zijn' en niet 'hoeveel jij nog niet zag'. 564 const ongelezen = AP.unreadPerConversation(auth.site.slug); 564 const ongelezen = AP.unreadPerConversation(auth.site.slug, { 565 messagesAllowed: P.messagesAllowed, 566 guardians: (() => { try { return new Set(Guardianship.listGuardians(auth.site.slug).map((g) => g.other_uri)); } catch { return new Set(); } })(), 567 }); 565 568 const gezien = new Set(); 566 569 for (const { head, item } of pairs) { -
src/services/ActivityPubService.js
re215090 r383e897 4410 4410 * Eigen berichten tellen nooit mee: je hebt jezelf gelezen. 4411 4411 */ 4412 export function unreadPerConversation(slug) { 4413 try { 4412 export function unreadPerConversation(slug, { messagesAllowed = true, guardians = new Set() } = {}) { 4413 try { 4414 // DE POORT TELT MEE. Staat messages dicht, dan toont de app die berichten 4415 // niet -- en dan mag een badge ze ook niet aankondigen, want dat getal 4416 // vertelt precies wat de poort verbergt. Wat er altijd door mag telt wel: 4417 // het guardian-kanaal en de boei. Zelfde regel als bij de serialisatie. 4414 4418 const rijen = db.prepare(` 4415 4419 SELECT u.other AS other, … … 4421 4425 WHERE u.direction = 'in' 4422 4426 AND (r.cursor IS NULL OR (u.stamp || '|' || u.ref) > r.cursor) 4423 GROUP BY u.other`).all({ slug }); 4427 AND (@open = 1 OR m.help_request = 1 OR u.other IN (SELECT value FROM json_each(@guardians))) 4428 GROUP BY u.other`) 4429 .all({ slug, open: messagesAllowed ? 1 : 0, guardians: JSON.stringify([...guardians]) }); 4424 4430 return new Map(rijen.map((r) => [r.other, { n: r.n, wave: !!r.wave }])); 4425 4431 } catch { return new Map(); }
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)