Changeset 6dd26e5 in Klonkt for src/services
- Timestamp:
- 07/30/2026 11:48:53 AM (6 weeks ago)
- Branches:
- main
- Children:
- 1f640ff
- Parents:
- 67f7150
- File:
-
- 1 edited
-
src/services/ActivityPubService.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/services/ActivityPubService.js
r67f7150 r6dd26e5 2441 2441 .map((a) => { 2442 2442 const entry = { url: a.url, mediaType: String(a.mediaType), name: String(a.name || '').slice(0, 120) }; 2443 // A video's poster frame, when the upload leg made one (shaer-zowq): 2444 // rides along so the tag, the federated attachment and the apps all 2445 // show a still instead of a black box. 2446 if (entry.mediaType.startsWith('video/')) { 2443 // The poster the upload leg made, when it did: a video's still frame 2444 // (shaer-zowq, .poster.jpg) or an audio's waveform (Robins vraag 30-7, 2445 // .poster.png). Rides along so the tag, the federated attachment and 2446 // the apps all have something to show instead of a bare box. 2447 const posterExt = entry.mediaType.startsWith('video/') ? '.poster.jpg' 2448 : entry.mediaType.startsWith('audio/') ? '.poster.png' : null; 2449 if (posterExt) { 2447 2450 try { 2448 2451 const mediaRoot = path.resolve(process.env.MEDIA_PATH || './storage/media'); 2449 2452 const rel = entry.url.replace(/^\/media\//, ''); 2450 if (fs.existsSync(path.join(mediaRoot, rel + '.poster.jpg'))) entry.poster = entry.url + '.poster.jpg';2453 if (fs.existsSync(path.join(mediaRoot, rel + posterExt))) entry.poster = entry.url + posterExt; 2451 2454 } catch { /* no poster is fine */ } 2452 2455 } … … 2461 2464 const mediaHtml = media.map((a) => { 2462 2465 if (a.mediaType.startsWith('image/')) return `<p><img src="${a.url}" alt="${esc(a.name)}"></p>`; 2463 if (a.mediaType.startsWith('audio/')) return `<p><audio controls preload="metadata" src="${a.url}"></audio></p>`; 2466 // data-poster: <audio> has no poster attribute, but the tile derivation 2467 // reads this one to show the waveform (post-tile/post-card). 2468 if (a.mediaType.startsWith('audio/')) return `<p><audio controls preload="metadata"${a.poster ? ` data-poster="${a.poster}"` : ''} src="${a.url}"></audio></p>`; 2464 2469 const poster = a.poster ? ` poster="${a.poster}"` : ''; 2465 2470 return `<p><video controls playsinline preload="metadata"${poster} src="${a.url}"></video></p>`;
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)