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
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.
* 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
* feat(pushover): attach image to pushover notification payload (#3701)
* fix: api language query parameter (#3720)
* docs: add j0srisk as a contributor for code (#3745) [skip ci]
* docs: update README.md
* docs: update .all-contributorsrc
---------
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
* feat(tooltip): add tooltip to display exact time on date hover (#3773)
Co-authored-by: Loetwiek <lodommerholtcm@gmail.com>
* docs: add Loetwiek as a contributor for code (#3776) [skip ci]
* docs: update README.md
* docs: update .all-contributorsrc
---------
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
* fix(ui): ensure title fits into the `view collection` box (#3696)
* fix(docs): correct openapi docs minor issues (#3648)
* docs: add Fuochi as a contributor for doc (#3826)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
* feat: translations update from Hosted Weblate (#3597)
* feat(lang): translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (1234 of 1234 strings)
feat(lang): translated using Weblate (Portuguese (Brazil))
Currently translated at 99.8% (1232 of 1234 strings)
Co-authored-by: Cleiton Carvalho <cleitonsilvacarvalho@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/pt_BR/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (German)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (German)
Currently translated at 100.0% (1234 of 1234 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Nandor Rusz <nandor.rusz@vodafone.de>
Co-authored-by: Thomas Schöneberg <ta.schoeneberg@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/de/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Danish)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Danish)
Currently translated at 100.0% (1236 of 1236 strings)
feat(lang): translated using Weblate (Danish)
Currently translated at 100.0% (1234 of 1234 strings)
Co-authored-by: Anders Ecklon <aecklon@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kenneth Hansen <erathor@live.dk>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/da/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Greek)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Greek)
Currently translated at 100.0% (1236 of 1236 strings)
Co-authored-by: BeardedWatermelon <BeardedWatermelon@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/el/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Russian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Russian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Russian)
Currently translated at 99.5% (1234 of 1240 strings)
feat(lang): translated using Weblate (Russian)
Currently translated at 100.0% (1234 of 1234 strings)
feat(lang): translated using Weblate (Russian)
Currently translated at 100.0% (1234 of 1234 strings)
feat(lang): translated using Weblate (Russian)
Currently translated at 100.0% (1234 of 1234 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: SoundwaveUwU <SoundwaveUwU@users.noreply.hosted.weblate.org>
Co-authored-by: SoundwaveUwU <noreply@1000-7.space>
Co-authored-by: Димитър Мазнеков (Topper) <d.maznekov@gmail.com>
Co-authored-by: Кирилл Тюрин <1337soundwave1337@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ru/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Romanian)
Currently translated at 37.1% (461 of 1240 strings)
feat(lang): translated using Weblate (Romanian)
Currently translated at 37.0% (459 of 1240 strings)
feat(lang): translated using Weblate (Romanian)
Currently translated at 34.8% (432 of 1240 strings)
Co-authored-by: Don Cezar <goldie.czr@gmail.com>
Co-authored-by: Dragos <themsk@yahoo.com>
Co-authored-by: Eduard Oancea <uberfly@420blaze.it>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ro/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Bulgarian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Bulgarian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Bulgarian)
Currently translated at 57.4% (712 of 1240 strings)
feat(lang): translated using Weblate (Bulgarian)
Currently translated at 13.2% (164 of 1240 strings)
feat(lang): translated using Weblate (Bulgarian)
Currently translated at 4.8% (60 of 1240 strings)
feat(lang): added translation using Weblate (Bulgarian)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: sct <sctsnipe@gmail.com>
Co-authored-by: Димитър Мазнеков (Topper) <d.maznekov@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/bg/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Ukrainian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 99.1% (1230 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 99.1% (1230 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 99.1% (1230 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 97.9% (1215 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 82.0% (1017 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 72.9% (905 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 72.9% (905 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 71.3% (885 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 64.9% (805 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 64.4% (799 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 63.8% (792 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 63.7% (791 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 57.5% (714 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 49.9% (619 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 35.9% (446 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 35.9% (446 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 32.1% (399 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 24.6% (306 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 18.9% (235 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 17.5% (217 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 17.3% (215 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 8.0% (100 of 1240 strings)
feat(lang): translated using Weblate (Ukrainian)
Currently translated at 3.3% (41 of 1240 strings)
feat(lang): added translation using Weblate (Ukrainian)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Michael Michael <michaelvelosk@gmail.com>
Co-authored-by: sct <sctsnipe@gmail.com>
Co-authored-by: Сергій <sergiy.goncharuk.1@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/uk/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Catalan)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Catalan)
Currently translated at 100.0% (1240 of 1240 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: dtalens <databio@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ca/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Czech)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Czech)
Currently translated at 99.6% (1236 of 1240 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Karel Krýda <karel.kryda@gmail.com>
Co-authored-by: Smexhy <roman.bartik@icloud.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/cs/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Croatian)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 99.8% (1238 of 1240 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 99.8% (1238 of 1240 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 99.6% (1236 of 1240 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 99.5% (1235 of 1240 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 99.5% (1235 of 1240 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 99.1% (1230 of 1240 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 97.5% (1210 of 1240 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 95.5% (1185 of 1240 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 95.6% (1182 of 1236 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 95.6% (1182 of 1236 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 95.2% (1177 of 1236 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 95.2% (1177 of 1236 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 94.3% (1166 of 1236 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 91.7% (1134 of 1236 strings)
feat(lang): translated using Weblate (Croatian)
Currently translated at 91.7% (1134 of 1236 strings)
Co-authored-by: Bruno Ševčenko <bs3vcenk@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: Stjepan <stjepstjepanovic@gmail.com>
Co-authored-by: lpispek <lpispek@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/hr/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Hungarian)
Currently translated at 91.3% (1133 of 1240 strings)
feat(lang): translated using Weblate (Hungarian)
Currently translated at 89.3% (1108 of 1240 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Levente Szajkó <leviko112@gmail.com>
Co-authored-by: Nandor Rusz <nandor.rusz@vodafone.de>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/hu/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Hebrew)
Currently translated at 13.9% (172 of 1236 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: osh <osh@osh.cc>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/he/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Polish)
Currently translated at 99.1% (1225 of 1236 strings)
Co-authored-by: Eryk Michalak <gnu.ewm@protonmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/pl/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Italian)
Currently translated at 92.8% (1148 of 1236 strings)
Co-authored-by: Francesco <francy.ammirati@hotmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/it/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Arabic)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Arabic)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Arabic)
Currently translated at 100.0% (1234 of 1234 strings)
Co-authored-by: Fhd-pro <juve.11@msn.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ar/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Dutch)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Dutch)
Currently translated at 100.0% (1234 of 1234 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kobe <kobaubarr@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/nl/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Spanish)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Spanish)
Currently translated at 100.0% (1236 of 1236 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/es/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (French)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (French)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (French)
Currently translated at 100.0% (1236 of 1236 strings)
feat(lang): translated using Weblate (French)
Currently translated at 99.9% (1235 of 1236 strings)
feat(lang): translated using Weblate (French)
Currently translated at 99.9% (1235 of 1236 strings)
Co-authored-by: Baptiste <baptiste.nee@me.com>
Co-authored-by: Dimitri <dimitridroeck@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Maxime Lafarie <maxime.lafarie@gmail.com>
Co-authored-by: Miguel <mig.mllr@gmail.com>
Co-authored-by: asurare <jonathan.biteau16@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/fr/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Swedish)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Swedish)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Swedish)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Swedish)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Swedish)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Swedish)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Swedish)
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Swedish)
Currently translated at 100.0% (1236 of 1236 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Per Erik <urbanlolface@gmail.com>
Co-authored-by: Shjosan <shjosan@kakmix.co>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/sv/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Finnish)
Currently translated at 2.6% (33 of 1240 strings)
feat(lang): added translation using Weblate (Finnish)
Co-authored-by: Eero Konttaniemi <eero.konttaniemi@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: sct <sctsnipe@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/fi/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Serbian)
Currently translated at 50.8% (630 of 1240 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Milan Smudja <smudja@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/sr/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Korean)
Currently translated at 100.0% (1234 of 1234 strings)
Co-authored-by: Developer J <jshsakura@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ko/
Translation: Overseerr/Overseerr Frontend
* feat(lang): translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (1240 of 1240 strings)
feat(lang): translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (1234 of 1234 strings)
Co-authored-by: Haohao Zhang <hyacz@foxmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: lkw123 <lkw20010211@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/zh_Hans/
Translation: Overseerr/Overseerr Frontend
---------
Co-authored-by: Cleiton Carvalho <cleitonsilvacarvalho@gmail.com>
Co-authored-by: Nandor Rusz <nandor.rusz@vodafone.de>
Co-authored-by: Thomas Schöneberg <ta.schoeneberg@gmail.com>
Co-authored-by: Anders Ecklon <aecklon@gmail.com>
Co-authored-by: Kenneth Hansen <erathor@live.dk>
Co-authored-by: BeardedWatermelon <BeardedWatermelon@users.noreply.hosted.weblate.org>
Co-authored-by: SoundwaveUwU <SoundwaveUwU@users.noreply.hosted.weblate.org>
Co-authored-by: SoundwaveUwU <noreply@1000-7.space>
Co-authored-by: Димитър Мазнеков (Topper) <d.maznekov@gmail.com>
Co-authored-by: Кирилл Тюрин <1337soundwave1337@gmail.com>
Co-authored-by: Don Cezar <goldie.czr@gmail.com>
Co-authored-by: Dragos <themsk@yahoo.com>
Co-authored-by: Eduard Oancea <uberfly@420blaze.it>
Co-authored-by: sct <sctsnipe@gmail.com>
Co-authored-by: Michael Michael <michaelvelosk@gmail.com>
Co-authored-by: Сергій <sergiy.goncharuk.1@gmail.com>
Co-authored-by: dtalens <databio@gmail.com>
Co-authored-by: Karel Krýda <karel.kryda@gmail.com>
Co-authored-by: Smexhy <roman.bartik@icloud.com>
Co-authored-by: Bruno Ševčenko <bs3vcenk@gmail.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: Stjepan <stjepstjepanovic@gmail.com>
Co-authored-by: lpispek <lpispek@gmail.com>
Co-authored-by: Levente Szajkó <leviko112@gmail.com>
Co-authored-by: osh <osh@osh.cc>
Co-authored-by: Eryk Michalak <gnu.ewm@protonmail.com>
Co-authored-by: Francesco <francy.ammirati@hotmail.com>
Co-authored-by: Fhd-pro <juve.11@msn.com>
Co-authored-by: Kobe <kobaubarr@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: Baptiste <baptiste.nee@me.com>
Co-authored-by: Dimitri <dimitridroeck@gmail.com>
Co-authored-by: Maxime Lafarie <maxime.lafarie@gmail.com>
Co-authored-by: Miguel <mig.mllr@gmail.com>
Co-authored-by: asurare <jonathan.biteau16@gmail.com>
Co-authored-by: Per Erik <urbanlolface@gmail.com>
Co-authored-by: Shjosan <shjosan@kakmix.co>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Co-authored-by: Eero Konttaniemi <eero.konttaniemi@gmail.com>
Co-authored-by: Milan Smudja <smudja@gmail.com>
Co-authored-by: Developer J <jshsakura@gmail.com>
Co-authored-by: Haohao Zhang <hyacz@foxmail.com>
Co-authored-by: lkw123 <lkw20010211@gmail.com>
* feat(lang): add lang config for Bulgarian, Finnish, Ukrainian, Indonesian, Slovak, Turkish and Maori (#3834)
* fix: correct deeplinks on iPad (#3883)
* feat(studios): add a24 to studios list (#3902)
* docs: add demrich as a contributor for code (#3906) [skip ci]
* docs: update README.md
* docs: update .all-contributorsrc
---------
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
* feat(watchlist): Cache watchlist requests with matching E-Tags (#3901)
* perf(watchlist): add E-Tag caching to Plex watchlist requests
* refactor(watchlist): increase frequency of watchlist requests
* fix: sync watchlist every 3 min instead of 3 sec
* docs: add maxnatamo as a contributor for code (#3907) [skip ci]
* docs: update README.md
* docs: update .all-contributorsrc
---------
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
* feat(plex): refresh token schedule (#3875)
* feat: refresh token schedule
fix#3861
* fix(i18n): add i18n message
* refactor(plextv): use randomUUID crypto instead custom function
* docs: add DamsDev1 as a contributor for code (#3924) [skip ci]
* docs: update README.md
* docs: update .all-contributorsrc
---------
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
* fix: correct icon showing on certain phones when not pulled (#3939)
* feat: add support for requesting "Specials" for TV Shows (#3724)
* feat: add support for requesting "Specials" for TV Shows
This commit is responsible for adding support in Overseerr for requesting "Special" episodes for TV
Shows. This request has become especially pertinent when you consider shows like "Doctor Who". These
shows have Specials that are critical to understanding the plot of a TV show.
fix#779
* chore(yarn.lock): undo inappropriate changes to yarn.lock
I was informed by @sct in a comment on the #3724 PR that it was not appropriate to commit the
changes that ended up being made to the yarn.lock file. This commit is responsible, then, for
undoing the changes to the yarn.lock file that ended up being submitted.
* refactor: change loose equality to strict equality
I received a comment from OwsleyJr pointing out that we are using loose equality when we could
alternatively just be using strict equality to increase the robustness of our code. This commit
does exactly that by squashing out previous usages of loose equality in my commits and replacing
them with strict equality
* refactor: move 'Specials' string to a global message
Owsley pointed out that we are redefining the 'Specials' string multiple times throughout this PR.
Instead, we can just move it as a global message. This commit does exactly that. It squashes out and
previous declarations of the 'Specials' string inside the src files, and moves it directly to the
global messages file.
* docs: add AhmedNSidd as a contributor for code (#3964) [skip ci]
* docs: update README.md
* docs: update .all-contributorsrc
---------
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
---------
Co-authored-by: Isaac M <masesisaac@gmail.com>
Co-authored-by: Joseph Risk <j0srisk@gmail.com>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Loetwiek <79059734+Loetwiek@users.noreply.github.com>
Co-authored-by: Loetwiek <lodommerholtcm@gmail.com>
Co-authored-by: Fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
Co-authored-by: Fuochi <ffuochi@hotmail.com>
Co-authored-by: Weblate (bot) <hosted@weblate.org>
Co-authored-by: Cleiton Carvalho <cleitonsilvacarvalho@gmail.com>
Co-authored-by: Nandor Rusz <nandor.rusz@vodafone.de>
Co-authored-by: Thomas Schöneberg <ta.schoeneberg@gmail.com>
Co-authored-by: Anders Ecklon <aecklon@gmail.com>
Co-authored-by: Kenneth Hansen <erathor@live.dk>
Co-authored-by: BeardedWatermelon <BeardedWatermelon@users.noreply.hosted.weblate.org>
Co-authored-by: SoundwaveUwU <SoundwaveUwU@users.noreply.hosted.weblate.org>
Co-authored-by: SoundwaveUwU <noreply@1000-7.space>
Co-authored-by: Димитър Мазнеков (Topper) <d.maznekov@gmail.com>
Co-authored-by: Кирилл Тюрин <1337soundwave1337@gmail.com>
Co-authored-by: Don Cezar <goldie.czr@gmail.com>
Co-authored-by: Dragos <themsk@yahoo.com>
Co-authored-by: Eduard Oancea <uberfly@420blaze.it>
Co-authored-by: sct <sctsnipe@gmail.com>
Co-authored-by: Michael Michael <michaelvelosk@gmail.com>
Co-authored-by: Сергій <sergiy.goncharuk.1@gmail.com>
Co-authored-by: dtalens <databio@gmail.com>
Co-authored-by: Karel Krýda <karel.kryda@gmail.com>
Co-authored-by: Smexhy <roman.bartik@icloud.com>
Co-authored-by: Bruno Ševčenko <bs3vcenk@gmail.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: Stjepan <stjepstjepanovic@gmail.com>
Co-authored-by: lpispek <lpispek@gmail.com>
Co-authored-by: Levente Szajkó <leviko112@gmail.com>
Co-authored-by: osh <osh@osh.cc>
Co-authored-by: Eryk Michalak <gnu.ewm@protonmail.com>
Co-authored-by: Francesco <francy.ammirati@hotmail.com>
Co-authored-by: Fhd-pro <juve.11@msn.com>
Co-authored-by: Kobe <kobaubarr@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: Baptiste <baptiste.nee@me.com>
Co-authored-by: Dimitri <dimitridroeck@gmail.com>
Co-authored-by: Maxime Lafarie <maxime.lafarie@gmail.com>
Co-authored-by: Miguel <mig.mllr@gmail.com>
Co-authored-by: asurare <jonathan.biteau16@gmail.com>
Co-authored-by: Per Erik <urbanlolface@gmail.com>
Co-authored-by: Shjosan <shjosan@kakmix.co>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Co-authored-by: Eero Konttaniemi <eero.konttaniemi@gmail.com>
Co-authored-by: Milan Smudja <smudja@gmail.com>
Co-authored-by: Developer J <jshsakura@gmail.com>
Co-authored-by: Haohao Zhang <hyacz@foxmail.com>
Co-authored-by: lkw123 <lkw20010211@gmail.com>
Co-authored-by: Jordan Jones <me@jjones.tech>
Co-authored-by: Brandon Cohen <brandon@z3hn.dev>
Co-authored-by: David Emrich <demrich@me.com>
Co-authored-by: Max T. Kristiansen <me@maxtrier.dk>
Co-authored-by: Damien Fajole <60252259+DamsDev1@users.noreply.github.com>
Co-authored-by: Ahmed Siddiqui <36286128+AhmedNSidd@users.noreply.github.com>
* feat: blacklist media items
re #490
* feat: blacklist media items
* feat: blacklist media items
* style: formatting
* refactor: close the manage slide-over when the media item is removed from the blacklist
* fix: fix media data in the db when blacklisting an item
* refactor: refactor component to accept show boolean
* refactor: hide watchlist button in the media page when it's blacklisted. Also add a blacklist button
* style: formatting
---------
Co-authored-by: JoaquinOlivero <joaquin.olivero@hotmail.com>
* feat: select default seriesType for anime
Added flexibility to set default anime series type in service settings. Now you can choose
'standard' for anime if you prefer it, making it easier to use features like searching for season
packs on Sonarr.
fix#3626
* feat: extracted translations
* Make a (shallow) copy of radarr/sonarr tags into a request before adding user tags
* Undo random formatting changes
* more undoing formatting changes
* Fix undefined case.
* Prettier format
* feat: auto tagging requested media with username
Relating to discussion: https://github.com/sct/overseerr/discussions/3313
Adding an option to the Radarr and Sonarr service to enable automatic tagging
with the username requesting the media.
Current format, to reduce tag clutter if a user changes displayname:
`[user.id] - [user.displayName]`
* fix: modified new secondary tip language
---------
Co-authored-by: Brandon Cohen <brandon@z3hn.dev>
* 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(notif): include year in notifications
* fix(lang): fix shared overwritten strings
* fix: check if email agent is actually enabled when generating passwords
* refactor(ui): add tabs to user notification settings
* feat(notif): allow users to enable/disable specific agents
* fix(ui): only enforce required fields when agent is enabled
* fix(ui): hide unavailable notification agents
* feat(notif): mention admin users for admin Discord notifications
* fix(ui): modify styling of PGP key textareas to suit expected input
* fix(notif): mention all admins when there are multiple and fix rebase error
* fix: add missing form values, and fix Yup validation
* refactor: reduce repeated logic/code in email notif agent
* refactor: move 'Notification Types' label into NotificationTypeSelector component
* fix(email): correct inconsistencies in email template formatting
* refactor: use bitfields for storing user-enabled notif agent types
* feat: improve notification agent logging
* fix(ui): mark string fields as nullable so empty values are not type errors
* fix: add validation for PGP-related inputs
* fix: correctly fetch user in user settings & log mentioned IDs for Discord notifs
* fix(ui): fix mobile nav dropdown text & add hover effect to button-style tabs
* fix(notif): process admin email notifications asynchronously
* fix(logging): log name of notification type instead of its enum value
* fix: mark required fields and pass all user settings values to API
* fix(frontend): call mutate after changing email/Discord/Telegram global notif settings
* refactor: get global notif settings from relevant API endpoints instead of adding to public settings
* fix(notif): fall back to email notifications being enabled (default) if user settings do not exist
* fix(notif): do not set notifyUser for MEDIA_PENDING or MEDIA_AUTO_APPROVED
* fix: expose notif enabled settings in user notif endpoints & remove global enable notif setting
* fix(notif): remove unnecessary allowed_mentions object from Discord payload
* fix(notif): use form values for email test notification
* fix: make suggested changes and regenerate DB migration
* fix: loosen validation of PGP keys
* fix: fix user profile settings routes
* fix: remove route guard from profile pages
* feat(quotas): rebased
* feat: add getQuota() method to User entity
* feat(ui): add default quota setting options
* feat: user quota settings
* feat: quota display in request modals
* fix: only show user quotas on own profile or with manage users permission
* feat: add request progress circles to profile page
* feat: add migration
* fix: add missing restricted field to api schema
* fix: dont show auto approve message for movie request when restricted
* fix(lang): change enable checkbox langauge to "enable override"
Co-authored-by: Jakob Ankarhem <jakob.ankarhem@outlook.com>
Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>