Changes in src/routes/posts.js [e9ec5e4:d7e72b8] in Klonkt


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/posts.js

    re9ec5e4 rd7e72b8  
    12851285});
    12861286
    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 
    13311287router.post('/news/unfollow', requireSiteManager, async (req, res) => {
    13321288  const site = res.locals.site;
Note: See TracChangeset for help on using the changeset viewer.