Changeset 8cf8b5f in Klonkt
- Timestamp:
- 07/01/2026 09:31:54 PM (2 months ago)
- Branches:
- main
- Children:
- c06816e
- Parents:
- badbba8
- Files:
-
- 1 added
- 4 edited
-
CHANGELOG.de.md (modified) (1 diff)
-
CHANGELOG.md (modified) (1 diff)
-
CHANGELOG.nl.md (modified) (1 diff)
-
src/services/ActivityPubService.js (modified) (1 diff)
-
test/audio-attachment-art.test.js (added)
Legend:
- Unmodified
- Added
- Removed
-
CHANGELOG.de.md
rbadbba8 r8cf8b5f 7 7 8 8 ### Hinzugefügt 9 - **Cover-Art bei offen geteiltem Audio.** Ein offen im Fediverse geteilter Track trägt jetzt sein 10 Cover (oder das Beitragscover) mit, sodass Audio-Player, die Artwork unterstützen, es statt einer 11 leeren Kachel anzeigen. 9 12 - **Einen Beitrag im Fediverse melden.** Von einem Fediverse-Beitrag aus kannst du ihn jetzt den 10 13 Moderatoren seines Heimatservers melden, mit optionaler Begründung — und meldet jemand deine Seite, -
CHANGELOG.md
rbadbba8 r8cf8b5f 7 7 8 8 ### Added 9 - **Cover art on openly shared audio.** A track shared openly on the fediverse now carries its 10 cover art (or the post cover), so audio players that support artwork show it instead of a blank tile. 9 11 - **Report a post to the fediverse.** From a fediverse post you can now report it to the moderators 10 12 of its own home server, with an optional reason — and if someone reports your site, the report -
CHANGELOG.nl.md
rbadbba8 r8cf8b5f 7 7 8 8 ### Toegevoegd 9 - **Cover-art op openbaar gedeelde audio.** Een track die je openbaar op de fediverse deelt draagt 10 nu z'n cover-art mee (of de post-cover), zodat audiospelers die artwork ondersteunen die tonen in 11 plaats van een leeg vlak. 9 12 - **Rapporteer een post op de fediverse.** Vanaf een fediverse-post kun je die nu melden bij de 10 13 moderators van de eigen server van die post, met een optionele reden — en meldt iemand jouw site, -
src/services/ActivityPubService.js
rbadbba8 r8cf8b5f 299 299 const fn = r.filename || (r.storage_path || '').split('/').pop(); 300 300 if (!fn || seenA.has(fn)) return; seenA.add(fn); 301 openAudio.push({ type: 'Audio', mediaType: r.mime_type || 'audio/mpeg', url: `${base}/audio/stream/${encodeURIComponent(fn)}`, name: r.title || 'Audio' }); 301 const a = { type: 'Audio', mediaType: r.mime_type || 'audio/mpeg', url: `${base}/audio/stream/${encodeURIComponent(fn)}`, name: r.title || 'Audio' }; 302 // Cover art on the Audio attachment (AS2 `icon`): track cover, else the post cover. 303 // Mastodon renders it as the artwork thumbnail on its native audio player. 304 const art = abs(r.cover_url || post.cover_image_url || null); 305 if (art) a.icon = { type: 'Image', mediaType: mediaType(art), url: art }; 306 openAudio.push(a); 302 307 }; 303 const SEL = 'SELECT t.title, m.filename, m.storage_path, m.mime_type FROM audio_tracks t JOIN media m ON m.id = t.media_id WHERE t.fedi_open = 1 AND ';308 const SEL = 'SELECT t.title, t.cover_url, m.filename, m.storage_path, m.mime_type FROM audio_tracks t JOIN media m ON m.id = t.media_id WHERE t.fedi_open = 1 AND '; 304 309 try { 305 310 for (const mm of (post.content || '').matchAll(/\[\[track:([A-Za-z0-9_-]+)\]\]/g)) { const r = db.prepare(SEL + 't.id = ?').get(mm[1]); if (r) addRow(r); } 306 311 for (const mm of (post.content || '').matchAll(/\[\[album:([^\]]+)\]\]/g)) for (const r of db.prepare(SEL + 't.site_id = ? AND t.album = ? ORDER BY t.rowid').all(site.id, mm[1].trim())) addRow(r); 307 for (const mm of (post.content || '').matchAll(/\[\[playlist:([A-Za-z0-9_-]+)\]\]/g)) for (const r of db.prepare('SELECT t.title, m.filename, m.storage_path, m.mime_type FROM playlist_tracks pt JOIN audio_tracks t ON t.id = pt.track_id JOIN media m ON m.id = t.media_id WHERE t.fedi_open = 1 AND pt.playlist_id = ? ORDER BY pt.position').all(mm[1])) addRow(r);312 for (const mm of (post.content || '').matchAll(/\[\[playlist:([A-Za-z0-9_-]+)\]\]/g)) for (const r of db.prepare('SELECT t.title, t.cover_url, m.filename, m.storage_path, m.mime_type FROM playlist_tracks pt JOIN audio_tracks t ON t.id = pt.track_id JOIN media m ON m.id = t.media_id WHERE t.fedi_open = 1 AND pt.playlist_id = ? ORDER BY pt.position').all(mm[1])) addRow(r); 308 313 } catch { /* non-fatal */ } 309 314 }
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)