- Add permission checks for music/book in MediaRequest.request()
- Add quota checks for music/book types
- Add externalServiceId and externalServiceTitle columns to Media entity
- Add foreignId/foreignTitle to MediaRequestBody interface
- Add requestMusicOrBook() method for simplified music/book requests
- Make TMDB lookup conditional (skip for music/book)
- Update request route filtering for music/book types
- Handle duplicate detection for foreign ID based media
* fix(servarr): add timeout to Radarr/Sonarr API requests to prevent infinite loading
Adds a 5-second timeout to all Radarr/Sonarr API requests and displays a warning banner when
services are unreachable. This prevents the Recent Requests section and request list pages from
hanging indefinitely when a configured service has connection issues.
fix#2374
* fix(requests): only show service error banner to users with advanced permissions
This PR fixes the "Delete from *arr" button in the request list. It checks from the API whether the
*arr server corresponding to the request still exists before displaying the remove button, and fixes
a cache removal issue that could cause problems when deleting recently added media. This PR also
reverts #1476, which introduced problems during removal.
fix#1494