aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-10-22 10:09:34 -0700
committerAdam Soltys <[email protected]>2026-10-22 10:09:34 -0700
commit9aca27c717b713ff6e8ec8a2eeded1dff92c4735 (patch)
tree4912de65402cbfd206e856999dd1ac8421022041
parentaf95c8741c17a371ce03cfc07c54e8294ae68124 (diff)
downloadcoinosv3-server-9aca27c717b713ff6e8ec8a2eeded1dff92c4735.tar.gz
coinosv3-server-9aca27c717b713ff6e8ec8a2eeded1dff92c4735.zip
vmedia: pic.webp?s=row, a picture 360px tall in its own shape for the grid's justified rows
Co-Authored-By: Claude Opus 5.5 <[email protected]>
-rw-r--r--vmedia/server.js8
1 files changed, 5 insertions, 3 deletions
diff --git a/vmedia/server.js b/vmedia/server.js
index 6b6b69a..19e170c 100644
--- a/vmedia/server.js
+++ b/vmedia/server.js
@@ -12,9 +12,10 @@
// for Linux plays its sound over black). The first ask streams the
// transcode as it's made (fragmented MP4); once done it's a plain
// faststart file served in ranges and cached for everyone.
-// /vmedia/pic.webp?s=col|tile&u=<picture> the picture at the size the
-// feed paints it: 1100px wide for the column, or a 360px square of its
-// middle for the grid. The app makes these copies itself from a host that
+// /vmedia/pic.webp?s=col|tile|row&u=<picture> the picture at the size the
+// feed paints it: 1100px wide for the column, a 360px square of its
+// middle for a square tile, or 360px tall in its own shape for the grid's
+// justified rows. The app makes these copies itself from a host that
// allows CORS; one that doesn't (primal's blossom, nostrcheck, most
// personal sites) left the <img> painting the original, and a 9528×6328
// camera file froze a wheel scroll for 400 ms on its texture upload.
@@ -446,6 +447,7 @@ async function clipResponse(req, src, ip) {
const SHAPES = {
col: ['--size', '1100x>'], // the 560px column at 2x; never enlarged
tile: ['--size', '360x360>', '--smartcrop', 'centre'], // a 120–180px grid tile at 2–3x
+ row: ['--size', '720x360>'], // a tile in justified rows: the picture's own shape, 360px tall
};
const PIC_V = 1;
// what the bytes say the file is (the header is often octet-stream, sometimes a lie)