Changeset e9ec5e4 in Klonkt for src/services/ArchiveExportService.js
- Timestamp:
- 08/13/2026 06:16:49 PM (4 weeks ago)
- Branches:
- main
- Children:
- fbda20e
- Parents:
- 096f099
- File:
-
- 1 edited
-
src/services/ArchiveExportService.js (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/services/ArchiveExportService.js
r096f099 re9ec5e4 246 246 // Account address,Show boosts,Notify on new posts,Languages,Featured 247 247 // 248 // De vijfde kolom is van ons. Mastodon leest de eerste vier en negeert de rest, 249 // dus dit blijft daar gewoon importeerbaar. `Featured` is de kolom voor 250 // `highlighted`: accounts die je op je profiel uitlicht. `Show boosts` is onze 251 // `auto_boost`. `Notify` en `Languages` kent Klonkt niet en blijven leeg; ze 252 // staan er alleen omdat Mastodon de posities telt. 248 // `Featured` is onze kolom en draagt `auto_boost`: het vinkje dat in de UI 249 // "Uitgelicht" heet (tl.autoboost) en hun posts in jouw Cirkel laat meelopen. 250 // 251 // `Show boosts` blijft LEEG. Dat is bij Mastodon "toon de reblogs van deze 252 // persoon in mijn tijdlijn", en dat kent Klonkt niet. De verleiding is groot om 253 // er auto_boost in te schrijven omdat in beide het woord boost zit, maar het is 254 // een ander ding: dat van ons gaat over hun eigen posts in JOUW Cirkel, niet 255 // over andermans posts die zij doorgeven. `Notify` en `Languages` kent Klonkt 256 // evenmin. Die drie staan er omdat Mastodon de POSITIES telt. 253 257 const CSV_KOP = 'Account address,Show boosts,Notify on new posts,Languages,Featured'; 254 258 … … 273 277 let rijen = []; 274 278 try { 275 rijen = db.prepare(`SELECT actor_uri, handle, auto_boost , highlightedFROM ap_following279 rijen = db.prepare(`SELECT actor_uri, handle, auto_boost FROM ap_following 276 280 WHERE slug = ? AND status = 'accepted' 277 281 ORDER BY handle IS NULL, handle, actor_uri`).all(slug); … … 280 284 const regels = rijen.map((r) => [ 281 285 csvVeld((r.handle || r.actor_uri || '').replace(/^@/, '')), 282 r.auto_boost ? 'true' : 'false',283 ' false',284 '', 285 r. highlighted ? 'true' : 'false',286 '', // Show boosts: niet van ons 287 '', // Notify on new posts: idem 288 '', // Languages: idem 289 r.auto_boost ? 'true' : 'false', // Featured: het vinkje "Uitgelicht" 286 290 ].join(',')); 287 291 return `${CSV_KOP}\n${regels.join('\n')}\n`; … … 301 305 if (!regels.length) return uit; 302 306 // Een kopregel herkennen we aan het eerste veld; anders is regel 1 al data. 303 const start = /^\s*"?account address"?\s* ,/i.test(regels[0]) || /^\s*"?account address"?\s*$/i.test(regels[0]) ? 1 : 0;307 const start = /^\s*"?account address"?\s*(,|$)/i.test(regels[0]) ? 1 : 0; 304 308 for (const regel of regels.slice(start)) { 305 309 const velden = splitsCsvRegel(regel); … … 308 312 uit.push({ 309 313 address: adres, 310 autoBoost: /^(true|1|yes)$/i.test((velden[1] || '').trim()), 311 highlighted: /^(true|1|yes)$/i.test((velden[4] || '').trim()), 314 // Alleen kolom 5. Een bestand uit Mastodon heeft die niet en levert dus 315 // `false`, en dat is juist: hun "Show boosts" in kolom 2 gaat over iets 316 // anders en mag hier niet als uitgelicht binnenkomen. 317 featured: /^(true|1|yes)$/i.test((velden[4] || '').trim()), 312 318 }); 313 319 }
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)