mirror of
https://github.com/andwati/andwati.com.git
synced 2026-10-18 09:22:53 +00:00
The enrichment guard was `if (entry.cover_image) return entry;` — meaning once *any* cover_image was set, including a raw external URL you pasted into Strapi by hand, it was treated as "already done" and never downloaded. The site's coverExists() check only looks for local /covers/... files, so a remote URL silently never rendered. - content-sync.ts: enrichBookshelfEntry now branches on whether cover_image is an http(s) URL (cache it via the new cacheRemoteImage) vs. unset (existing ISBN/DOI lookup) vs. already a local path (left alone). - bookshelf-covers.ts: cacheRemoteImage() downloads and caches any image URL. Also fixes a real bug caught while testing this against the actual O'Reilly cover URL from the reported entry: their CDN labels WebP responses as Content-Type: image/jpeg, so trusting the header would've cached it with the wrong extension. Now sniffs the real file signature (RIFF/WEBP, PNG, JPEG, GIF magic bytes) instead of trusting either the header or the URL. Verified the download+sniff logic directly against the real cover URL from the reported entry (Designing Data-Intensive Applications) — correctly detects and saves as .webp. Didn't touch the running dev Strapi/DB while testing.