Run the title catch-up in its own YouTube lane

This commit is contained in:
Fisto
2026-09-17 14:25:08 +02:00
parent 8befc05591
commit 9481286169
16 changed files with 495 additions and 82 deletions
+8
View File
@@ -40,6 +40,14 @@ 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/<scrape>/<item>/thumb` (200).
- [x] C53 Title catch-up as its own lane. Titles no longer share the preview batch: a dedicated
`TitleLane` walks every scrape with a pending title, 100 rows per batch with a 10 s pause
(hard-coded; it is a one-time catch-up and future titles arrive with the scrape), and takes no
media-traffic lock because it only calls YouTube's oEmbed. New `titleBatch` on the engine,
per-scrape `titlePending/titled/titleFailed` counters, `/api/media/titles` + start/pause
routes, and a Bot-tab card with progress, throughput, ETA, and Start/Pause. The lane
auto-starts on boot; with nothing pending it exits immediately. Preview backfill goes back to
previews only. Unit tests for `titleBatch` and a lane catch-up run; smoke covers the card.
- [x] C52 Wildcard title search. `*` now maps to a LIKE wildcard in both title modes: a leading
`*` drops the word anchor (`*car` finds *scar* and *discard*), in-token stars match between
letters (`c*r*`), and a trailing star matches the plain prefix. `%` and `_` are escaped with an