Changes in src/routes/posts.js [d7e72b8:e9ec5e4] in Klonkt
- File:
-
- 1 edited
-
src/routes/posts.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/posts.js
rd7e72b8 re9ec5e4 1285 1285 }); 1286 1286 1287 // ── Je volglijst meenemen ───────────────────────────────────────── 1288 // 1289 // Zonder dit was verhuizen halfslachtig: de Move vertelt je VOLGERS waar je heen 1290 // ging, maar niets vertelde JOU wie jij volgde. Die lijst stond alleen in de 1291 // database die je achterlaat. 1292 router.get('/news/following.csv', requireSiteManager, async (req, res) => { 1293 const site = res.locals.site; 1294 const { followingCsv } = await import('../services/ArchiveExportService.js'); 1295 const csv = site ? followingCsv(site.slug) : null; 1296 if (!csv) return res.redirect('/following?error=' + encodeURIComponent('Je volgt nog niemand')); 1297 res.set('Content-Type', 'text/csv; charset=utf-8'); 1298 res.set('Content-Disposition', `attachment; filename="following-${site.slug}.csv"`); 1299 // Privé: dit is de lijst van wie jij volgt, niets voor een cache onderweg. 1300 res.set('Cache-Control', 'private, no-store'); 1301 res.send(csv); 1302 }); 1303 1304 router.post('/news/following/import', requireSiteManager, express.urlencoded({ extended: false, limit: '256kb' }), async (req, res) => { 1305 const site = res.locals.site; 1306 const csv = (req.body && req.body.csv) || ''; 1307 if (!site || !String(csv).trim()) return res.redirect('/following?error=' + encodeURIComponent('Geen lijst ontvangen')); 1308 1309 const { importFollowing } = await import('../services/ArchiveImportService.js'); 1310 // followActor als followFn: die doet de webfinger, stuurt de Follow en zet 1311 // auto_boost meteen goed. Zo blijft er één pad naar een volgrelatie. 1312 const r = await importFollowing(site, csv, { 1313 followFn: async (s, adres, uitgelicht) => { 1314 const uit = await ActivityPubService.followActor(s, adres, !!uitgelicht); 1315 // followActor meldt een fout als VELD, niet als exception. Zonder deze 1316 // vertaling telde een onvindbaar account gewoon als geslaagd mee. 1317 if (uit && uit.error) throw new Error(uit.error); 1318 return true; 1319 }, 1320 }); 1321 1322 const delen = [`${r.gevolgd} gevolgd`]; 1323 if (r.overgeslagen) delen.push(`${r.overgeslagen} overgeslagen`); 1324 if (r.mislukt.length) { 1325 const namen = r.mislukt.slice(0, 3).map((m) => m.adres).join(', '); 1326 delen.push(`${r.mislukt.length} mislukt (${namen}${r.mislukt.length > 3 ? '…' : ''})`); 1327 } 1328 res.redirect('/following?' + (r.mislukt.length ? 'error=' : 'success=') + encodeURIComponent(delen.join(', '))); 1329 }); 1330 1287 1331 router.post('/news/unfollow', requireSiteManager, async (req, res) => { 1288 1332 const site = res.locals.site;
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)