feat: library seed, daily prune, quota errors, Seerr v3.3.0+ compatibility #116
Merged
Conversation
This reverts commit 8d9b250.
# Conflicts: # CHANGELOG.md
Seerr PR #2712 changed the notification settings API from a single discordId string to a discordIds array. Our sync-preview was reading the old field, getting undefined, and marking every mapping as stale — causing the sync button to want to remove all users. Both auto-map-preview and sync-preview now read discordIds with a fallback to the legacy discordId field for older Seerr installs. Sync checks array membership instead of exact equality.
- Validate Jellyfin response shape before accepting Items array; treat malformed responses as incomplete rather than silently returning empty - Narrow catch in fetchAllLibraryItems to Axios errors only; re-throw programming errors so they surface instead of being masked - Add .catch() on all fire-and-forget seedLibrary/pruneLibrary calls to guard against unhandled promise rejections crashing Node 18 - Add single-flight guard (scanInProgress flag) shared between seeder and pruner to prevent concurrent scans on the dedup store - pruneLibrary now re-asserts surviving keys (store.set) before pruning so seeded TTLs refresh daily instead of expiring after 7 days - Validate fetchLibraryMap return shape in both seeder and pruner for a useful error message instead of "null is not iterable" - pruneLibrary missing-config log level raised from debug to warn - pruneLibrary now flushes the store after prune
- fetchRecentlyAdded: add isAxiosError guard and response shape validation, consistent with fetchAllLibraryItems - pruneLibrary: set/clear scanInProgress via new setScanInProgress() export so a re-seed triggered during a prune run is also blocked
Previously all 403s showed a generic or auth-focused message. Jellyseerr
returns { message: "Series Quota exceeded." } in the response body —
this is now detected and surfaced to the user directly.
Extracts getSeerrErrorMessage() helper used in all three request catch
blocks (handleSearchOrRequest, button handler, daily pick handler) so
quota detection is consistent and not duplicated.
…0+, form-data security)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Docs and code were AI-assisted; all changes manually reviewed and verified.