0.4.86
-
Improve badge rendering, assets and cache versions (a788141)
Multiple fixes and enhancements to badge rendering, asset sources, and cache versions:- UI: default poster ratings layout changed from 'top' to 'bottom' and payload handling updated to ignore posterRatingsLayout when posterConfiguratorPreset is 'simple'.
- SVG: add special-case SVG generation for badges with an icon but no label to render icon + rank properly (with glow layers and optional box).
- Image pipeline: bump provider icon cache version (v17 -> v19).
- Image renderer: several layout and collision-avoidance improvements — clamped quality badge height, row alignment options (left/center/right), track/align quality, ranking and genre positions so they can share rows when safe, adjust gaps/overlays, and move genre composition to avoid clipping.
- Rating metadata: replace multiple stream badge icon URLs and adjust icon width ratios to new asset repository; exclude 'quality' and 'audio' categories when building stream badges from flags to avoid duplicates.
- Routing/cache: bump final image renderer cache version to v220.
- TMDB: simplify ranking label logic to default to 'Today' and return empty for WEEKLY/MONTHLY in some cases.
- Misc: add /scripts to .gitignore and bump package version to 0.4.86.
These changes address visual clipping, badge collisions, asset consistency, and cache invalidation for updated assets.
-
Update imageRenderer.ts (ce296c3)
-
Use cachedFetch for TMDB and fix dedupe timer (3d5194c)
Replace manual in-memory TMDB/text fetch caches with fetchJsonCached/fetchTextCached (using TMDB_CACHE_TTL_MS) in proxyMetaTransform.ts, add PhaseDurations import and an emptyPhases helper, and simplify fetchTmdbJson/fetchText to use the cached fetch responses. Also fix a potential timeout handle leak in routeShared.ts by tracking the dedupe timeout timer and clearing it in finally. (tsbuildinfo updated by the build.) -
Silently catch fetchPromise in withDedupe (c686fd1)
Store the result of factory() in fetchPromise and use it in Promise.race to avoid invoking factory twice. Attach a silent .catch handler to fetchPromise to prevent unhandled rejection warnings in Node.js if the promise rejects after the race has already settled due to a timeout. Adds a brief explanatory comment.
Full Changelog: v0.4.85...v0.4.86