feat(cache): TMDB image proxy, posters, cache admin API and settings cards

GET /img/tmdb/{size}/{file} ported from MP ImageHelper / fetch_image
(sanitized cache path under DATA_DIR/cache/images, GLOBAL_IMAGE_CACHE
read switch, md5 ETag / 304, day-based cleanup job). Cache module adds
cache.sweep / cache.images_clean jobs and /cache/tmdb, /cache/images
list and clear endpoints. Library list/detail and the search palette
show posters with the neutral placeholder as fallback; metadata settings
get TMDB cache and image cache cards. Runbook docs/runbook/cache.md and
porting notes docs/porting/moviepilot-tmdb-cache.md.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-09-28 22:26:29 +08:00
1 parent 946fca5e55
commit 7862573944
16 files changed
+1028 -9

No files matched your search

+7 -1
View File
@@ -128,7 +128,13 @@ function WorksView() {
header: "作品",
cell: (r) => (
<div className="flex min-w-0 items-center gap-3">
<CoverPlaceholder title={r.entity.title} kind={r.entity.kind} small className="h-14 w-10" />
<CoverPlaceholder
title={r.entity.title}
kind={r.entity.kind}
posterPath={r.posterPath}
small
className="h-14 w-10"
/>
<div className="min-w-0">
<Link
to={consolePath("library", r.entity.id)}