Changeset 98acb97 in Klonkt for src/services/ArchiveExportService.js
- Timestamp:
- 08/14/2026 12:03:55 AM (4 weeks ago)
- Branches:
- main
- Children:
- eb071a7
- Parents:
- 9529d7b
- File:
-
- 1 edited
-
src/services/ArchiveExportService.js (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/services/ArchiveExportService.js
r9529d7b r98acb97 182 182 * @returns {Map<string,string>} trackId -> pad in het archief 183 183 */ 184 function audioBibliotheek(site, bestanden, tellingen, ontbrekend) { 184 /** 185 * Een hoes in het archief leggen. 186 * 187 * cover_url reisde wel mee als STRING en het bestand niet, dus kwam een track 188 * aan met een verwijzing naar een plaatje dat er niet was. Precies dezelfde 189 * fout als bij de audio zelf, een laag hoger: een verwijzing zonder bytes. 190 * 191 * @returns {string|null} het pad in het archief, of null 192 */ 193 function hoesToevoegen(url, origin, bestanden, tellingen) { 194 const schijf = localMediaPath(url, origin); 195 if (!schijf) return null; 196 let bytes = null; 197 try { bytes = fs.readFileSync(schijf); } catch { return null; } 198 const hash = sha256(bytes); 199 const naam = `media/${hash}${extOf(url) ? `.${extOf(url)}` : ''}`; 200 if (!bestanden.has(naam)) { bestanden.set(naam, bytes); tellingen.media += 1; } 201 return naam; 202 } 203 204 function audioBibliotheek(site, origin, bestanden, tellingen, ontbrekend) { 185 205 const kaart = new Map(); 186 206 let tracks = []; … … 217 237 credit: t.credit || undefined, license: t.license || undefined, 218 238 'shaer:coverUrl': t.cover_url || undefined, 239 // De BYTES van de hoes, niet alleen de verwijzing. 240 'shaer:coverFile': hoesToevoegen(t.cover_url, origin, bestanden, tellingen) || undefined, 219 241 'shaer:downloadable': t.downloadable ? 1 : 0, 220 242 'shaer:fediOpen': t.fedi_open ? 1 : 0, … … 243 265 id: p.id, name: p.title || '', artist: p.artist || undefined, year: p.year || undefined, 244 266 'shaer:kind': p.kind || undefined, 'shaer:coverUrl': p.cover_url || undefined, 267 'shaer:coverFile': hoesToevoegen(p.cover_url, origin, bestanden, tellingen) || undefined, 245 268 'shaer:tracks': db.prepare('SELECT track_id, position FROM playlist_tracks WHERE playlist_id = ? ORDER BY position') 246 269 .all(p.id).map((r) => ({ id: r.track_id, position: r.position })), … … 459 482 // De audiobibliotheek EERST. De posts verwijzen ernaar met [[track:]], dus de 460 483 // kaart moet klaar zijn voor de eerste post gebouwd wordt. 461 const audioKaart = audioBibliotheek(site, bestanden, tellingen, ontbrekend);484 const audioKaart = audioBibliotheek(site, origin, bestanden, tellingen, ontbrekend); 462 485 463 486 // Vaste volgorde: eerst op publicatiedatum, dan op id. Zonder tweede sleutel
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)