Changeset 084b046 in Klonkt for src/routes
- Timestamp:
- 08/12/2026 08:04:38 PM (3 months ago)
- Children:
- 5218863
- Parents:
- a5a6249
- File:
-
- 1 edited
-
src/routes/ward.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/ward.js
ra5a6249 r084b046 98 98 helpSent: i18nT(L, 'ward.help_sent'), 99 99 cancel: i18nT(L, 'ward.cancel'), 100 toSky: i18nT(L, 'ward.to_sky'), 101 toCards: i18nT(L, 'ward.to_cards'), 102 skyEmpty: i18nT(L, 'ward.sky_empty'), 100 103 }, 101 104 }; … … 217 220 }); 218 221 222 /** 223 * De gesprekken voor de hemel: iedereen met wie dit kind persoonlijk berichten 224 * heeft gewisseld, met hoe lang geleden dat voor het laatst was. 225 * 226 * De hemel toont GESPREKKEN, geen posts. Directe berichten leven in 227 * ap_mentions en niet in de tijdlijn, precies omdat een bericht aan genoemde 228 * mensen geen post is. Per tegenpartij houden we het jongste bericht: dat is 229 * wat de afstand tot het midden bepaalt. 230 */ 231 router.get('/api/conversations', requireAuth, (req, res) => { 232 const site = siteForUser(req); 233 if (!site) return res.status(404).json({ error: 'no_site' }); 234 const now = Date.now(); 235 const byUri = new Map(); 236 for (const m of AP.getDirectMessages(site.slug, 200)) { 237 if (!m.actor_uri) continue; 238 const when = Date.parse(m.published || m.created_at || '') || now; 239 const seen = byUri.get(m.actor_uri); 240 if (!seen || when > seen.when) { 241 byUri.set(m.actor_uri, { 242 uri: m.actor_uri, 243 name: m.actor_name || m.actor_handle || m.actor_uri, 244 handle: m.actor_handle || m.actor_uri, 245 icon: m.actor_icon || null, 246 when, 247 }); 248 } 249 } 250 const items = [...byUri.values()] 251 .sort((a, b) => b.when - a.when) 252 .map((c) => ({ ...c, ageMs: Math.max(0, now - c.when) })); 253 res.json({ items }); 254 }); 255 219 256 function pwaAsset(rel, type) { 220 257 return (req, res) => { … … 225 262 } 226 263 router.get('/app.js', pwaAsset('js/ward.js', 'application/javascript')); 264 // De hemel is een eigen module, zodat model en renderer los staan van de rest. 265 router.get('/sky.js', pwaAsset('js/ward-sky.js', 'application/javascript')); 227 266 router.get('/app.css', pwaAsset('css/ward.css', 'text/css')); 228 267
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)