siftlode/frontend/src
npeter83 23fc67cb64 improvement(plex): serve right-sized poster/art images via Plex transcode
Posters/art were proxied at full resolution (many 1-7MB, some 9.5MB) into ≤176px
grid/info cells — heavy to fetch + decode, so fast scrolling lagged 1-2s even
with a warm cache (the cache removed the Plex round-trip, not the image weight).

Now PlexClient.image_bytes optionally hits Plex's /photo/:/transcode to resize
server-side; the /image endpoint requests thumb=400x600, art=1280x720 and keys
the cache by width (old full-size files orphaned, re-cached small). Measured:
a poster 5.5MB->50KB, art 8.1MB->137KB, at 400x600 (crisp on 2x DPR). Grid
scroll is near-instant and the disk cache shrinks ~8x.
2026-07-06 08:04:13 +02:00
..
components feat(plex): info-page polish — per-source strip toggles, glassy look, scroll restore 2026-07-06 06:50:03 +02:00
i18n feat(plex): classify collection-strip source (franchise/imdb/tmdb/smart) 2026-07-06 06:49:43 +02:00
lib improvement(plex): serve right-sized poster/art images via Plex transcode 2026-07-06 08:04:13 +02:00
App.tsx feat(plex): search cast & crew names + clickable person cards 2026-07-06 00:56:01 +02:00
index.css feat(player): keyboard + scroll-wheel controls in the video modal 2026-06-29 23:37:18 +02:00
main.tsx perf: route- and modal-level code splitting (React.lazy) 2026-07-04 19:43:50 +02:00
vite-env.d.ts feat(i18n): foundation — react-i18next, language switcher, server-persisted choice 2026-06-15 00:30:34 +02:00