Cache audio waveforms and rescue oversized GIF previews
This commit is contained in:
@@ -130,7 +130,12 @@ Previews run after every walk:
|
||||
10 s timeout, one attempt).
|
||||
- Animated GIF previews are stored as a static first frame (`ffmpeg`, 480px WebP); the original
|
||||
animated GIF URL stays in `preview_url` for hover playback. Tenor embeds without a thumbnail are
|
||||
resolved through Tenor's oEmbed.
|
||||
resolved through Tenor's oEmbed. An animated GIF over the size cap is framed by ffmpeg reading
|
||||
the stream directly, so it is not lost to `too large`.
|
||||
- Audio attachments and voice messages get a waveform strip
|
||||
(`ffmpeg -filter_complex showwavespic`) as their preview, rendered by ffmpeg from the URL.
|
||||
- Transient network failures are left pending for the next backfill pass; only skips (4xx, too
|
||||
large, no source) are marked permanent.
|
||||
- One attempt per row, no retries; a failure marks `preview_error` and never fails the scrape.
|
||||
- Stored by hash in `thumbs/<sha256>.<ext>`, where the extension follows the response type
|
||||
(`preview_ext`, default webp); `preview_hash` and `preview_bytes` land on the row, and the
|
||||
|
||||
Reference in New Issue
Block a user