Spaces:
Paused
Paused
Commit History
-
Add cache restart-persistence and 7-day cleanup job
FTA77001ad3b12
-
fix: resolve_tvdb checks series/movie results before episode results
FTA7700TMDB's find-by-tvdb_id can return a match in tv_episode_results for an unrelated show alongside the correct tv_results match for the same query. Checking episode results first (as the code previously did) caused OPDB to render the wrong title's art. Confirmed real case: TVDB series ID 121361 (Game of Thrones) matched an unrelated Alfred Hitchcock Presents episode in tv_episode_results, which was returned instead of the correct tv_results entry. Series/movie results are now checked first; episode results remain a fallback for legitimate bare-numeric TVDB episode IDs.3ed56e3
-
fix(image): preserve client error status from cache under concurrent requests
PNRxAImage requests are de-duplicated through moka's `try_get_with`, which returns the init closure's error as `Arc<AppError>`. On concurrent calls for the same key, moka hands every waiter a *clone* of that `Arc`, so `Arc::try_unwrap` fails (strong count > 1) and the `Err` arm collapsed the error to `AppError::Other` — a 500. The visible symptom was a spurious 500 in prod: status=500 Internal Server Error error=id not found: no logo available A single request for a title with no logo correctly returns 404; it only flipped to 500 when several identical requests raced (the inflight herd), which is exactly when the Arc is shared. The poster and episode serve paths had the same bug. Add `AppError::from_cached`, which moves the error out when it is the sole owner and otherwise rebuilds the client-facing variants by reference so the HTTP status is preserved; only genuinely-internal variants collapse to `Other`. Use it at all three image serve sites, and replace the hand-rolled equivalent…62f0fc0 -
fix(ratings): treat empty imdb_id as absent so the MDBList TMDB fallback fires
PNRxATMDB returns an empty string (not null) for titles with no IMDb cross-reference — exactly the anime/no-IMDb case issue #14's fallback targets. resolved.imdb_id was Some(""), which routed to the IMDb-keyed MDBList endpoint with a blank id, 404'd, and dropped every MDBList badge. Normalise empty ids to None at the source (id/mod.rs) and guard mdblist_lookup_for defensively. Also suppress zero-score MDBList sources (rt/popcorn/metacritic/trakt) for consistency with Ebert/aggregate/TMDB, and extract a pure, unit-tested trakt_badge() for the percent formatting.9f5255d
-
support episode lookup for imdb and tvdb, fixes #24
PNRxA8663c78
-
add support for episode ratings, closes #5
PNRxA76b8a0b
-
pick most popular tmdb entry when more than one is returned
PNRxA8bc2ea7
-
added latency logging
PNRxAbc0c819 -
add available_ratings SQLite fast path to avoid external API calls on
PNRxAcache hits84c880b
-
add cross-ID cache writes and normalize cache key separators from colons
PNRxAto underscoresa8a0f13
-
added support for fanart posters, added per api and global settings
PNRxAfbc8659
-
implement dashboard layout and additional tests
PNRxA2c8ae4e -
multi-layer moka caching
PNRxA54e4063 -
extend cache expiry over time
PNRxA4612e64 -
initial scraping api endpoints
PNRxA0fcb5c2