Spaces:
Paused
Paused
Commit History
-
Add Deno Deploy control test to isolate Cloudflare-specific vs edge-network-general stall
FTA7700ed0e1f4 -
Add second control TLS test against cloudflare.com to isolate Cloudflare-network-wide vs Worker-specific stall
FTA7700e30f93c -
Add control-group TLS test against TMDB to isolate Cloudflare-specific vs platform-wide outbound TLS stall
FTA7700d9f32e7 -
Add raw TLS-only handshake diagnostic to isolate TLS layer from HTTP layer
FTA7700d6ae4e7 -
Add HTTP/1.1-forced variant to network diagnostics to isolate PMTU/fragmentation hypothesis
FTA7700fbe330c -
Add network diagnostics route: staged DNS/TCP/TLS timing to Cloudflare Worker + raw IPv6 connect test
FTA77009c5146c -
Surface Cloudflare edge-purge failures instead of silently reporting success; relabel poster-origin audit count to avoid confusion with settings-staleness
FTA77000e78008
-
Three-state Library status: Actual/Outdated/Not Rendered, matching frontend to backend status field
FTA77003ac16a9 -
Actually apply the timestamp-based staleness rewrite (previous attempt silently failed to anchor-match)
FTA77003f07709
-
Add Library staleness-check endpoint: compares expected cache_key per item against current settings
FTA77007a863ad
-
Per-item Library cache purge (all origins incl. OPDB), remove dead library_delete code
FTA77002037d0a
-
Rearrange buttons in purge, refresh stale/duplicate entries
FTA770013e3b99 -
Add Library Cleanup: audit poster origin, soft-delete stale/duplicate entries
FTA77009b2515d
-
Add Cloudflare edge-cache purge (Workers Cache + Cache-Tag)
FTA77001ecada6 -
Purge also clears available_ratings, closing the stale fast-path gap
FTA77008a970e7 -
Add live purge feature: catalogs + library, sourced from Stremio account API
FTA7700ef14e02
-
Add API alias column to admin image lists
FTA77006512c5c
-
Track api_key_id on cache entries; admin preview uses correct per-key settings
FTA7700bb0b9d3
-
Add live-generation fallback to admin image preview under EXTERNAL_CACHE_ONLY
FTA7700831a088 -
Add live-generation fallback to admin image preview under EXTERNAL_CACHE_ONLY
FTA77001a13633 -
Add live-generation fallback to admin image preview under EXTERNAL_CACHE_ONLY
FTA7700caefe59
-
feat: add distance-from-edge inset setting for backdrop ratings
PNRxACloses #7. Some media players (e.g. Nuvio on Mac) reposition/crop backdrops and clip the rating badges. Add two independent per-key/global settings that inset the backdrop ratings inward from the anchored edge: - backdrop_edge_inset_x — horizontal inset (% of width), applies only to left/right positions - backdrop_edge_inset_y — vertical inset (% of height), applies only to top/bottom positions Centered axes ignore their inset, so a top-right position exposes "space from top" and "space from right", while "right" exposes only "space from right". Surfaced in the settings UI as conditional, edge-aware inputs and as edge_inset_x / edge_inset_y query params on the backdrop image and preview endpoints. The cache token (.eh{x}/.ev{y}) is emitted only when the position-gated value is non-zero, mirroring the existing optional .x1 (split) and .blur tokens, so default backdrop cache keys are unchanged and no cache-key migration is needed (only the additive DB columns, default 0).70cc48f -
feat: normalize poster aspect ratio to 2:3 (#15)
PNRxANon-2:3 source posters were served at their native aspect ratio, so downstream apps (Stremio addons, aiometadata) that place posters in fixed 2:3 containers cropped them — cutting off the title/logo art baked into the poster (issue #15). Two complementary fixes: - Render-side: a new `poster_fit` setting normalizes every poster to an exact 2:3 frame (e.g. 580x870 / 1280x1920 / 2000x3000). Modes: `cover` (default, center-crop), `pad` (solid letterbox), `blur` (blurred-fill bars), and `native` (legacy source-ratio passthrough). - Selection-side: among TMDB posters, prefer art near 2:3 before falling back to highest vote, so the chosen source usually needs little cropping. Configurable per-key, globally, and via the `?fit=` query param. Threaded through RenderSettings, the cache key (native emits no token so existing poster cache stays valid; the new default emits one), the api_key_settings DB column + migration, OpenAPI, and the admin UI (with live preview). Tests: poster fit …5283e2c
-
Merge remote-tracking branch 'origin/main' into feat/badge-shape-background
PNRxA# Conflicts: # README.md # api/src/handlers/preview.rs # api/src/image/generate.rs # api/src/image/serve.rs # api/src/lib.rs # web/src/__tests__/components/RenderSettingsForm.spec.ts # web/src/components/RenderSettingsForm.vue # web/src/lib/api.tsc45d5f9
-
feat: split poster badges onto opposite sides (#18)
PNRxAAdd a per-poster `poster_badge_split` setting (query param `split`) that divides rating badges evenly across two opposite sides of the poster. The split axis follows the badge layout: a vertical column splits left/right, horizontal rows split top/bottom. With an odd number of badges the configured side keeps the extra one (4 -> 2+2, 3 -> 2+1); a single badge is never split. - Rendering: BadgePosition::split_anchors + overlay_poster_group on the poster render path; threaded through ImageParams/serve/preview. - Cache: the split contributes a key token only when enabled, so existing non-split cache keys and CDN settings hashes are unchanged. - Settings: new column + migration, per-key/global/free-key plumbing, `split` query-param override. - Web: settings-form checkbox with live preview, free-key "Try it out" control, API params, types, and README docs.6db0b76 -
feat: add pill-style badges and dark/transparent/no-background options (#19)
PNRxAAdd two orthogonal, per-image-type badge appearance settings: - badge_shape: rounded (default) | pill (fully rounded ends) - badge_background: default | dark | transparent | none These are plumbed through the full settings stack (per-key + global defaults, query-param overrides, cache keys) for posters, logos, backdrops, and episodes, and exposed in the admin/key settings forms and the public free-key "Try it out" form. Closes #19.c165e10
-
feat: add ratings_exclude setting to hide specific rating sources (#17)
PNRxAAdds a "ratings_exclude" setting (comma-separated rating source keys to drop from generated images) following the same global-default + per-API-key + query-override pattern as ratings_order. Closes #17. Exclusion is applied before ordering and limiting, so excluding a source you don't care about (e.g. Rotten Tomatoes critics) frees its badge slot for the next preferred source rather than leaving a gap. The exclusion list is folded into every cache-key suffix (ratings_cache_suffix, badges_suffix_from_available, and the CDN settings_hash), so two configurations differing only in their exclusions never collide in the cache. - Storage: new api_key_settings.ratings_exclude column via idempotent migration; empty default ("exclude nothing") keeps existing cache keys byte-identical. - API: ?ratings_exclude= query override (all image types) plus admin global, per-key admin, and self-service settings endpoints. - Web: "Exclude ratings" checkbox control in the settings form with live previe…f54670e
-
additional configuration options for backdrops
PNRxA41b3b51
-
add support for episode ratings, closes #5
PNRxA76b8a0b
-
large refactor to prioritise tmdb logos and backdrops, then fall back to
PNRxAfanart, fixes #10094c13f
-
expose all customisation through url params, fixes #3
PNRxA0b7bef2
-
refactor to use explicit enum types instead of strings
PNRxAb8d53ae
-
add badge size option, improve settings layout
PNRxA4b9bf53
-
deduplicate image handlers and rename poster modules to image
PNRxA0c21886
-
dynamic CDN cache TTL based on film age, add Caddyfile example and
PNRxACloudflare deployment docsa0c237e -
add FREE_KEY_ENABLED env var to override the free API key toggle from
PNRxAthe admin UIeb8ae7b -
add ?imageSize= parameter with scaled badges
PNRxA2774836
-
add poster support for corner placement, custom directions
PNRxA8762688 -
icon support for all endpoints
PNRxA7f36b83 -
add per-type badge style, poster position, and per-type ratings limit
PNRxAsettingsf0e0245
-
logo and backdrop tabs, cache refactor
PNRxA5d84fe3 -
add logo and backdrop api endpoints
PNRxAa5bc115 -
add optional free api key
PNRxAcb0280f -
preview endpoint auth, poster serving refactor, and race condition fix
PNRxAin PostersViewf4003d6 -
added poster preview to settings, fetch poster manually
PNRxAc63b398 -
add support for ordering and limiting ratings
PNRxA02c8c3c -
added support for fanart posters, added per api and global settings
PNRxAfbc8659
-
CORS lockdown, path traversal prevention, error redaction, password max
PNRxAlength, API key log redaction, timing side-channel fix, HSTS, and poster rate limiting5f0e2ae -
implement dashboard layout and additional tests
PNRxA2c8ae4e