* feat(blacklist): add blacktag settings to main settings page
* feat(blacklist): create blacktag logic and infrastructure
* feat(blacklist): add scheduling for blacktags job
* feat(blacklist): create blacktag ui badge for blacklist
* docs(blacklist): document blacktags in using-jellyseerr
* fix(blacklist): batch blacklist and media db removes to avoid expression tree too large error
* feat(blacklist): allow easy import and export of blacktag configuration
* fix(settings): don't copy the API key every time you press enter on the main settings
* fix(blacklist): move filter inline with page title to match all the other pages
* feat(blacklist): allow filtering between manually blacklisted and automatically blacklisted entries
* docs(blacklist): reword blacktag documentation a little
* refactor(blacklist): remove blacktag settings from public settings interfaces
There's no reason for it to be there
* refactor(blacklist): remove unused variable from processResults in blacktagsProcessor
* refactor(blacklist): change all instances of blacktag to blacklistedTag and update doc to match
* docs(blacklist): update general documentation for blacklisted tag settings
* fix(blacklist): update setting use of "blacklisted tag" to match between modals
* perf(blacklist): remove media type constraint from existing blacklist entry query
Doesn't make sense to keep it because tmdbid has a unique constraint on it
* fix(blacklist): remove whitespace line causing prettier to fail in CI
* refactor(blacklist): swap out some != and == for !s and _s
* fix(blacklist): merge back CopyButton changes, disable button when there's nothing to copy
* refactor(blacklist): use axios instead of fetch for blacklisted tag queries
* style(blacklist): use templated axios types and remove redundant try-catches
* fix(avatar): fix avatar cache busting by using avatarVersion
Previously, avatar caching did not update the avatar when the remote image changed. This commit adds
logic to check if the avatar was modified remotely by comparing aremote last-modified timestamp with
a locally stored version (avatarVersion). If a change is detected, the cache is cleared, a new image
is fetched, and avatarVersionis updated. Otherwise, the cached image is retained.
* chore(db): add db migrations
* refactor: refactor imagehelpers util to where its used
* refactor: remove remnants from previous cache busting versions
* feat: create the basis for the override rules
* feat: add support for sonarr and keywords to override rules
* feat: apply override rules in the media request
* feat: add users to override rules
* fix: save the settings modified by the override rules
* fix: resolve type errors
* style: run prettier
* fix: add missing migration
* fix: correct sonarr override rules
* fix: create PostgreSQL migration and fix SQLite migration
* fix: resolve type naming and fix i18n issue
* fix: remove unrelated changes to the PR