De audio-tegel opgevrolijkt: golfvorm als thumbnail en een echte titel
Een audiopost uit Shaer was op Klonkt een kale gradient met (untitled)
(Robins schermafdruk, 30-7). Twee dingen tegelijk gefixt.
De thumbnail: de upload-leg tekent bij audio nu een golfvorm met de
gebundelde ffmpeg (showwavespic, wit op transparant) naar
<naam>.poster.png, precies zoals video zijn stilstaand beeld krijgt. Die
golfvorm rijdt mee als data-poster op de audio-tag (voor de tegels), in
c2s_attachments en als AS2-icon op het gefedereerde Audio-attachment. De
tegel toont hem OVER de eigen hue-gradient, dus elke audiopost houdt
zijn kleur en krijgt zijn vorm.
De titel: C2S-posts hebben geen titel, dus elke Shaer-post toonde
(untitled). Tegels en kaarten leiden de titel nu af: eerst de eigen
woorden van de post (afgekapt op 64), anders een vriendelijk typelabel
(muzieknoot audio, pijl video), en pas als er echt niets is (untitled).
Een tegel die zijn beeld al toont forceert geen label meer.
Changed files:
src/routes/activitypub.js
- uploadMedia: audio/* -> showwavespic-golfvorm naar .poster.png
(best-effort, zelfde patroon als de videoposter)
src/services/ActivityPubService.js
- c2sCreatePost: posterExt per type (video .jpg, audio .png); de
audio-tag krijgt data-poster
src/views/partials/post-tile.ejs
- audio-detectie + golfvorm over de gradient; titelcascade
(titel -> tekst -> typelabel)
src/views/partials/post-card.ejs
- zelfde spiegel: golfvorm als cover met eigen accent-gradient,
zelfde titelcascade
src/assets/css/style.css
- .grid-tile-wave: contain, padding, transparant op de gradient
test/c2s-compose.test.js
- audio-golfvormketen: data-poster op de tag, poster in de store,
icon op het gefedereerde attachment
remarks: bestaande audioposts kregen hun upload voor deze code en hebben
dus nog geen golfvorm-bestand; die tonen nu wel het muzieknoot-label. Een
verse audiopost laat het hele effect zien. ffmpeg-commando en beide
templates hier lokaal gesmoke-test (RGBA-png, render ok), 345 tests
groen.
-robo
Co-Authored-By: Claude Opus 4.8 <noreply@…>