* chore: update nodejs to 22 in an attempt to fix undici errors
This is an attempt to fix the undici errors introduced after the switch
from axios to native fetch. The decision was made as it native fetch on
node 20 seems to be "experimental" and
> since native fetch is no longer experimental since Node 21
* chore: increase the required node version
* build: update nodejs version to 22
* chore: update nodejs version to 22
* chore: update @types/node to v22
* chore(gen-docs): update the gen-docs node engine requirement to 22
* refactor: replace streaming providers' name with their corresponding logo
re #919
* refactor: change default image opacity and the on hover opacity as well to match the overall ui/ux
---------
Co-authored-by: JoaquinOlivero <joaquin.olivero@hotmail.com>
This commit resolves an issue where the continue button in setup step 3 remained disabled after a
page refresh even when libraries are toggled. This was happening because
`mediaServerSettingsComplete` state was reset on refresh and not correctly re-initialized.
This change optimises the media updates to avoid unneccessary lifecycle hook executions which
results in potential recursion for POSTGRESQL compatibility. This should prevent an issue where
after a TV request, the tv request would get sent to sonarr and notification for it would get sent
over and over and over again
This PR clears the Radarr/Sonarr cache after a request has been made, because the media status on
Radarr/Sonarr will no longer be good. It also resolves a bug that prevented the media from being
deleted after a request had been sent to Radarr/Sonarr.
fix#1207
This PR adds an error message when the database has no admin user and Jellyseerr has already been
set up (i.e. settings.json is filled in), instead of having a generic error message.
When a series is requested, an event is triggered by TypeORM after the request status has been
updated. The function executed by this event updated the request status to "PROCESSING", even if the
request already had this status. This triggered the same function once again, which repeated the
update, in an endless loop.
The request count subquery was causing issues with some PostgreSQL
configurations due to case sensitivity in column aliases. Modified the
query to use an explicit subquery with a properly named alias to ensure
consistent behavior across different database setups.
When the streaming region is set to another value than the default one, the setting starts toggling
itself from the default value to the new value and vice-versa constantly
fix#1200
* fix: properly fetch sonarr/radarr specific override rules and fix its application
- This will fetch the proper sonarr/radarr specific override rule to apply.
- This will skip override rules for anime TV shows unless the `overrideRule`
explicitly includes the anime keyword.
- Apply the most specific override rule first (e.g., rules with multiple
conditions like `genre`, `language`, and `keywords`)
- Debug logs to for override rules
* fix(overriderules): apply overrides to "auto_approve" permission users but not "advaned_request"
This decision is done because it makes no sense to give advanced request users who gets to choose
what values to choose but then the minute they request, it gets overridden, rendering the whole
modal completely useless. In addition, admin/manage_request permission users who modify requests,
the minute they modify it will get overridden as well so it makes no sense to override their
requests
* fix: use default service instance for override rules
---------
Co-authored-by: Gauthier <mail@gauthierth.fr>
Updated the logic of override rules to be applied during the request phase and not during
send-to-arr phase. In addition, override rules will only apply for non-admin/non-auto-approve users.
fix#1195
* feat: add a setting for special episodes
This PR adds a separate setting for special episodes and disables them by default, to avoid unwanted
library status updates.
* refactor(settings): re-order setting for allow specials request
---------
Co-authored-by: fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
* 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
The Sort Direction was loaded with values from the localStorage, but `undefined` was assigned if no
previous Sort Direction existed, causing the client to send undefined as a string for the Sort
Direction.
fix#1147
If Jellyseerr can't connect to Radarr/Sonarr, the "Recent Requests" slider will not load because of
the error throwed when trying to get the Quality Profile. This PR catch this error so the recent
requests are well displayed.
* feat: add separate setting for streaming region
Currently, the "Currently Streaming On" information is based on the Discover Region setting. This PR
adds a new setting to specify which region should be used to display the streaming region.
re #890
* fix: add missing newline
* fix: rename migration function
* fix: use tmdb first as metadata provider and fallback to tvdb
This PR changes the order of the metadata provider to TMDB first and then fallback to TheTVDB if no
TMDB metadata is available. Previously, TheTVDB was used first and there was no fallback if the
latter failed.
fix#1137
* feat: add logs
* fix: add logs
* fix: add show name
Previously, the "Play on Jellyfin" or "Watch Trailers" buttons used the onClick event and
window.open to open links, instead of using 'a' elements with a href.