* fix: added extra check for unmonitored movies in radarr
* feat: created new radarr/sonarr routes to grab existing series data
* refactor: updated job routes to check by external service id
* fix: season check will now also look at episode file count
* feat: add availability synchronization job
fix#377
* fix: feedback on PR
* perf: use pagination for Media Availability Synchronization job
The original approach loaded all media items from the database at once. With large libraries, this
could lead to performance issues. We're now using a paginated approach with a page size of 50.
* feat: updated the availability sync to work with 4k
* fix: corrected detection of media in plex
* refactor: code cleanup and minimized unnecessary calls
* fix: if media is not found, media check will continue
* fix: if non-4k or 4k show media is updated, seasons and request is now properly updated
* refactor: consolidated media updater into one function
* fix: season requests are now removed if season has been deleted
* refactor: removed joincolumn
* fix: makes sure we will always check radarr/sonarr to see if media exists
* fix: media will now only be updated to unavailable and deletion will be prevented
* fix: changed types in Media entity
* fix: prevent season deletion in preference of setting season to unknown
---------
Co-authored-by: Jari Zwarts <jari@oberon.nl>
Co-authored-by: Sebastian Kappen <sebastian@kappen.dev>
* fix: added a refresh interval if download status is in progress
* refactor: switched to a function instead of useEffect
* feat: added editable download sync schedule
CDNs such as Cloudflare bypass their cache if cookies are set in the response.
clearCookies
middleware removes the header before imageproxy serves the image.
* fix(ui): hide available media on person page
* fix(ui): set correct label for image cache settings
* fix(ui): disable status badge tooltip for collections
* fix(ui): replace empty space when no episodes in season
* fix: suggested changes
* fix(jobs): set watchlist sync to short interval
* chore: run i18n:extract
* fix: suggested changes
* feat(logs): add search filter
* refactor(logs): move loading spinner inside log viewer
Inputting text in the search bar on the logs page would refresh the page
losing focus on the search bar.
This moves the loading spinner inside the log viewer, so that it is not
as disruptive as it would
* fix(logs): escape string for search filter
* chore: rebase
* fix(logs): suggested changes
* fix(jobs): reset job schedule edit modal values when closed
* feat(jobs): show job's current frequency
* fix(jobs): reset job schedule edit modal values when cancelled
* chore: rebase
* refactor(jobs): use reducer instead of several react states
* fix(jobs): reset modal state when opening instead of closing the modal
This prevents the modal state from glitching when saving/closing the modal
* feat(jobs): parse job schedule cron string
unavailable locale will fallback to english
* feat(perms): add new permission for viewing recently added media
* test: update login test to check for Trending instead of Recently Added
* fix: avoid conflict with new watchlist perms