Files
manage/backend/src/media_library_viewer_api/clients/.pi-map.index.md
T
Developer 45c295457a fix(jellyseer): resolve request titles via /movie|tv endpoints
The requests table showed all names as "—" because Jellyseerr's /api/v1/request
list does NOT embed titles — they live on the Movie/Series records. Added
JellyseerrClient._resolve_title(media_type, tmdb_id) that fetches
/api/v1/movie/{tmdbId} (→ title) or /api/v1/tv/{tmdbId} (→ name), cached on
the client instance so subsequent polls are instant.

Also scoped the table fetch to open requests only (pending + approved) via
Jellyseerr's filter param, instead of fetching all 800+ historical requests.
open_requests() fetches pending+approved (paginated), resolves their titles
(small set → fast), and returns them sorted by date added desc.

Updated the frontend table's status filter to Open/Pending/Approved (the data
only contains open requests now).

Tests: title resolution end-to-end (movie tmdbId → title), caching across
polls, filter param used. 404/404 backend + 184/184 frontend + build green.
2026-07-13 09:58:25 +00:00

798 B

backend/src/media_library_viewer_api/clients (index)

dir: backend/src/media_library_viewer_api/clients

role

Collection of external service API clients and protocol wrappers that standardize communication with media servers, identity providers, torrent clients, and remote/local filesystems.

parent

index: backend/src/media_library_viewer_api/.pi-map.index.md map: backend/src/media_library_viewer_api/.pi-map.md

children

files

  • __init__.py
  • authentik.py
  • http_timeout.py
  • jellyfin.py
  • jellyseerr.py
  • local.py
  • qbittorrent.py
  • ssh.py

index: backend/src/media_library_viewer_api/clients/.pi-map.index.md map: backend/src/media_library_viewer_api/clients/.pi-map.md

workflows

  • change clients behavior read: __init__.py, authentik.py, http_timeout.py

dirty