From 1b5fcfed2f0ed6bfb34464dbefbc703236f17263 Mon Sep 17 00:00:00 2001 From: Fisto Date: Wed, 16 Sep 2026 12:52:44 +0200 Subject: [PATCH] Resolve external embed previews and keep their real MIME types --- CURRENT.md | 7 ++ docs/media-scraper.md | 8 ++- docs/media.md | 12 +++- media-scrape/src/download.ts | 22 +++++- media-scrape/src/embed-preview.ts | 114 ++++++++++++++++++++++++++++++ media-scrape/src/engine.ts | 29 ++++++-- media-scrape/src/index.ts | 1 + media-scrape/src/store.ts | 11 ++- media-scrape/test/run.ts | 91 ++++++++++++++++++++++-- poc/public/media.js | 54 ++++++++------ poc/src/media.ts | 5 +- 11 files changed, 313 insertions(+), 41 deletions(-) create mode 100644 media-scrape/src/embed-preview.ts diff --git a/CURRENT.md b/CURRENT.md index 95c0147..d686e82 100644 --- a/CURRENT.md +++ b/CURRENT.md @@ -40,6 +40,13 @@ mobile draft at 390px. - [x] C11 preview caching: Discord-hosted image/GIF previews (WebP 320px, hash-addressed, 5 MiB cap, one attempt) run after every walk in both modes. Live run `...-20260916090722`: `previewed: 2`; thumbs served over `/api/media///thumb` (200). + - [x] C19 External embed previews and MIME fixes. Embeds with no thumbnail in Discord's data are + resolved via provider oEmbed/fxtwitter and an `og:image` fallback; preview bytes keep their + real extension (`preview_ext`), so JPEG thumbnails serve as `image/jpeg` instead of mislabeled + WebP (the browser "Content-Type image/webp is not supported" errors). The grid no longer uses + embed page URLs as media, and first-frame `