1249 Commits

Author SHA1 Message Date
fallenbagel
1f04eeb040 fix: disable automatic auth revalidation on auth pages (#2213)
* fix: disable automatic auth revalidation on auth pages

Prevents unnecessary `/api/v1/auth/me` requests on login, setup, and password reset pages.

fix #738

* fix: update regex to include resetpassword guid & add missing condition in refreshInterval
2025-12-09 13:17:17 +01:00
Gauthier
9d8b343790 chore(deps): update all non-major dependencies (#2188)
Update all non-major dependencies. Modifications in `src` files are there to fix linting issues.
2025-12-09 09:40:35 +01:00
0xsysr3ll
bde322de8e fix(override-rules): show correct genres for both *arr services (#2155) 2025-11-21 22:24:14 +01:00
Gauvain
af083a3cd5 chore: rebrand from Jellyseerr to Seerr across project (#2116) 2025-11-18 22:51:20 +01:00
0xsysr3ll
597858785e fix(ui): ensure mobile media type filter is always visible on actor pages (#2128)
Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>
2025-11-05 21:27:11 +01:00
Gauthier
4e9c94c80f feat: Overseerr to Jellyseerr migration (#2019)
* feat: add Overseerr migration

* refactor: rename to Seerr

* refactor: more rename to Seerr

* feat: update the value of the MediaStatus.DELETED enum

* fix: add more details in migration logs

* fix: replace .update by .save for TypeORM hooks

* fix: add fake migration to skip the duplicated UpdateWebPush migration

* fix: rewrite the AddUserAvatarCacheFields migration for Overseerr merge

* fix: replace jellyseerr migrations with a dedicated one for overseerr

* fix: update overseerr migration

* fix: update overseerr migration

* fix: remove irrelevant changes

* fix: typos

* docs: update jsdoc comment

* docs: update seerr description

* docs: fix the contributing.md link

* fix: remove unwanterd change on postgres dev datasource

* docs: add latest tag to docker image

* fix: migrate old deleted status for 4k media

* fix: update Seerr version check
2025-10-30 19:57:50 +01:00
0xsysr3ll
7dfa30a151 fix(media): handle 4K Radarr removal for multiple instances (#2037)
This PR fixes an issue where removing 4K movies from Radarr failed when multiple Radarr instances were configured. The backend was misparsing boolean query parameters and using string slugs instead of TMDB IDs. The fix ensures that the correct 4K Radarr instance is targeted and that TMDB IDs are used for movie removal.

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>
2025-10-28 17:25:57 +01:00
Ludovic Ortega
b34ca1543a feat: do not enforce TLD on email (#2075)
fix #1846
2025-10-20 17:24:24 +03:00
Brandon Cohen
a975ab25c3 fix: delete endpoint on push notification disable (#2067)
fix: add endpoint deletion on disable

fix: use definemessages util

refactor: add code comment
2025-10-19 00:03:28 +08:00
Gauthier
34fcc5d2c7 chore: merge upstream (#2024) 2025-10-08 23:34:31 -04:00
Ryan Cohen
3de457f5bb docs: update docs links to docs.seerr.dev (#1990) [skip ci] 2025-10-07 16:48:51 +00:00
TheCatLady
94a43ea480 chore: rename Jellyseerr -> Seerr, part 2 (#1987) 2025-10-06 16:47:10 -07:00
TheCatLady
00b2e97f8d chore: update Discord URL (#1980) [skip ci] 2025-10-06 19:32:38 +00:00
fallenbagel
efba847452 docs: update weblate translations (#1934)
* Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/

* Translated using Weblate (French)
Currently translated at 94.7% (1409 of 1487 strings)
Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (Ukrainian)
Currently translated at 91.0% (1354 of 1487 strings)
Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/uk/

* Translated using Weblate (Turkish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/tr/

* Translated using Weblate (French)
Currently translated at 94.8% (1411 of 1487 strings)
Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (Dutch)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/nl/

* Translated using Weblate (Dutch)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/nl/

* Translated using Weblate (French)
Currently translated at 95.0% (1414 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (Dutch)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/nl/

* Translated using Weblate (Turkish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/tr/

* Translated using Weblate (French)
Currently translated at 99.9% (1486 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (French)
Currently translated at 99.9% (1486 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (German)
Currently translated at 98.6% (1467 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (Norwegian Bokmål)
Currently translated at 71.6% (1066 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/nb_NO/

* Translated using Weblate (French)
Currently translated at 99.9% (1486 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (Norwegian Bokmål)
Currently translated at 76.4% (1137 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/nb_NO/

* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 86.8% (1291 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/zh_Hans/

* Translated using Weblate (Spanish)
Currently translated at 87.2% (1297 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/es/

* Translated using Weblate (Basque)
Currently translated at 93.8% (1395 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/eu/

* Translated using Weblate (Polish)
Currently translated at 91.5% (1362 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/pl/

* Translated using Weblate (Basque)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/eu/

* Translated using Weblate (Russian)
Currently translated at 89.9% (1338 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/ru/

* Translated using Weblate (Ukrainian)
Currently translated at 91.0% (1354 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/uk/

* Translated using Weblate (Swedish)
Currently translated at 87.6% (1304 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 87.6% (1304 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (Bulgarian)
Currently translated at 83.3% (1239 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/bg/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (French)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (French)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (Hebrew)
Currently translated at 43.2% (643 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/he/

* Translated using Weblate (Hebrew)
Currently translated at 44.3% (659 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/he/

* Translated using Weblate (Bulgarian)
Currently translated at 85.5% (1272 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/bg/

* Translated using Weblate (Russian)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/ru/

* Translated using Weblate (Bulgarian)
Currently translated at 85.5% (1272 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/bg/

* Translated using Weblate (Hebrew)
Currently translated at 44.4% (661 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/he/

* Translated using Weblate (Hebrew)
Currently translated at 46.9% (698 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/he/

* Translated using Weblate (Norwegian Bokmål)
Currently translated at 76.5% (1138 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/nb_NO/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Hebrew)
Currently translated at 50.8% (756 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/he/

* Translated using Weblate (Hebrew)
Currently translated at 51.1% (760 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/he/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (French)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Polish)
Currently translated at 91.5% (1362 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/pl/

* Translated using Weblate (Polish)
Currently translated at 91.5% (1362 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/pl/

* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/zh_Hans/

* Translated using Weblate (Romanian)
Currently translated at 41.9% (624 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/ro/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (Bulgarian)
Currently translated at 87.6% (1304 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/bg/

* Translated using Weblate (Bulgarian)
Currently translated at 87.7% (1305 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/bg/

* Translated using Weblate (Bulgarian)
Currently translated at 87.8% (1306 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/bg/

* Translated using Weblate (Bulgarian)
Currently translated at 87.8% (1307 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/bg/

* Translated using Weblate (Bulgarian)
Currently translated at 88.8% (1321 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/bg/

* Translated using Weblate (Italian)
Currently translated at 87.4% (1300 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/it/

* Translated using Weblate (Italian)
Currently translated at 89.5% (1332 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/it/

* Translated using Weblate (Italian)
Currently translated at 90.0% (1339 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/it/

* Translated using Weblate (Italian)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/it/

* Translated using Weblate (Hungarian)
Currently translated at 79.6% (1184 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/hu/

* Translated using Weblate (Finnish)
Currently translated at 17.2% (257 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fi/

* Translated using Weblate (Finnish)
Currently translated at 24.8% (370 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fi/

* Translated using Weblate (Finnish)
Currently translated at 25.5% (380 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fi/

* Translated using Weblate (Finnish)
Currently translated at 34.9% (520 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fi/

* Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/

---------

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: HanaO00 <greenmalkak@gmail.com>
Co-authored-by: michael <michaelvelosk@gmail.com>
Co-authored-by: Gökhan GÜRBÜZ <gkhn.gurbuz@hotmail.com>
Co-authored-by: Julien Cordeau <julien-cg@hotmail.fr>
Co-authored-by: Bas <910100490+weblate@proton.me>
Co-authored-by: Dennis van J <weblate@amsx.net>
Co-authored-by: 0xsysr3ll <0xsysr3ll@protonmail.com>
Co-authored-by: bogomil22 <bogomil22@users.noreply.translate.jellyseerr.dev>
Co-authored-by: Mikael Wessel <post@mikaelkw.online>
Co-authored-by: chenhui_li <lichenhui1997@gmail.com>
Co-authored-by: Miguel Pacheco <runway-venus-kung@duck.com>
Co-authored-by: Thadah <thadahdenyse+borgcube@protonmail.com>
Co-authored-by: zulimazuli <zulimazuli@gmail.com>
Co-authored-by: Stefan <dev.stafloker@gmail.com>
Co-authored-by: Blackflexxy <blackflexxy@gmail.com>
Co-authored-by: Nik <niklas@olofsson.cc>
Co-authored-by: Mattias Magnusson <mattish.91@gmail.com>
Co-authored-by: NilsKarlssonPyssling <nisse@users.noreply.translate.jellyseerr.dev>
Co-authored-by: Manu <mswiss@bluewin.ch>
Co-authored-by: Georgi Sariev <sariev_g@icloud.com>
Co-authored-by: big man <commandfns1@gmail.com>
Co-authored-by: Veselin <vesko2345@gmail.com>
Co-authored-by: Gallyam <gallyamb@gmail.com>
Co-authored-by: Dj5YsFXf#!pc@DQA7#8j$cc*Z6tq9Xeq <przekichane@icloud.com>
Co-authored-by: uqlel <jellyseer.borgcube.de@uqlel.ovh>
Co-authored-by: 宿命 <331874545@qq.com>
Co-authored-by: enderice2 <enderice2@protonmail.com>
Co-authored-by: Jamal R. <jamal2362@googlemail.com>
Co-authored-by: ReDFiRe <wwsoft@abv.bg>
Co-authored-by: bunz <66bunz@gmail.com>
Co-authored-by: Gábor Pikó <pikogabor008@gmail.com>
Co-authored-by: dogiex <dogiex+weblate@gmail.com>
2025-09-28 17:30:41 +00:00
0xsysr3ll
cd479d0d17 feat(api): add excludeKeywords parameter to discovery queries (#1908)
Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>
2025-09-17 03:32:39 +08:00
0xsysr3ll
17172e93f9 feat(webhook): add support for dynamic placeholders in webhook URL (#1491)
* feat(wehbook): add support for dynamic placeholders in webhook URL

* refactor(webhook): rename supportPlaceholders to supportVariables and update related logic

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>

* feat(i18n): add missing translations

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>

* refactor(notifications): simplify webhook URL validation logic

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>

* fix: wrong docs url

Co-authored-by: Gauthier <mail@gauthierth.fr>

* fix: update webhook documentation URL to point to Jellyseerr

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>

---------

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>
Co-authored-by: Gauthier <mail@gauthierth.fr>
2025-09-10 17:20:58 +08:00
THOMAS B
4878722030 fix(tvdb): respect display language when fetching metadata (#1889)
* fix(tvdb): respect display language when fetching metadata

* refactor(tvdb): use seasons translation

* refactor(tvdb): limit while loop

* fix(tvdb): fix translation with '-'

* refactor(tvdb): remove logs

* style(tvdb): remove useless logs

* refactor(tvdb): simplify wanted translation condition

* refactor(languages): move AvailableLocale  from context to types
2025-09-08 20:20:21 +08:00
Ishan Jain
479be0daeb feat(notifications): make embedded posters optional (#1364)
* feat(notifications): make images optional

* fix(notifications): added en i18n config

* fix: prettify

* fix(notifications): added embedImage support for ntfy

* fix(frontend): update embedImage on form state change and submission

* fix(locale): updated locale for embedImage

* fix: renamed embedImage to embedPoster
2025-09-08 14:11:31 +02:00
Gauthier
d82c6f6222 fix(settings): correct port saving of proxy settings (#1890)
The port of the proxy settings was saved as a string instead of a number, causing the API to throw
an error and making it impossible to save the network settings.
2025-09-04 14:45:42 +02:00
0xsysr3ll
13fe4c890b feat(issue): add issue description preview (#1881)
* feat(issue): add issue description preview

This PR adds a description preview to the issues list page, allowing users to quickly view issue details without navigating to individual issue pages.

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>

* fix(issue): remove unnecessary user join

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>

---------

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>
2025-09-04 10:24:08 +02:00
THOMAS B
22b2824441 feat: add tvdb indexer (#899)
* feat(tvdb): get tv seasons/episodes with tvdb

* fix: fix rate limiter index tvdb indexer

* fix(usersettings): remove unused column tvdbtoken

* refactor(tvdb): replace tvdb api by skyhook

* fix: error during get episodes

* fix: error if tmdb poster is null

* refactor: clean tvdb indexer code

* fix: wrong language with tmdb indexer

* style: replace avalaible to available

* style: tvdb.login to tvdb.test

* fix(test): fix  discover test

* fix(test): wrong url tv-details

* test(tvdb): add tvdb tests

* style(tvdb): rename pokemon to correct tv show

* refactor(indexer): remove unused getSeasonIdentifier method

* refactor(settings): replace tvdb object to boolean type

* refactor(tmdb): reduce still path condition

* test(tvdb): change 'use' to 'tvdb' condition check

* fix(tmdb): fix build

fix build after rebase

* fix(build): revert package.json

* fix(tvdb): ensure that seasons contain data

* refactor(swagger): fix /tvdb/test response

* fix(scanner): add tvdb indexer for scanner

* refactor(tvdb): remove skyhook api

* refactor(tvdb): use tvdb api

* fix(tvdb): rename tvdb to medatada

* refactor(medata): add tvdb settings

* refactor(metadata): rewrite metadata settings

* refactor(metadata): refactor metadata routes

* refactor(metadata): remove french comments

* refactor(metadata): refactor tvdb api calls

* style(prettier): run prettier

* fix(scanner): fix jellyfin scanner with tvdb provider

* fix(scanner): fix plex scanner tvdb provider

* style(provider): change provider name in info section

* style(provider): full provider name in select

* style(provider): remove french comment

* fix(tests): fix all cypress tests

* refactor(tvdb): fix apikey

* refactor(tmdb): apply prettier

* refactor(tvdb): remove logger info

* feat(metadata): replace fetch with axios for API calls

* feat(provider): replace indexer by provider

* fix(tests): fix cypress test

* chore: add project-wide apikey for tvdb

* chore: add correct application-wide key

* fix(test): fix test with default provider tmdb anime

* style(cypress): fix anime name variable

* chore(i18n): remove french translation + apply i18n:extract

* style(wording): standardize naming to "Metadata Provider" in UI text

* docs(comments): translate from French to English

* refactor(tvdb): remove unnecessary try/catch block

* feat(i18n): add missing translations

* fix(scanner): correct metadata provider ID from Tmdb to Tvdb

* style(settings): clarify navigation label from "Metadata" to "Metadata Providers"

* style(logs): update error log label from "Metadata" to "MetadataProvider"

* refactor(tvdb): replace indexer by metadata providers

* refactor(settings): remove metadata providers logo

* fix(config): restore missing config/db/.gitkeep file

---------

Co-authored-by: TOomaAh <ubuntu@PC>
Co-authored-by: fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
2025-09-02 22:40:47 +02:00
Gauthier
368ecf8771 fix(dnscaching): display stats for DNS caching (#1858)
* fix(dnscaching): display stats for DNS caching

* fix: add missing translation
2025-08-20 17:32:59 +08:00
Georgy
d3fd5028dc feat: add IMDb rating votes count in tooltip (#1696)
* feat: add IMDb rating votes count in tooltip

* feat: add IMDb rating votes count in tooltip

* feat: add IMDb rating votes count in tooltip
2025-08-19 22:26:42 +02:00
Gauvain
c0fd81a5f0 fix: remove console warning (#1836)
* fix: remove a console warning

* fix: Adds id attribute to select element for accessibility

Fixes label association by adding missing id attribute to the select dropdown, ensuring proper accessibility compliance and screen reader functionality.
2025-08-19 21:49:06 +02:00
0xsysr3ll
af7ceaf7a2 feat(requests): add user's avatar next to Requested/Last Modified by icon (#1750)
* feat(requests): add user's avatar in front of Requested/Last Modified by

* refactor(requests): wrap both the avatar and the username in Link

* fix(requests): remove unnecessary margin between avatar and username
2025-08-20 03:43:51 +08:00
fallenbagel
b4adfd2ffa feat: dns caching manager (#1294)
* feat(dns): implement dns caching

* feat: simple implementation of dnscaching

* feat: dynamic ttl which is revalidated while using stale dns cache

This is done as tmdb ttl is very less like 40 seconds so to make sure
any issues wont be caused due to cached dns (previously we were caching
for 5 minutes no matter what ttl)

* feat(dns): improve DNS cache with multi-strategy fallback system

- multiple DNS resolution strategie
- graceful fallbacks between IPv6 and IPv4 addresses
- network error reporting in fetch fix
- compatibility with cypress testing (I HOPE)

* fix: typos

* feat: dns cache stats in jobs & cache page (and cleanup)

* feat(networksettings): cache dns off by default

* feat: make dnsCache optional and enable-able through network settings

* chore(i18n): extract translation keys

* test(cypress): fix cypress testing

* feat(dnscache): dns cache entries are now flushable

* style(cypress): run prettier

* chore(cypresssettings): git ignore cypress json settings

* chore: ignore cypress/config/settings.json

* fix(dnscache): use entry specific hits and misses not global

* refactor: clean up console logs

* fix(dnscache): fix miss counter

* feat(dnscache): global stats

* chore(i18n): extract translation keys

* refactor: use date-fns for formatting age and remove useless code

* refactor: remove cypress testing options in dnsCacheManager

* refactor: remove console logs

* refactor: removed useless condition when its always truthy

* fix: remove FetchAPI-related code

* fix: remove old ipv4first setting

* refactor: use our own dns-caching package instead

* fix: correct dns-caching module configuration

* fix: correct dns-caching module configuration

* fix: remove useless lru-cache dependency

* fix: update dns-caching to v0.2.0

* fix: add env variable for min/max ttl & update dns-caching

* fix: update dns-caching package

* fix: add force min/max TTL in network settings

* docs: add docs for dns caching

---------

Co-authored-by: Gauthier <mail@gauthierth.fr>
2025-08-20 03:02:21 +08:00
0xsysr3ll
5c1583cf56 fix(UserProfile): handle optional chaining for recentlyWatched data (#1852)
This PR fixes a client-side TypeError in the "Recently Watched" section of user profiles. The issue occurred when recentlyWatched was undefined. The fix adds optional chaining (?.) to prevent the app from crashing.

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>
2025-08-19 19:00:09 +02:00
0xsysr3ll
e02ee24f70 fix(media): update delete media file logic to include is4k parameter (#1832)
* fix(media): update delete media file logic to include is4k parameter

* fix(media): revert to MANAGE_REQUESTS permission
2025-08-05 11:42:11 +02:00
0xsysr3ll
ca1686425b fix(blacklist): handle invalid keywords gracefully (#1815)
* fix(blacklist): handle invalid keywords gracefully

* fix(blacklist): only remove keywords on 404 errors

* fix(blacklist): remove non-null assertion and add proper type annotation

* refactor(blacklist): return null instead of 404 for missing keywords

* fix(blacklist): add type annotation for validKeywords

* fix(selector): update type annotation for validKeywords
2025-08-01 11:03:22 +02:00
Ludovic Ortega
844b1abad9 fix: allow setting IPv6 as an IP address in hostname field (#1782)
Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>
2025-07-15 11:26:30 +00:00
ionred
510108f9bb fix: remove LunaSea (#1759)
* refactor(lunasea-removal): remove LunaSea

fixes #1756

* chore(localization): undo localization changes in favor of weblate
2025-07-09 16:03:06 +02:00
Gauthier
9cb7e1495a fix: redirect the 'Request' button to the right page (#1711)
This PR change the link of the 'Request' button of the UserDropdown for user with no MANAGE_REQUEST
or REQUEST_VIEW permissions. These users can't see the /users/:ID/requests page, so there were
redirected to the home page. This PR also removes the /profile/request page which is the same as the
/request or the /users/:ID/requests page.

fix #1588
2025-06-18 03:00:48 +05:00
Gauthier
0357d17205 feat: add force ipv4 first setting (#1719)
This PR adds a 'Force IPv4' setting in the network settings, like the one that existed before we
migrated from Fetch API to Axios.
2025-06-17 21:35:52 +02:00
Gauthier
049bc59d2d chore: merge upstream (#1712)
* 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>

* feat(lang): Translations update from Hosted Weblate (#3835)

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* feat(lang): translated using Weblate (Bulgarian)

Currently translated at 100.0% (1240 of 1240 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Димитър Мазнеков (Topper) <d.maznekov@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/bg/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

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)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Michael Michael <michaelvelosk@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/uk/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Catalan)

Currently translated at 100.0% (1241 of 1241 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/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ca/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Hungarian)

Currently translated at 99.2% (1231 of 1240 strings)

Co-authored-by: Dargo <fuszi88@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/hu/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Polish)

Currently translated at 98.8% (1227 of 1241 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: senza <senza@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/pl/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Dutch)

Currently translated at 100.0% (1241 of 1241 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Robin Van de Vyvere <irazoxgames@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/nl/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Spanish)

Currently translated at 100.0% (1241 of 1241 strings)

feat(lang): translated using Weblate (Spanish)

Currently translated at 100.0% (1241 of 1241 strings)

Co-authored-by: Frostar <dasangra@hotmail.com>
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/
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)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (French)

Currently translated at 100.0% (1241 of 1241 strings)

feat(lang): translated using Weblate (French)

Currently translated at 100.0% (1240 of 1240 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Nackophilz <zrv4flra@anonaddy.me>
Co-authored-by: TayZ3r <artimmo@hotmail.fr>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/fr/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Swedish)

Currently translated at 100.0% (1241 of 1241 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)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Per Erik <urbanlolface@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
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.9% (36 of 1240 strings)

Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/fi/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Albanian)

Currently translated at 95.8% (1189 of 1240 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: W L <wl@mailhole.de>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/sq/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Korean)

Currently translated at 100.0% (1241 of 1241 strings)

feat(lang): translated using Weblate (Korean)

Currently translated at 100.0% (1240 of 1240 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Hyun Lee <hyun@yahoo.com>
Co-authored-by: cutiekeek <cutiekeek@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ko/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Portuguese (Portugal))

Currently translated at 98.4% (1221 of 1240 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Rafael Souto <git@rafaelsouto.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/pt_PT/
Translation: Overseerr/Overseerr Frontend

* feat(lang): translated using Weblate (Chinese (Traditional Han script))

Currently translated at 99.9% (1239 of 1240 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Chinese (Traditional Han script))

Currently translated at 98.2% (1219 of 1241 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Marc Lerno <mlerno1192@student.carlalbert.edu>
Co-authored-by: dtalens <databio@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/zh_Hant/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Norwegian Bokmål)

Currently translated at 89.9% (1115 of 1240 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: exentler <gurandsrud@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/nb_NO/
Translation: Overseerr/Overseerr Frontend

---------

Co-authored-by: Димитър Мазнеков (Topper) <d.maznekov@gmail.com>
Co-authored-by: Michael Michael <michaelvelosk@gmail.com>
Co-authored-by: dtalens <databio@gmail.com>
Co-authored-by: Dargo <fuszi88@gmail.com>
Co-authored-by: senza <senza@users.noreply.hosted.weblate.org>
Co-authored-by: Robin Van de Vyvere <irazoxgames@gmail.com>
Co-authored-by: Frostar <dasangra@hotmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: Nackophilz <zrv4flra@anonaddy.me>
Co-authored-by: TayZ3r <artimmo@hotmail.fr>
Co-authored-by: Per Erik <urbanlolface@gmail.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: W L <wl@mailhole.de>
Co-authored-by: Hyun Lee <hyun@yahoo.com>
Co-authored-by: cutiekeek <cutiekeek@gmail.com>
Co-authored-by: Rafael Souto <git@rafaelsouto.com>
Co-authored-by: Marc Lerno <mlerno1192@student.carlalbert.edu>
Co-authored-by: exentler <gurandsrud@gmail.com>

* feat(ui): prevent password manager interference & improve service links (#3989)

* docs: add s0up4200 as a contributor for code (#4047) [skip ci]

* docs: update README.md

* docs: update .all-contributorsrc

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* fix(ui): update Plex Logo (#3955)

* docs: add JackW6809 as a contributor for code (#4048) [skip ci]

* docs: update README.md

* docs: update .all-contributorsrc

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* feat: requests/issues menu count (#3470)

* feat: request and issue count added to sidebar/mobile menu

* fix: added permission check for count visibility

* refactor: modified badge design for count

* fix: properly update issue and request counts in certain scenarios (#4051)

* fix: center count badge on sidebar and mobile menu (#4052)

* fix: request english trailers as a fallback when using other languages (#4009)

Co-authored-by: Stancu Florin <florin@stancu.me>

* docs: add StancuFlorin as a contributor for code (#4053) [skip ci]

* docs: update README.md

* docs: update .all-contributorsrc

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* feat: added the PWA badge indicator for requests pending (#3411)

refactor: removed unnecessary code when sending web push notification

fix: moved all notify user logic into webpush

refactor: n

refactor: remove all unnecessary prettier changes

fix: n

fix: n

fix: n

fix: n

fix: increment sw version

fix: n

* fix: improve count badge styling (#4056)

* fix: improved web push management (#3421)

refactor: organized placement of new button + added comments

fix: added api routes for push registration

fix: modified get request to confirm key identity

fix: added back notification types to always show

feat: added a manageable device list

refactor: modified device list to make it mobile friendly

fix: correct typo for enabling notifications

* Revert "fix: improved web push management (#3421)" (#4058)

* fix: manage webpush notifications (#4059)

* feat(lang): Translations update from Hosted Weblate (#4025)

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (1240 of 1240 strings)

Co-authored-by: Felipe Garcia <garcia.o.felipe@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/pt_BR/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (German)

Currently translated at 100.0% (1240 of 1240 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Rico <rico.jambor@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/de/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* feat(lang): translated using Weblate (Romanian)

Currently translated at 40.8% (507 of 1240 strings)

Co-authored-by: George L <lazugeorgem@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ro/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Ukrainian)

Currently translated at 100.0% (1240 of 1240 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Yaroslav Buzko <yaroslav@buzko.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/uk/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Hungarian)

Currently translated at 99.9% (1239 of 1240 strings)

feat(lang): translated using Weblate (Hungarian)

Currently translated at 99.7% (1237 of 1240 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: ugyes <ferenc.bodi@live.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/hu/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Italian)

Currently translated at 95.3% (1182 of 1240 strings)

feat(lang): translated using Weblate (Italian)

Currently translated at 95.3% (1182 of 1240 strings)

Co-authored-by: Alberto Giardino <alberto.giardino@al-ce.it>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/it/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* feat(lang): added translation using Weblate (Slovenian)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: sct <sctsnipe@gmail.com>

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translation: Overseerr/Overseerr Frontend

---------

Co-authored-by: Felipe Garcia <garcia.o.felipe@gmail.com>
Co-authored-by: Rico <rico.jambor@gmail.com>
Co-authored-by: George L <lazugeorgem@gmail.com>
Co-authored-by: Yaroslav Buzko <yaroslav@buzko.com>
Co-authored-by: ugyes <ferenc.bodi@live.com>
Co-authored-by: Alberto Giardino <alberto.giardino@al-ce.it>
Co-authored-by: sct <sctsnipe@gmail.com>

* fix: change localhost to process.env.HOST for client requests (#3839)

* Change localhost to process.env.HOST for client requests

* refactor: reformat

* docs: add lmiklosko as a contributor for code (#4063) [skip ci]

* docs: update README.md

* docs: update .all-contributorsrc

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* fix: set the correct TTL for the cookie store (#3946)

The time-to-live (TTL) of cookies stored in the database was incorrect because the connect-typeorm
library takes a TTL in seconds and not milliseconds, making cookies valid for ~82 years instead of
30 days.

Co-authored-by: Ryan Cohen <ryan@sct.dev>

* docs: add gauthier-th as a contributor for code (#4064) [skip ci]

* docs: update README.md

* docs: update .all-contributorsrc

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* fix: update migration script (#4065)

* fix: update migration script

fix: remove insert for new entities

* fix: correct migration name

* fix: correct name inside migration

* fix(servarr): merge series tags instead of overwriting them (#4019)

* Merge series tags instead of overwriting when adding a series that already exists

Currently, a request coming in for a series that already exists in sonarr nukes the tags in sonarr for the series in favor of the tags coming from overseerr. This change merges the two lists of tags and deduplicates them before sending them to sonarr.

* fix(servarr api): merge request media tags with servarr instead of overwriting

---------

Co-authored-by: Danshil Kokil Mungur <me@danshilm.com>

* build(snap): update snap build actions

* build: temporarily disable snap builds (#4074)

* build: fix deploy docs action (#4076) [skip ci]

* fix: display request button when the show has requestable specials and is available (#4081)

* chore(deps): pin node.js (#4075)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): pin dependencies (#4084)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(lang): Translations update from Hosted Weblate (#4060)

* feat(lang): translated using Weblate (Russian)

Currently translated at 100.0% (1259 of 1259 strings)

feat(lang): translated using Weblate (Russian)

Currently translated at 100.0% (1258 of 1258 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

feat(lang): translated using Weblate (Russian)

Currently translated at 100.0% (1240 of 1240 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: st7105 <st7105@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ru/
Translation: Overseerr/Overseerr Frontend

* feat(lang): translated using Weblate (Romanian)

Currently translated at 50.6% (638 of 1259 strings)

feat(lang): translated using Weblate (Romanian)

Currently translated at 40.4% (509 of 1259 strings)

feat(lang): translated using Weblate (Romanian)

Currently translated at 40.3% (508 of 1259 strings)

Co-authored-by: George L <lazugeorgem@gmail.com>
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 (Italian)

Currently translated at 94.2% (1187 of 1259 strings)

Co-authored-by: danieledu007 <danielguillen274@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/it/
Translation: Overseerr/Overseerr Frontend

* feat(lang): translated using Weblate (French)

Currently translated at 100.0% (1259 of 1259 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: lolo <laurent.brelle@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/fr/
Translation: Overseerr/Overseerr Frontend

* feat(lang): translated using Weblate (Finnish)

Currently translated at 9.2% (117 of 1259 strings)

feat(lang): translated using Weblate (Finnish)

Currently translated at 8.6% (109 of 1259 strings)

Co-authored-by: Aleksi T <aleksi.tuhkanen@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: rijohi <risto.hirvilammi@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/fi/
Translation: Overseerr/Overseerr Frontend

---------

Co-authored-by: st7105 <st7105@gmail.com>
Co-authored-by: George L <lazugeorgem@gmail.com>
Co-authored-by: danieledu007 <danielguillen274@gmail.com>
Co-authored-by: lolo <laurent.brelle@gmail.com>
Co-authored-by: Aleksi T <aleksi.tuhkanen@gmail.com>
Co-authored-by: rijohi <risto.hirvilammi@gmail.com>

* fix: correct specials affecting availability status (#4092)

* fix: remove specials affecting availability status

* refactor: add comments for scanner

* fix: prevent request badge showing when no related media (#4100)

* fix: availability sync requests (#3460)

* fix: modified media status handling when media has been deleted

fix: requests will now be updated to completed on scan

fix: modified components to display deleted as a status

fix: corrected media status switching away from deleted

fix: modified components to display deleted as a status

fix: corrected media status switching away from deleted

fix: base scanner will set requests to completed correctly

fix: mark available button correctly sets requests as completed

fix: status will now stay deleted after declined request

refactor: request completion handling moved to entity

fix: prevented notifications from sending to old deleted requests

refactor: cleaned up code and added more detail to logs

refactor: updated to reflect latest availability sync changes

* fix: fetch requests only if necessary in db and remove unneeded code

* fix: update request button logic to accomodate specials

fix: remove completed filtering in tv details

* fix: correctly set seasons status when using the manual button

* refactor: improve reliability of season request completion

refactor: remove seasonrequest code

* fix: send notification for 4k movies

fix: same for shows

* feat: add completed filter to requests list

refactor: correct label

* fix: correct series setting to partially available (#4109)

* fix: correct edge case with deletion not updating requests (#4110)

* fix: correct notification sending for wrong status (#4113)

* fix(notifications): sending test-notifications for email now respects the allowSelfSigned value (#4112)

* docs: add vfaergestad as a contributor for code (#4114)

* docs: update README.md

* docs: update .all-contributorsrc

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* fix: handle currently available non-completed media (#4115)

* fix: check media status has changed before modifying request

fix: refactor: code cleanup

* fix: manually load database entity seasons

* fix: handle partial seasons more reliably (#4116)

refactor: remove matchingOldSeason variable

* fix: pwa app badge (#4117)

* fix: clear app badge at zero without notification

* fix: correct users check sometimes failing when searching push subs

* fix: filter specials from modal all seasons and watchlist (#4108)

* fix: filter specials from modal all seasons and watchlist

* fix: skip specials when marking available

* fix: edge case where specials were marked as completed

* fix: bypass specials when partial requests is disabled (#4126)

* refactor(MediaRequest): consolidate lifecycle hooks into subscriber & restrict cascade to prevent recursion (#4124)

* fix(mediarequest entity): narrow cascade to insert & remove to prevent hook recursion

Restrict cascade options on the MediaRequest→Media relation to only `insert` and `remove`to avoid
nested subscriber/AfterUpdate recursion when saving entities.

* fix(mediarequest): move methods modifying MediaRequest to its Subscriber

* fix(mediasubscriber): use event.manager for parent media updates on remove

Replace `getRepository(Media)` calls with `event.manager` in the `afterRemove` hook so that
parent-media status resets run within the same transaction/QueryRunner (important for postgresql.
Doesnt affect sqlite).

* refactor(mediasubscriber): make afterInsert and afterUpdate async and await internal operations

This should prevent unhandled promise rejections and ensure sequential execution of lifecycle
actions

---------

Co-authored-by: Gauthier <mail@gauthierth.fr>

* fix(mediaentity): change cascade from `update` to `remove` (#4135)

* fix(mediasubscriber): remove async from afterInsert and afterUpdate (#4136)

Asynchronous operations introduced in commit 3b9e195496c3db1f794549786b123a3ff55b08a0 caused issues
during media requests: the mediaId was not properly assigned and remained null.

* fix: better handling for active webpush subscription (#4146)

fix: remove yarn from package manager

fix: update openapi yml

---------

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>
Co-authored-by: Dargo <fuszi88@gmail.com>
Co-authored-by: senza <senza@users.noreply.hosted.weblate.org>
Co-authored-by: Robin Van de Vyvere <irazoxgames@gmail.com>
Co-authored-by: Frostar <dasangra@hotmail.com>
Co-authored-by: Nackophilz <zrv4flra@anonaddy.me>
Co-authored-by: TayZ3r <artimmo@hotmail.fr>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: W L <wl@mailhole.de>
Co-authored-by: Hyun Lee <hyun@yahoo.com>
Co-authored-by: cutiekeek <cutiekeek@gmail.com>
Co-authored-by: Rafael Souto <git@rafaelsouto.com>
Co-authored-by: Marc Lerno <mlerno1192@student.carlalbert.edu>
Co-authored-by: exentler <gurandsrud@gmail.com>
Co-authored-by: soup <s0up4200@pm.me>
Co-authored-by: JackOXI <53652452+JackW6809@users.noreply.github.com>
Co-authored-by: Stancu Florin <StancuFlorin@users.noreply.github.com>
Co-authored-by: Stancu Florin <florin@stancu.me>
Co-authored-by: Brandon Cohen <cohbrandon@gmail.com>
Co-authored-by: Felipe Garcia <garcia.o.felipe@gmail.com>
Co-authored-by: Rico <rico.jambor@gmail.com>
Co-authored-by: George L <lazugeorgem@gmail.com>
Co-authored-by: Yaroslav Buzko <yaroslav@buzko.com>
Co-authored-by: ugyes <ferenc.bodi@live.com>
Co-authored-by: Alberto Giardino <alberto.giardino@al-ce.it>
Co-authored-by: Lukas Miklosko <44380311+lmiklosko@users.noreply.github.com>
Co-authored-by: Ryan Cohen <ryan@sct.dev>
Co-authored-by: Andrew Kennedy <andrew-kennedy@users.noreply.github.com>
Co-authored-by: Danshil Kokil Mungur <me@danshilm.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: st7105 <st7105@gmail.com>
Co-authored-by: danieledu007 <danielguillen274@gmail.com>
Co-authored-by: lolo <laurent.brelle@gmail.com>
Co-authored-by: Aleksi T <aleksi.tuhkanen@gmail.com>
Co-authored-by: rijohi <risto.hirvilammi@gmail.com>
Co-authored-by: vfaergestad <49147564+vfaergestad@users.noreply.github.com>
2025-06-17 16:09:59 +05:00
fallenbagel
bb95c7009f fix: correct typing issue (#1715)
* fix(ntfy): display the current value of auth and fix types

When using the username/password as auth method, the saved value was not displayed properly because
of a wrong property name introduced by a missing type.

* fix: correct typing issue

---------

Co-authored-by: gauthier-th <mail@gauthierth.fr>
2025-06-14 01:14:12 +05:00
Gauthier
d4a6cb268a fix(blacklist): hide items from MediaSliders when hideBlacklisted is enabled (#1713)
This PR hides the blacklisted items from the MediaSliders appearing on the homepage when the
hideBlacklisted is enabled.
2025-06-14 00:48:26 +05:00
Gauthier
fb8677f29c fix(settings): add a tip for youtube URL setting (#1714)
This PR adds a tip explaining what is the purpose of the new 'Youtube URL' setting.
2025-06-14 00:47:56 +05:00
Gauthier
c0dd2e5e27 fix(filters): display the right value when resetting the filter options (#1695)
* fix(filters): display the right value when resetting the filter options

When clearing the filters everything is reset but the sort option still display the previous value,
while the content has now the default value.

fix #1693

* fix: remove console.log
2025-06-04 17:15:09 +08:00
wolffman122
515124bab4 fix(issuecomment): fix issue display lists in IssueComment (#1638)
* fix(issuecomment): fix issue display lists in IssueComment

The IssueComment module was not displaying markdown list's ordered or unorderd.  Removing the
allowed elements so all markdowns are allowed seems to fix this issue and work similar to github's
comment  control with lists and markdown.

fix #1328

* fix #1328 Added back allowedElements, added the list elements to it also.

* feat(fixes formatting issue): fixes formating issue that was committed by mistake

fixes formatting issue that was comitted by mistake

fix #1328
2025-05-20 13:23:57 +02:00
fallenbagel
52e85e1404 chore(i18n): update translations from weblate (#1670)
* Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/

* Translated using Weblate (French)
Currently translated at 94.7% (1409 of 1487 strings)
Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (Ukrainian)
Currently translated at 91.0% (1354 of 1487 strings)
Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/uk/

* Translated using Weblate (Turkish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/tr/

* Translated using Weblate (French)
Currently translated at 94.8% (1411 of 1487 strings)
Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (Dutch)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/nl/

* Translated using Weblate (Dutch)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/nl/

* Translated using Weblate (French)
Currently translated at 95.0% (1414 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (Dutch)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/nl/

* Translated using Weblate (Turkish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/tr/

* Translated using Weblate (French)
Currently translated at 99.9% (1486 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (French)
Currently translated at 99.9% (1486 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (German)
Currently translated at 98.6% (1467 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (Norwegian Bokmål)
Currently translated at 71.6% (1066 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/nb_NO/

* Translated using Weblate (French)
Currently translated at 99.9% (1486 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (Norwegian Bokmål)
Currently translated at 76.4% (1137 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/nb_NO/

* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 86.8% (1291 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/zh_Hans/

* Translated using Weblate (Spanish)
Currently translated at 87.2% (1297 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/es/

* Translated using Weblate (Basque)
Currently translated at 93.8% (1395 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/eu/

* Translated using Weblate (Polish)
Currently translated at 91.5% (1362 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/pl/

* Translated using Weblate (Basque)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/eu/

* Translated using Weblate (Russian)
Currently translated at 89.9% (1338 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/ru/

* Translated using Weblate (Ukrainian)
Currently translated at 91.0% (1354 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/uk/

* Translated using Weblate (Swedish)
Currently translated at 87.6% (1304 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 87.6% (1304 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (Swedish)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/sv/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (Bulgarian)
Currently translated at 83.3% (1239 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/bg/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (French)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (French)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/fr/

* Translated using Weblate (German)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/de/

* Translated using Weblate (Hebrew)
Currently translated at 43.2% (643 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/he/

* Translated using Weblate (Hebrew)
Currently translated at 44.3% (659 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/he/

* Translated using Weblate (Bulgarian)
Currently translated at 85.5% (1272 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/bg/

* Translated using Weblate (Russian)
Currently translated at 100.0% (1487 of 1487 strings)
Translate-URL: http://translate.jellyseerr.dev/projects/jellyseerr/jellyseerr-frontend/ru/

---------

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: HanaO00 <greenmalkak@gmail.com>
Co-authored-by: michael <michaelvelosk@gmail.com>
Co-authored-by: Gökhan GÜRBÜZ <gkhn.gurbuz@hotmail.com>
Co-authored-by: Julien Cordeau <julien-cg@hotmail.fr>
Co-authored-by: Bas <910100490+weblate@proton.me>
Co-authored-by: Dennis van J <weblate@amsx.net>
Co-authored-by: 0xsysr3ll <0xsysr3ll@protonmail.com>
Co-authored-by: bogomil22 <bogomil22@users.noreply.translate.jellyseerr.dev>
Co-authored-by: Mikael Wessel <post@mikaelkw.online>
Co-authored-by: chenhui_li <lichenhui1997@gmail.com>
Co-authored-by: Miguel Pacheco <runway-venus-kung@duck.com>
Co-authored-by: Thadah <thadahdenyse+borgcube@protonmail.com>
Co-authored-by: zulimazuli <zulimazuli@gmail.com>
Co-authored-by: Stefan <dev.stafloker@gmail.com>
Co-authored-by: Blackflexxy <blackflexxy@gmail.com>
Co-authored-by: Nik <niklas@olofsson.cc>
Co-authored-by: Mattias Magnusson <mattish.91@gmail.com>
Co-authored-by: NilsKarlssonPyssling <nisse@users.noreply.translate.jellyseerr.dev>
Co-authored-by: Manu <mswiss@bluewin.ch>
Co-authored-by: Georgi Sariev <sariev_g@icloud.com>
Co-authored-by: big man <commandfns1@gmail.com>
Co-authored-by: Veselin <vesko2345@gmail.com>
Co-authored-by: Gallyam <gallyamb@gmail.com>
2025-05-19 10:05:01 +02:00
Gauthier
24e1e94747 fix(ui): make person media type filter consistent on mobile (#1669)
This PR fixes the media type filter on mobile
2025-05-19 11:45:12 +08:00
Gauthier
8949edea7e fix: add missing cache for some tmdb images (#1656)
This PR replaces some Images with CachedImage for missing TMDB-related images.
2025-05-13 03:28:12 +08:00
Gauthier
e69649d71d feat: add caching for TVDB images (#1655) 2025-05-12 16:50:24 +08:00
Gauthier
d226dbb9b4 fix(url validation): correct URL validation for empty fields (#1657)
The isValidURL function was returning false when the provided value was undefined/null/empty, but
needs to return true instead so it doesn't interfere with Yup validation.
2025-05-12 16:18:34 +08:00
Gauthier
437bf0f4ee refactor(url validation): replace regex-based URL validation by the JavaScript URL constructor (#1650)
Replaced regex-based URL validation with the native JavaScript URL constructor to improve
reliability. This approach should be more robust and should help prevent bugs like the one we
previously encountered with malformed regex.

fix #1539
2025-05-09 13:15:18 +02:00
Gauthier
45f25408c6 fix(usediscover hook): detect end of pagination when totalSize is a multiple of pageSize (#1649)
Fixes a crash on the `/discover/watchlist` page that occurred when the number of items was exactly a
multiple of the page size (e.g., 80, 100, 120). The issue was caused by incorrect end-of-pagination
detection, leading to infinite data fetching. This update adjusts the `isReachingEnd` condition to
correctly handle these edge cases by checking if `totalResults` is less than or equal to the
expected total based on `size * pageSize`.

fix #1623
2025-05-09 13:15:05 +02:00
Gauthier
123894b475 fix(ui): correct seasons badge order (#1648)
This PR corrects the order of the seasons displayed on the request card, because it was not always
ordered if the pending request was edited with random clicks.
2025-05-09 13:14:50 +02:00
0xsysr3ll
6b9aedb970 fix(requestlist): remove unnecessary semicolon (#1647) 2025-05-09 15:11:16 +08:00
0xsysr3ll
e8f1edc062 feat(requestlist): add requests list media type filtering (#1511)
* feat: add requests list media type filtering

* chore: some better indent

* fix(lint): missing break statements before case

* fix: yet another lint issue

* fix(lint): yet another lint issue

* Revert "fix(lint): yet another lint issue"

This reverts commit 24c3f90ed0.

* fix: lint issues
2025-05-07 22:41:06 +08:00
Danish Humair
d01f9a0580 feat: allow changing YouTube host for trailers (#643)
* feat(server settings, movie/tv/settings components): allow changing YouTube URL for trailers

* fix: add i18n messages

* fix(i18n): remove unwanted translation change

---------

Co-authored-by: Gauthier <mail@gauthierth.fr>
2025-05-07 16:32:15 +02:00