1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-03-05 13:21:25 -05:00

Compare commits

...

236 Commits

Author SHA1 Message Date
ta264
6683c88bb9 Remove mono reference 2022-05-08 06:34:08 +01:00
Qstick
5824ba963b Fixed: Correct User-Agent api logging 2022-05-06 08:25:34 -05:00
Qstick
7f2d5d8d10 Delete nan.json 2022-05-01 22:30:00 -05:00
Qstick
81bffe243a Delete zh_Hans.json 2022-05-01 22:29:50 -05:00
Weblate
2d6fde282a Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 28.6% (320 of 1117 strings)

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 28.6% (320 of 1117 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 4.6% (52 of 1117 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 97.2% (1086 of 1117 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 19.1% (214 of 1117 strings)

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 4.5% (51 of 1117 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 95.9% (1072 of 1117 strings)

Update translation files  [skip ci]

Updated by "Remove blank strings" hook in Weblate.

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 3.5% (40 of 1117 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 2.0% (23 of 1117 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 99.5% (1112 of 1117 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.9% (1094 of 1117 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 19.0% (213 of 1117 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 19.0% (213 of 1117 strings)

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 1.1% (13 of 1117 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 93.9% (1049 of 1117 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 93.4% (1044 of 1117 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 91.3% (1020 of 1117 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 93.4% (1044 of 1117 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 93.0% (1039 of 1117 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 93.4% (1044 of 1117 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 93.2% (1042 of 1117 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 93.8% (1048 of 1117 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 98.8% (1104 of 1117 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 93.3% (1043 of 1117 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 95.7% (1070 of 1117 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 22.2% (248 of 1117 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 93.4% (1044 of 1117 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 93.4% (1044 of 1117 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 93.4% (1044 of 1117 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 93.3% (1043 of 1117 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 93.1% (1041 of 1117 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 94.1% (1052 of 1117 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 96.5% (1078 of 1117 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.9% (1094 of 1117 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 99.8% (1115 of 1117 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 99.8% (1115 of 1117 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 15.7% (176 of 1117 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 15.7% (176 of 1117 strings)

Co-authored-by: AnlakHui <AnlakHui@gmail.com>
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: EldestBard <449734150@qq.com>
Co-authored-by: Florian <sephrat.flo@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: M1C <webnar@gmail.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Zalhera <tobias.bechen@gmail.com>
Co-authored-by: andrey4korop <andrey999@i.ua>
Co-authored-by: jianjam <jianjam@qq.com>
Co-authored-by: killsover <w904202822@163.com>
Co-authored-by: lhquark <lhquark@gmail.com>
Co-authored-by: marcosteam <wdy71608161@gmail.com>
Co-authored-by: minermartijn <minermartijn@gmail.com>
Co-authored-by: neoestremi <remidu34070@hotmail.fr>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/uk/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_Hans/
Translation: Servarr/Radarr
2022-04-29 10:59:36 -05:00
Qstick
3125b038d5 Fixed: Wrong translation mapping can be used for file naming and metadata
Fixes #7243
2022-04-26 19:27:07 -05:00
Qstick
89e25a6241 Fixed: Translated fields are mapped incorrectly for existing search results 2022-04-26 18:29:15 -05:00
Qstick
4db6688fe0 Fixed: UI hiding search results with duplicate GUIDs
Closes #7241

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2022-04-24 13:16:20 -05:00
Qstick
4ac1aeaf06 Fixed: QBittorrent unknown download state: forcedMetaDL
Closes #7242

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2022-04-24 13:14:58 -05:00
Qstick
e2ae743ee1 Fix migration 207 distinct on tmdbid only for list movie insert 2022-04-24 13:13:05 -05:00
Robin Dadswell
9ad316a6f5 Fix metadata migration 2022-04-23 16:41:43 -05:00
Servarr
b643d2e23d Automated API Docs update 2022-04-23 20:35:25 +01:00
Qstick
6a03eddda9 Rework Movie Metadata data model 2022-04-23 13:14:03 -05:00
ta264
1576bf1f17 Temporarily ignore update tests until linux-x86 released 2022-04-23 02:25:39 -05:00
ta264
6325b70e27 New: Add linux-x86 builds
[common]
2022-04-23 02:25:39 -05:00
Qstick
24206ad0a3 New: Support Plex API Path Scan (Similar to autoscan)
Closes #4640
Closes #5527
2022-04-21 22:49:09 -05:00
Mark McDowall
2fc7cbff89 Fixed: Interactive Search Filter not filtering multiple qualities in the same filter row
(cherry picked from commit c93f63cd204bf62dab3dffef6e29c8dd4c408cab)
2022-04-18 21:07:50 -05:00
Tristan Kennedy
55ef505d74 Added padding to search tab to maintain visual consistancy 2022-04-15 23:58:45 -05:00
Qstick
cabdad6306 Fixed: Update ScheduledTask cache LastStartTime on command execution 2022-04-15 18:16:01 -05:00
Qstick
8d4b2dd21b Bump Version to 4.2 2022-04-15 16:47:28 -05:00
Qstick
ad04031c99 Bump webpack packages 2022-04-14 21:08:10 -05:00
Qstick
e9a5f87e45 Remove old DotNetVersion method and dep 2022-04-14 21:06:29 -05:00
Qstick
bc6ac0cd4b Bump Monotorrent to 2.0.5
Fixes #7206
2022-04-11 19:18:01 -05:00
Qstick
c2328e4b79 Fixed: Don't die if Plex watchlist guid node is missing or null
Fixes #7213
2022-04-11 08:30:39 -05:00
Servarr
36119facf0 Automated API Docs update 2022-04-10 22:10:41 -05:00
Justin Vanderhooft
a1fa1ddf5d New: Add support for Plex Watchlist importing (#5707)
* New: Add support for Plex Watchlists

* Fixed: Error when trying to import an empty Plex Watchlist

* cleanups

Co-authored-by: Mark McDowall <mark@mcdowall.ca>
Co-authored-by: Qstick <qstick@gmail.com>
2022-04-10 17:52:10 -05:00
Douglas R Andreani
ba770dce73 New: Add date picker for custom filter dates
(cherry picked from commit 5a08d5dc248bf1dbaa43264a2a470149cf716a3c)
2022-04-10 12:18:41 -05:00
ta264
d58f0806f6 Make postgres integration tests actually use postgres 2022-04-08 15:10:13 -07:00
bakerboy448
a95f8fa873 Fixed: Clarify Qbit Content Path Error
(cherry picked from commit bba4a5636ed07277d82531c35cfc996bd17870eb)
2022-04-06 22:09:13 -05:00
François-Xavier Payet
d1a9cf98cc Fixed: Use Movie Original Language for Custom Format Original Language (#6882) 2022-04-06 15:32:49 -05:00
ta264
be29fc6adb Fix .editorconfig to disallow this
[common]
2022-04-06 20:09:12 +01:00
ta264
c1085e965b FFMpeg 5.0.1 2022-04-06 13:57:32 +01:00
Marcelo Castagna
dc5c997e9b Fixed: Properly handle 119 error code from Synology Download Station
(cherry picked from commit 3be5d6c258bd947ae4c4d895b2f54faa5a7a222b)
2022-04-05 21:37:39 -05:00
Weblate
040acbf65a Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.9% (1094 of 1117 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 19.0% (213 of 1117 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 19.0% (213 of 1117 strings)

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 1.1% (13 of 1117 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 93.9% (1049 of 1117 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 93.4% (1044 of 1117 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 91.3% (1020 of 1117 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 93.4% (1044 of 1117 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 93.0% (1039 of 1117 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 93.4% (1044 of 1117 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 93.2% (1042 of 1117 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 93.8% (1048 of 1117 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 98.8% (1104 of 1117 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 93.3% (1043 of 1117 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 95.7% (1070 of 1117 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 22.2% (248 of 1117 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 93.4% (1044 of 1117 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 93.4% (1044 of 1117 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 93.4% (1044 of 1117 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 100.0% (1117 of 1117 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 93.3% (1043 of 1117 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 93.1% (1041 of 1117 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 94.1% (1052 of 1117 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 96.5% (1078 of 1117 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.9% (1094 of 1117 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 99.8% (1115 of 1117 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 99.8% (1115 of 1117 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 15.7% (176 of 1117 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 15.7% (176 of 1117 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Florian <sephrat.flo@gmail.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Zalhera <tobias.bechen@gmail.com>
Co-authored-by: andrey4korop <andrey999@i.ua>
Co-authored-by: jianjam <jianjam@qq.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/uk/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_Hans/
Translation: Servarr/Radarr
2022-04-05 19:30:50 -05:00
ta264
d089d036e6 Fixed: FFprobe failing on MacOS and AV1 streams 2022-04-05 19:24:22 +01:00
bakerboy448
46732c7d73 add 576 resolution back to simple title regex 2022-04-03 17:08:53 -05:00
Weblate
8fd3254745 Translated using Weblate (Ukrainian) [skip ci]
Currently translated at 1.6% (18 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 1.0% (12 of 1116 strings)

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 0.8% (10 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 97.7% (1091 of 1116 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 97.7% (1091 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 97.5% (1089 of 1116 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 96.7% (1080 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 96.7% (1080 of 1116 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.8% (1092 of 1116 strings)

Co-authored-by: Ana <phampyk@gmail.com>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: EthanChoy <ethanchoy@163.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Kakise <sam.taa@icloud.com>
Co-authored-by: Kevin Ho <309446119@qq.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: RicardoVelaC <ricardovelac@gmail.com>
Co-authored-by: Vincent <intelligentvincent@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: andrey4korop <andrey999@i.ua>
Co-authored-by: killsover <w904202822@163.com>
Co-authored-by: lhquark <lhquark@gmail.com>
Co-authored-by: libsu <libsu@qq.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: westay1984 <westjay@qq.com>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/uk/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_Hans/
Translation: Servarr/Radarr
2022-04-02 18:23:41 -05:00
ta264
9b21408a03 Set up tests on postgres 2022-04-03 00:06:30 +01:00
ta264
bd53092f0c Allow configuring postgres with environment variables 2022-04-03 00:06:30 +01:00
Robin Dadswell
80b1aa9a2c New: Postgres Support
Co-Authored-By: Qstick <376117+Qstick@users.noreply.github.com>
2022-04-03 00:06:30 +01:00
ta264
df863a08a1 Fixed: Loading old commands from database
(cherry picked from commit 0f87cb72e559a19bddc6c9d4387ec7d9428291f8)
2022-04-02 14:11:47 -05:00
Mark McDowall
8a0c318540 Fixed: Scrolling in Firefox in small window (requires refresh)
Closes #7142

(cherry picked from commit e3aa92d09a247f696a003b87f6e9511c33340a1d)
2022-03-31 21:52:04 -05:00
Mark McDowall
4f9d067361 Don't return early after re-running checks after startup grace period
Fixes #7147

(cherry picked from commit 06464d720c0d31c22865629062d6da0911d2a01f)
2022-03-31 21:26:07 -05:00
Mark McDowall
6739310ba8 Fixed: Delay health check notifications on startup
Closes #7145

(cherry picked from commit 07f0db477a91b39c1f4b884775c08a55ada487cf)
2022-03-31 21:25:46 -05:00
Qstick
a45b91abe8 New: Schedule refresh and process monitored download tasks at high priority
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2022-03-31 21:21:02 -05:00
Qstick
1ad2dc54b3 Fixed: Use Digital Release in ChangeFileDate if no Physical
Fixes #5647
2022-03-29 22:52:43 -05:00
Qstick
7f0b708cb9 Fixed: Cleanup Temp files after backup creation
[common]

Fixes #6815
2022-03-29 22:26:25 -05:00
ta264
c8cdf03077 Centralise image choice, update to latest images
Fixes #6957

(cherry picked from commit fa1985509d77dedd108286a159749fd5cf9d8599)
2022-03-29 22:21:42 -05:00
Weblate
c8afe578f3 Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 97.7% (1091 of 1116 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 97.7% (1091 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 97.5% (1089 of 1116 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 96.7% (1080 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 96.7% (1080 of 1116 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.8% (1092 of 1116 strings)

Co-authored-by: EthanChoy <ethanchoy@163.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Kakise <sam.taa@icloud.com>
Co-authored-by: Kevin Ho <309446119@qq.com>
Co-authored-by: RicardoVelaC <ricardovelac@gmail.com>
Co-authored-by: Vincent <intelligentvincent@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: libsu <libsu@qq.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: westay1984 <westjay@qq.com>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translation: Servarr/Radarr
2022-03-29 22:09:15 -05:00
Qstick
9bb394f420 Fixed: Validation when testing indexers, import lists, connections and download clients
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2022-03-28 20:04:10 -05:00
Robin Dadswell
4f512c5cdf New: Added UDP syslog support
(cherry picked from commit 8d856b2edb8bf46a2b516d5f7644ae3fa1151323)
2022-03-27 00:43:38 +00:00
nitsua
8ae84222d1 Add error handling to Notifiarr connect to reduce Sentry hits
Add Environment switch to Notifiarr connect
Add Instance Name to Notifiarr connect
2022-03-26 18:59:51 -05:00
Qstick
7ec0fd1cea Update multi parser test 2022-03-26 18:45:23 -05:00
Qstick
ad8629fac9 Remove old Multi language workaround 2022-03-26 18:09:47 -05:00
Taloth Saldono
32393eabb7 Add response size to http responses
(cherry picked from commit d899225509f04a9b6c72da19c7d63ff53498de22)
2022-03-21 18:56:14 -05:00
Robin Dadswell
6f42dd671f Linting fixes for frontend following eslint package upgrade 2022-03-21 08:44:19 +00:00
Qstick
966963b53d FontAwesome 6 2022-03-20 12:03:09 -05:00
Qstick
43a74ab32a Bump react-text-truncate to 0.18.0 2022-03-20 11:57:24 -05:00
Qstick
897e4b4d0a Bump qs to 6.10.3 2022-03-20 11:56:27 -05:00
Qstick
0dd639ff76 Bump clipboard.js to 2.0.10 2022-03-20 11:55:41 -05:00
Qstick
64da17a9ab Change react-custom-scrollbars to react-custom-scrollbars-2 2022-03-20 11:51:26 -05:00
Qstick
dbaabf90a5 Update frontend babel packages 2022-03-20 11:30:43 -05:00
Qstick
1aabc4bc5c Update frontend stylelint packages 2022-03-20 11:24:03 -05:00
Qstick
cce4334310 Update frontend eslint packages 2022-03-20 11:22:25 -05:00
Qstick
8d54b4268b Bump Sentry to 3.15.0 2022-03-20 11:07:00 -05:00
Qstick
2be9b306a3 Bump NLog to 4.7.14 2022-03-20 11:06:14 -05:00
Qstick
7f5cd9a765 Bump FluentMigrator to 3.3.2 2022-03-20 11:02:50 -05:00
Qstick
d26ca9a7a5 Bump dotnet to 6.0.3 2022-03-20 11:01:31 -05:00
Qstick
933796e214 Bump DryIoc to 4.8.8
Potentially Fixes #7141
2022-03-20 10:58:47 -05:00
Weblate
121a347fc9 Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 0.7% (8 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 97.0% (1083 of 1116 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 96.9% (1082 of 1116 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 99.9% (1115 of 1116 strings)

Co-authored-by: 3limin4tor <cedric.annen@gmail.com>
Co-authored-by: Ayi <4ayixd@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Kevin Ho <309446119@qq.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: 杰森 <john@johnrosen1.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_Hans/
Translation: Servarr/Radarr
2022-03-17 12:45:49 -05:00
Servarr
ed060d552f Automated API Docs update 2022-03-14 22:43:15 -05:00
Qstick
51485259ae Allow more startup time for openapi generation
Radarr has many migrations
2022-03-14 22:30:18 -05:00
Qstick
76a3ca37ed Bump Swashbuckle to 6.3.0 2022-03-14 22:25:17 -05:00
Qstick
e5e7292f11 Removed non-functional altyear API controller 2022-03-14 19:42:40 -05:00
Qstick
397ee20160 Update API docs
Co-Authored-By: Servarr <32001786+ServarrAdmin@users.noreply.github.com>
2022-03-13 22:13:29 -05:00
Qstick
2914c3c88f API is v3 2022-03-13 22:03:03 -05:00
Qstick
750cb94692 Fix Prowlarr references 2022-03-13 21:55:55 -05:00
Qstick
1ffbae9d16 Autogenerated API docs 2022-03-13 21:46:25 -05:00
Weblate
a515c5c7a5 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: José Eduardo Veiga <vitruxpt@vitruxbot.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translation: Servarr/Radarr
2022-03-11 01:45:19 -06:00
Weblate
c58f31d690 Translated using Weblate (French) [skip ci]
Currently translated at 96.3% (1073 of 1114 strings)

Co-authored-by: KevoM <lilmarsu@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translation: Servarr/Radarr
2022-03-06 21:25:30 -06:00
Qstick
2041797587 New: Language filter on manual search
Fixes #6921
2022-03-06 19:26:25 -06:00
Qstick
b1d8763593 Fix HistorySpecification tests 2022-03-06 18:50:40 -06:00
Qstick
ff7f95a0ab New: Original Language and Title sort and filter options
Fixes #7019
Fixes #5438
2022-03-06 18:47:45 -06:00
Mark McDowall
ccd561eb24 Fixed: Clearing logs not updating UI once complete
Fixes #7090
2022-03-06 18:14:47 -06:00
Qstick
3e353a6710 Fixed: On Import notifications for webhooks
Fixes #7084

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2022-03-06 18:01:52 -06:00
Mark McDowall
544e942fe4 Fixed: Send download client name instead of type for grab events
Closes #7078
2022-03-06 18:01:52 -06:00
Mathis
8bb3764708 New: Add qBittorrent sequential order and first and last piece priority options
Fixes #7057
2022-03-06 17:50:42 -06:00
Qstick
356013a84e Fixed: Profiles with upgrades disabled incorrectly allowing upgrades in some cases
Fixes #7040

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2022-03-06 17:47:59 -06:00
Qstick
75b2414e29 New: Add Release group to history for all events
Fixes #6986

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2022-03-06 17:27:25 -06:00
Qstick
4084ce5c2f Bump FFProbe to 5.0 2022-03-06 17:19:39 -06:00
Mark McDowall
ca2f12338e Fixed: Parsing of quality in DP.WEB releases
Closes #7079

(cherry picked from commit 9e820144549c12cfc05700642c3a6affcb2be4d2)
2022-03-06 17:13:49 -06:00
bakerboy448
347fdc1572 Fixed: Correctly Detect Remux prefixed by Brackets 2022-03-06 17:13:49 -06:00
bakerboy448
6c04d0701c Fixed: Treat 720p BR Remux as BluRay
Fixes #7009
2022-03-06 17:13:49 -06:00
bakerboy448
3f4e5e55a3 Fixed: Better Cleansing of Tracker Announce Keys
Fixed: Cleanse Notifiarr secret from URL in logs (API)

sonarr ec866082d44d299096112a6c7c232384b1f74505
2022-03-06 17:13:49 -06:00
bakerboy448
7310481e6a New: Dont parse hash as release group
Fixed tests
2022-03-06 17:13:49 -06:00
bakerboy448
e59a1a64f9 New: Support for parsing various Anime Groups
DusIctv
DHD
SEV
CtrlHD
-ZR-
XZVN
ADC
Koten_Gars
RH
Kametsu
BluDragon
2022-03-06 17:13:49 -06:00
bakerboy448
5c1ebc72b3 Fixed: Dont Parse HDRip as group 2022-03-06 17:13:49 -06:00
bakerboy448
a96971beff New: Support for parsing [HDO] as HDO Group
Fixed: Don't parse -EN, -ES, -CAT as Group

Refactored exception group regex and related parser code
2022-03-06 17:13:49 -06:00
Robin Dadswell
b34f4fde1b Fixed: Updater version number logging
[common]
2022-03-06 14:25:53 -06:00
Alan Collins
a9b2635cb0 Adjusted the Windows LongPath support check for valid segment lengths
(cherry picked from commit 52c6bc5549ab998ccc018d138c55f8f924eed6d3)
2022-03-05 14:26:12 -06:00
Dane Powell
1ed8bd7350 PWA missing name 2022-03-05 14:25:22 -06:00
Weblate
f0891e9df7 Translated using Weblate (Chinese (Traditional) (zh_TW)) [skip ci]
Currently translated at 0.1% (2 of 1114 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1114 of 1114 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 99.0% (1103 of 1114 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 95.4% (1063 of 1114 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 95.5% (1064 of 1114 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 100.0% (1114 of 1114 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 94.2% (1050 of 1114 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1114 of 1114 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1114 of 1114 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 100.0% (1114 of 1114 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1114 of 1114 strings)

Co-authored-by: AlexR-sf <omg.portal.supp@gmail.com>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Nuno Filipe de Vilhena Santos <nunovilhenasantos@msn.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Rico_Walker <ricardo.walker1203@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Zalhera <tobias.bechen@gmail.com>
Co-authored-by: allanantunez <allanantunez@gmail.com>
Co-authored-by: nopetw <lubduphaur@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_TW/
Translation: Servarr/Radarr
2022-03-05 14:24:35 -06:00
Qstick
5834afe30b SimpleTitleRegex catchup
Fixes #7104
Fixes #5926
Fixes #6784
Closes #7105

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2022-03-05 11:36:28 -06:00
bakerboy448
c015a3ebf0 Fixed: Assume SABnzbd develop version is 3.0.0 if not specified
Fixes #7093

(cherry picked from commit 77412f23766e8bb553e83d87f1e599e795a67f8b)
2022-03-05 11:08:38 -06:00
Qstick
8fd1f121f4 Bump node build version to 16.X LTS
Regenerate yarn.lock
2022-03-05 11:05:02 -06:00
Qstick
b18cc49a83 Bump dotnet to 6.0.2 2022-03-05 10:56:25 -06:00
Qstick
69b969cfc8 Bump version to 4.1.0 2022-03-04 19:11:10 -06:00
Robin Dadswell
bc3e3714b9 Fixed: Update from version in logs
[common]
2022-03-04 07:08:14 -06:00
Marcelo Castagna
85dd5f5754 Update Synology error codes
(cherry picked from commit a8cb7784f2a6f833bda9e24ca2146701df8da75c)
2022-02-27 11:57:59 -06:00
Robin Dadswell
7de270b212 Fixed: Remove pre-DB from frontend storage 2022-02-25 18:16:08 -06:00
Robin Dadswell
b1afd7aaaa Fixed: Removing multiple items from the queue wording 2022-02-23 13:31:15 +00:00
bakerboy448
894fafcad7 Fixed: Improve help text for download client Category
(cherry picked from commit d18751eff2c684a72e4c698a1e0f6c282c8da0da)
Closes #7056
2022-02-22 21:41:45 +00:00
bakerboy448
2cf62915b0 New: Update Cert Validation Help Text [common]
(cherry picked from commit 66be23a7c4ae717cf060f5e89b4df7a08bdff5ac)
Closes #7065
2022-02-22 21:41:45 +00:00
PearsonFlyer
d3743446da Fixed: Updated ruTorrent stopped state helptext
(cherry picked from commit 69ccb96a365b12ec57cfb642f52f7c6ab8c67262)
2022-02-21 19:51:41 -06:00
4toomany
b332fa55de fixed text box not being uniform to others 2022-02-21 19:47:28 -06:00
Zack Eckersley Pallett
36da57f87b New: Add backup size information
Closes #4830

(cherry picked from commit 78aeda1a2cc217c367c5c3c6fd281c101b28413c)
2022-02-21 22:53:47 +00:00
Robin Dadswell
07bb5e416b Fix swagger inCinema references 2022-02-21 22:53:39 +00:00
Mark McDowall
69207ba77b Fixed: Recycle bin log message
(cherry picked from commit 9e1b799fb74c341510d6da98f9f658d642b25c02)
2022-02-21 22:53:33 +00:00
bakerboy448
ff409d3661 Fix nzbdrone reference 2022-02-21 21:29:34 +00:00
bakerboy448
dfb8d2ea0f additional testcase obfuscation
closes #6850
2022-02-21 21:24:58 +00:00
Ajax
603db7c76b Fixed: IPv4 instead of IP4
(cherry picked from commit c7427f8df828733a81d83ea28393a18d10875769)
2022-02-21 15:08:06 -06:00
ta264
6fa0cdc9a8 Report runtime identifier to sentry
(cherry picked from commit 6d9413627388c2004c3a5dffdbe2269dadeef326)
2022-02-20 20:49:30 +00:00
ta264
c0cbbc7ed4 Update API URL 2022-02-18 12:39:46 -06:00
ta264
daa9ee30a2 Fixed: No longer require first run as admin on windows
(cherry picked from commit 8d9302da7761752189b2d2820915d7d13197ce47)
2022-02-18 11:42:31 +00:00
ta264
86102349c5 Build installer from build.sh
(cherry picked from commit 6db135877a8394244a95142347b99ea651e0cceb)

Closes #6958
2022-02-18 11:42:31 +00:00
ta264
c4d035f0ad Fixed: Enable response compression over https
(cherry picked from commit cb0ae3603309daae4d6b026de15f26cb4b59096d)
2022-02-16 19:06:37 +00:00
Qstick
95d44f968f Bump to 4.0.5 2022-01-30 21:25:25 -06:00
ta264
e7a8f6332c Fixed: Handle missing category when getting Qbittorrent download path
Fixes RADARR-7HC
Fixes RADARR-V49

(cherry picked from commit 6f97ca9a55471386454457ca52b93733e18e85e4)
Closes #6993
2022-01-25 20:10:52 -06:00
Qstick
b8c92d23f4 Fixed: Ignore case for DIVX VideoCodecID 2022-01-25 19:01:01 -06:00
bakerboy448
093e076db0 Fixed: Clarify Indexer Priority Helptext 2022-01-24 19:35:38 -06:00
Volodymyr Medvid
f6f949415c Fix Ukrainian language mappings 2022-01-24 19:23:12 -06:00
Qstick
ea2576a56c Bump to 4.0.4 2022-01-23 19:03:07 -06:00
Qstick
595acb696d Fixed: Bump FFMpegCore to avoid DivideByZero error 2022-01-23 18:24:28 -06:00
Qstick
38c9534eac Fixed: Webhook fails due to Frames/Analysis property serialization on MediaInfo 2022-01-23 18:24:28 -06:00
bakerboy448
9377ef7942 Fixed: Improved Indexer test failure message when no results are returned
(cherry picked from commit 05b1581b7dfa5bc8a2b38a60179e3472c8134f74)
2022-01-23 16:18:37 -06:00
bakerboy448
c2e5686bcf fixed sonarr ref in UTorrentSettings 2022-01-23 14:44:31 -06:00
Qstick
f08807daf6 Update donation links [common] 2022-01-23 12:12:16 -06:00
bakerboy448
72b3caa72d Fixed: Various Translations 2022-01-21 18:52:46 -06:00
Qstick
589368781b Fixed Incorrect placeholder width on search page
Co-Authored-By: nitsua <8321115+austinwbest@users.noreply.github.com>
2022-01-20 21:12:30 -06:00
Qstick
8fd6101121 New: Add AppName to system status response
Fixes #6952
2022-01-18 23:23:41 -06:00
Mark McDowall
ac9d6cbf0a Fixed: Jump bar on series page not showing when window is made wider
(cherry picked from commit 0cb8d93069d6310abd39ee2fe73219e17aa83fe6)
2022-01-17 11:30:47 -06:00
Qstick
6e0ed36e9f Fixed: Correct queue color for status bars 2022-01-17 08:58:07 -06:00
Qstick
fcb65055ef Bump to 4.0.3 2022-01-15 16:24:50 -06:00
bakerboy448
90456bbfed fixup 2022-01-15 14:51:11 -06:00
bakerboy448
2a74b7b2e1 Fixed: Parse HD.DVD as BluRay
Fixes #6925
2022-01-15 14:51:11 -06:00
Qstick
fc08c39fb8 Fixed: Revert manual import augmentation for unknown items 2022-01-15 14:24:51 -06:00
PearsonFlyer
76d65bf990 Fixed: Translation warning for search all 2022-01-15 07:27:58 -06:00
ta264
de243991dd Support for digest auth with HttpRequests
(cherry picked from commit 1e2d931f9a)
2022-01-13 19:23:30 -06:00
Qstick
4d1f251c1f Bump version 4.0.2 2022-01-10 19:59:16 -06:00
Qstick
ebb1e3131a Fixed: Use general settings cert validation for email 2022-01-10 09:17:54 -05:00
Qstick
6e502d63c2 Fixed: Handle wmapro and wmv3 codecs in formatter
Fixes RADARR-1G5R
Fixes RADARR-1G7V
2022-01-08 13:50:03 -06:00
Qstick
57e05b70da Remove unused variable from MovieHistoryRow 2022-01-08 01:09:02 -06:00
Qstick
59186adbfc Fixed: Mark as Failed from Movie Details page
Fixes #6483
2022-01-08 00:54:27 -06:00
Qstick
bc20e159ba Bump dotnet to 6.0.1
Security patch release
2022-01-07 21:33:48 -06:00
ta264
39b99341cd Fixed: Use our own HttpClient for Aria2 requests
[common]
2022-01-07 21:22:55 -06:00
ta264
b626c5bbf0 Fixed: Use our own HttpClient for rTorrent RPC requests
[common]
2022-01-07 21:22:55 -06:00
Robin Dadswell
a33b861cec Fixed: Download Client not sending on Import or Upgrade notifications (#6908)
* Fixed: Download client and ID for custom scripts

Based on Sonarr Commit eea3419849

* fixup! test

Co-authored-by: Qstick <qstick@gmail.com>
2022-01-06 22:04:10 -06:00
Qstick
3a48f07702 Fixed: Twitter connect not sending messages after http rework (#6901) [common] 2022-01-06 21:42:32 -06:00
Weblate
1aec0b7ee5 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 99.9% (1106 of 1107 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 99.0% (1096 of 1107 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 99.5% (1102 of 1107 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 99.8% (1105 of 1107 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 99.9% (1106 of 1107 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.2% (1077 of 1107 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 99.4% (1097 of 1103 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1103 of 1103 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 98.6% (1088 of 1103 strings)

Co-authored-by: AlexR-sf <omg.portal.supp@gmail.com>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Gian Klug <gian.klug@ict-scouts.ch>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Math <thimath62@live.fr>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: diemade <spamkill@posteo.ch>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ru/
Translation: Servarr/Radarr
2022-01-06 21:32:57 -06:00
nitsua
3e32161791 Fix broken headers on List Exclusion table 2022-01-05 20:03:50 -06:00
Qstick
fda1ad237b Fixed: Map DV Blu-ray to HDR10 compatibility 2022-01-04 23:46:36 -06:00
bakerboy448
52b6f39026 Fixed: Update indexer flag help link 2022-01-04 21:53:40 -06:00
Qstick
100fd95dd9 Fixed: Fix bad ratings objects in Migration 206 2022-01-03 20:20:16 -06:00
Mehul Vaghani
d571c7b75a Fixed: Updated link to Indexer Flags (#6893)
* Fixed: Updated link to Indexer Flags

* Fix: Updated link to Indexer Flags documentation

* Fix: Updated link to reflect right section
2022-01-03 18:15:32 -06:00
Qstick
8d7f48739b Bump version to 4.0.1 2022-01-03 14:20:47 -06:00
Mark McDowall
c061d7cec8 Fixed: Report certificate validation failures when configuring Plex Media Server connection
Closes #6797

(cherry picked from commit ec62884649f7af5f0a29346741754590e6de99ce)
2022-01-02 18:56:33 -06:00
Mark McDowall
91691205db Fixed: Download client name in history details
Closes #6838
2022-01-02 18:54:24 -06:00
Qstick
c1e07b30d7 Bump DSN for 4.0.0 2022-01-02 18:46:22 -06:00
Qstick
78a7770858 Fix CSS classes for Imdb and Tmdb ratings 2022-01-01 22:12:10 -06:00
Qstick
599f4907f4 New: Imdb Ratings 2022-01-01 20:18:18 -06:00
Weblate
ec9a7f5c8e Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 99.9% (1101 of 1102 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 99.9% (1101 of 1102 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.0% (1070 of 1102 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 98.8% (1089 of 1102 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 98.8% (1089 of 1102 strings)

Update translation files  [skip ci]

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: AlexR-sf <omg.portal.supp@gmail.com>
Co-authored-by: François-Xavier Payet <fx.payet@tfdn.cloud>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: diemade <spamkill@posteo.ch>
Co-authored-by: reloxx <reloxx@interia.pl>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ru/
Translation: Servarr/Radarr
2022-01-01 16:50:43 -06:00
Robin Dadswell
54c914d48f New: End Jackett 'all' endpoint support
[common]
2022-01-01 19:26:13 +00:00
Qstick
75270d8151 Fixed: Avoid ArgumentRangeException on FFProbe check when no sidedata frames
Fixes RADARR-1G5Q
2022-01-01 10:48:24 -06:00
Qstick
7a859f340b Fixed: Avoid download path check false positives for flood 2021-12-29 18:25:11 -06:00
bakerboy448
13e44ce19a New: Add {MediaInfo VideoDynamicRangeType} token for renaming
New: Detect HDR Type
New: Display HDR Type in File Media Info Modal

Based on Sonarr 7b694ea71d7f78bad5c03393c4cf6f7a28ada1cb

Closes #6789
Fixes #4844

Co-authored-by: ta264 <ta264@users.noreply.github.com>
Co-authored-by: Qstick <qstick@gmail.com>
2021-12-29 10:10:11 -06:00
Weblate
9e4c94592d Update translation files [skip ci]
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/
Translation: Servarr/Radarr
2021-12-28 17:06:21 -06:00
Weblate
9d2a59b7fd Update translation files [skip ci]
Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 99.9% (1115 of 1116 strings)

Co-authored-by: AlexR-sf <omg.portal.supp@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ru/
Translation: Servarr/Radarr
2021-12-27 17:44:28 -06:00
bakerboy448
194e0f3d7f Fixed: Various Translations 2021-12-26 21:49:44 -06:00
Qstick
d1fa92bc6c Fixed: Manual Import language handling 2021-12-26 19:41:37 -06:00
Qstick
974e44ce48 New: Link indexer to specific download client 2021-12-26 19:07:22 -06:00
Taloth Saldono
de05be62d7 Added BDLight to quality parser
(cherry picked from commit 5c8f2518baa1b2d4a8b0507f9fafe12b2ecff1e5)
2021-12-26 19:05:11 -06:00
Qstick
cae5badee0 New: Support server notifications
(cherry picked from commit f5f0dd6fae5bc9f308506d56be42ac9a4be908e7)

Closes Radarr #5393

[common]
2021-12-26 15:48:28 -06:00
Qstick
45d8227654 Fixed: Handle MS variant MPEG4 files in video formatter 2021-12-25 18:24:30 -06:00
ta264
7bbd2246c4 Fix secondary ffprobe scan 2021-12-24 17:47:17 +00:00
ta264
59fed13442 MediaInfoModel initializer -> assignment for NRE tracking 2021-12-23 21:41:38 +00:00
Qstick
50b273acae Fixed: Ignore permissions issues on recycle bin files 2021-12-24 11:05:22 -06:00
Qstick
4278415fd7 Fixed: Default MinAvail to Released if not passed on add
Fixes #2117
2021-12-24 11:05:22 -06:00
Qstick
124b50288d Fix invalid PropType for sizeOnDisk in DeleteMovieModal 2021-12-24 11:05:22 -06:00
bakerboy448
3fcc395964 Fixed: Escape Characters as needed for *znab queries
Fixes #6799

[common]
2021-12-23 15:12:05 -06:00
Weblate
0ee9981cba Translated using Weblate (Arabic) [skip ci]
Currently translated at 95.7% (1069 of 1116 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 98.5% (1100 of 1116 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 99.7% (1113 of 1116 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 99.5% (1111 of 1116 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Slovak) [skip ci]

Currently translated at 10.1% (113 of 1114 strings)

Translated using Weblate (Slovak) [skip ci]

Currently translated at 10.0% (112 of 1113 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 98.0% (1091 of 1113 strings)

Added translation using Weblate (Ukrainian) [skip ci]

Added translation using Weblate (Persian) [skip ci]

Added translation using Weblate (Bengali) [skip ci]

Co-authored-by: AlexR-sf <omg.portal.supp@gmail.com>
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Qstick <qstick@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: htrex <hantarex@gmail.com>
Co-authored-by: rakan <rakaz30@hotmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/sk/
Translation: Servarr/Radarr
2021-12-23 15:10:42 -06:00
Qstick
2848899206 Fixed: Calendar can show incorrect Release Types 2021-12-23 14:34:48 -06:00
Qstick
f1a00764cd New: Additional logging for InvalidModel BadRequest API calls
[common]
2021-12-23 14:22:09 -06:00
Qstick
346236764c Drop all Commands rows before running migration 204 2021-12-23 11:50:13 -06:00
Qstick
eecd4e4b7d New: Allow Import to update existing Custom Formats
Fixes #6178
2021-12-21 19:18:36 -06:00
Qstick
2838d8ca29 Add Ratings to Movie Index sort menu
Fixes #6741
2021-12-21 19:01:11 -06:00
bakerboy448
4ebcbc28aa fix applicationupdate filename typo
fix onapplicationupdate translate typo
2021-12-21 18:23:42 -06:00
Qstick
2c24f7ca04 Ensure Identity on Tables that have been modified 2021-12-21 18:09:05 -06:00
Qstick
ec86de78d2 Maintain PrimaryKey and AutoIncrement on some schemas
[common]
2021-12-21 17:45:00 -06:00
Qstick
4f5f9ff77e Update NotificationResource.cs 2021-12-21 16:07:25 -06:00
erikp9
465bb403a9 fixed hardsub detection 2021-12-21 07:58:13 -06:00
Qstick
9e175e28ef New: OnApplicationUpdate Notifications (#6854)
Fixes #4681
[common]
2021-12-20 23:12:12 -06:00
Qstick
4d2a311e40 Remove PreDB from MovieStatusType
Fixes #5002
2021-12-20 21:25:07 -06:00
Qstick
b2195148a2 Fixed: NullRef in SchemaBuilder when sending payload without optional Provider.Settings fields 2021-12-20 20:38:16 -06:00
Qstick
2ae7371d73 Update Deluge log statements 2021-12-20 20:35:38 -06:00
Mark McDowall
7b03a856c9 Fixed: Increase width and truncate long titles on Import List Exclusions
Closes #6779

(cherry picked from commit 2d0541c03b761a0ec5e10711d6bd577e07141517)
2021-12-20 20:16:22 -06:00
Qstick
48d1d47b67 Rename ImportExclusions to ImportListExclusions 2021-12-20 20:16:22 -06:00
Qstick
906b9bb92a Fixed: Use unmodified titles when searching Nyaa
Fixes #6642

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2021-12-20 20:16:22 -06:00
Mark McDowall
6fc14278e6 Fixed: Parsing of quality when release group contains Remux
Closes #6607
2021-12-20 19:58:47 -06:00
Mark McDowall
34b269086d Fixed: Get full path for download station instead of shared folder
Closes #6751
Fixes #6818

(cherry picked from commit b184e62fa7dd7ecd089619f176e6388c1c3be25d)
2021-12-20 19:55:09 -06:00
Qstick
6c40a27f2e Restore Parse API compatibility
Fixes #6852
2021-12-20 19:54:01 -06:00
Qstick
be158a09b4 Ensure new languages are in All collection 2021-12-20 19:44:35 -06:00
Robin Dadswell
eecd746f51 New: Health check for Discord notifications setup as Slack 2021-12-21 00:59:53 +00:00
Robin Dadswell
5ed034320e New: Migrate Discord from Slack to Discord notifications 2021-12-21 00:59:53 +00:00
bakerboy448
41dd678dfd Better wording of MissingFromDisk
closes #6834
2021-12-20 18:56:52 -06:00
Qstick
716eadc551 Add Multiple Languages
Closes #6385
Closes #6564
Closes #6694
Closes #6463

Co-Authored-By: siankatabg <siankatabg@users.noreply.github.com>
Co-Authored-By: tandy1000 <24867509+tandy-1000@users.noreply.github.com>
Co-Authored-By: Kristof Mattei <864376+kristof-mattei@users.noreply.github.com>
Co-Authored-By: Oleksandr Hulyi <4095184+pamidur@users.noreply.github.com>
2021-12-20 18:01:00 -06:00
bakerboy448
1cb31aa95c Fixed: Support movies with French in their title
Regression: Dropped Support for poorly named French Releases

Add language test case

Fixes #6821
2021-12-20 17:32:53 -06:00
Weblate
568dd2fbb2 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1113 of 1113 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 99.9% (1112 of 1113 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1113 of 1113 strings)

Co-authored-by: AlexR-sf <omg.portal.supp@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: reloxx <reloxx@interia.pl>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ru/
Translation: Servarr/Radarr
2021-12-20 17:21:44 -06:00
Qstick
5d091e519e More Bluray UHD test cases
Fixes #6839
2021-12-19 22:57:06 -06:00
Qstick
faab78c00a Fixed: Improve WEBDL detection of Netflix Rips
Co-Authored-By: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>
2021-12-19 22:53:51 -06:00
Qstick
f1461056ce Fixed: Parsing of Ger.Dub releases as German
Fixes #6778

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2021-12-19 22:50:42 -06:00
ta264
2042ffce62 Fixed: Don't buffer update package to memory when downloading
[common]
2021-12-19 22:32:37 -06:00
ta264
c6ae6f7b1c Reinstate update tests on BSD
[common]
2021-12-19 22:32:37 -06:00
Weblate
8d7affae68 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 100.0% (1113 of 1113 strings)

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translation: Servarr/Radarr
2021-12-19 22:29:56 -06:00
Qstick
a418111245 remove removeHandler net6 serialization frontend hack 2021-12-19 20:39:45 -06:00
Qstick
6359ed5757 Bump RestSharp in test package to 106.15.0 2021-12-18 10:04:26 -06:00
Weblate
9a8c1d7d1b Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1113 of 1113 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (1113 of 1113 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 97.2% (1082 of 1113 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Jessie <1355239678@qq.com>
Co-authored-by: Nuno Filipe de Vilhena Santos <nunovilhenasantos@msn.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translation: Servarr/Radarr
2021-12-15 22:04:26 -06:00
bakerboy448
e89c2ee9f7 Fixed: Better wording of MissingFromDisk
[common]
2021-12-14 21:08:23 +00:00
Servarr
3d36f88939 Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci] (#6810)
Currently translated at 100.0% (1113 of 1113 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 99.9% (1112 of 1113 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1113 of 1113 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 99.7% (1110 of 1113 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1113 of 1113 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: 西行寺鬼鬼子 <zhang.yaowei@live.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translation: Servarr/Radarr

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: 西行寺鬼鬼子 <zhang.yaowei@live.com>
2021-12-13 22:37:07 -05:00
Jacob Roeland
8e4320a93b Fix FAQ Link on Add New Movie page 2021-12-13 07:36:23 -06:00
Servarr
b095676010 Translations using Weblate [skip ci] 2021-12-12 11:28:24 -06:00
bakerboy448
41d69d8484 fix erroneous logging for windows service on non-windows
[common]
2021-12-11 22:20:16 -06:00
ta264
073e59e3db Fixed: Windows installer and adding/removing services
(cherry picked from commit 27e3b5e630f04b0774bd6693ffb1c79e7cab95d6)
2021-12-08 21:58:50 +00:00
ta264
588a0843a4 Fixed: Support older glibc in libMonoPosixHelper
(cherry picked from commit 9e7af8369e165c19a2f181071e63bef6961cd64e)
2021-12-08 16:04:51 -06:00
ta264
26cedfd47d Fixed: ffprobe on macOS 10.13 2021-12-07 21:11:35 +00:00
bakerboy448
16789e5b6b New: Display Unknown Items in Activity Queue by Default 2021-12-07 17:34:04 -06:00
Weblate
159edcde94 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 99.9% (1112 of 1113 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 98.6% (1098 of 1113 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 99.7% (1110 of 1113 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 96.8% (1078 of 1113 strings)

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: hidaba <nag@hidaba.com>
Co-authored-by: x-nemesis <fsedgy@outlook.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translation: Servarr/Radarr
2021-12-07 17:33:52 -06:00
887 changed files with 25438 additions and 13359 deletions

View File

@@ -19,10 +19,10 @@ indent_size = 4
dotnet_sort_system_directives_first = true
# Avoid "this." and "Me." if not necessary
dotnet_style_qualification_for_field = false:refactoring
dotnet_style_qualification_for_property = false:refactoring
dotnet_style_qualification_for_method = false:refactoring
dotnet_style_qualification_for_event = false:refactoring
dotnet_style_qualification_for_field = false:warning
dotnet_style_qualification_for_property = false:warning
dotnet_style_qualification_for_method = false:warning
dotnet_style_qualification_for_event = false:warning
# Indentation preferences
csharp_indent_block_contents = true
@@ -32,10 +32,6 @@ csharp_indent_case_contents_when_block = true
csharp_indent_switch_labels = true
csharp_indent_labels = flush_left
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_event = false:suggestion
dotnet_naming_style.instance_field_style.capitalization = camel_case
dotnet_naming_style.instance_field_style.required_prefix = _

4
.gitignore vendored
View File

@@ -187,6 +187,10 @@ packages.config.md5sum
**/.idea/**/*.iml
**/.idea/**/contentModel.xml
**/.idea/**/modules.xml
# ignore node_modules symlink
node_modules
node_modules.nosync
# API doc generation
.config/

View File

@@ -7,14 +7,20 @@ variables:
outputFolder: './_output'
artifactsFolder: './_artifacts'
testsFolder: './_tests'
majorVersion: '4.0.0'
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages
majorVersion: '4.2.0'
minorVersion: $[counter('minorVersion', 2000)]
radarrVersion: '$(majorVersion).$(minorVersion)'
buildName: '$(Build.SourceBranchName).$(radarrVersion)'
sentryOrg: 'servarr'
sentryUrl: 'https://sentry.servarr.com'
dotnetVersion: '6.0.100'
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
dotnetVersion: '6.0.202'
nodeVersion: '16.X'
innoVersion: '6.2.0'
windowsImage: 'windows-2022'
linuxImage: 'ubuntu-20.04'
macImage: 'macOS-11'
trigger:
branches:
@@ -29,6 +35,7 @@ pr:
paths:
exclude:
- src/NzbDrone.Core/Localization/Core
- src/Radarr.Api.*/openapi.json
stages:
- stage: Setup
@@ -37,7 +44,7 @@ stages:
- job:
displayName: Build Variables
pool:
vmImage: 'ubuntu-18.04'
vmImage: ${{ variables.linuxImage }}
steps:
# Set the build name properly. The 'name' property won't recursively expand so hack here:
- bash: echo "##vso[build.updatebuildnumber]$RADARRVERSION"
@@ -63,15 +70,15 @@ stages:
matrix:
Linux:
osName: 'Linux'
imageName: 'ubuntu-18.04'
imageName: ${{ variables.linuxImage }}
enableAnalysis: 'true'
Mac:
osName: 'Mac'
imageName: 'macos-10.15'
imageName: ${{ variables.macImage }}
enableAnalysis: 'false'
Windows:
osName: 'Windows'
imageName: 'windows-2019'
imageName: ${{ variables.windowsImage }}
enableAnalysis: 'false'
pool:
@@ -90,15 +97,14 @@ stages:
- bash: |
BUNDLEDVERSIONS=${AGENT_TOOLSDIRECTORY}/dotnet/sdk/${DOTNETVERSION}/Microsoft.NETCoreSdk.BundledVersions.props
echo $BUNDLEDVERSIONS
grep osx-x64 $BUNDLEDVERSIONS
if grep -q freebsd-x64 $BUNDLEDVERSIONS; then
echo "BSD already enabled"
echo "Extra platforms already enabled"
else
echo "Enabling BSD support"
sed -i.ORI 's/osx-x64/osx-x64;freebsd-x64/' $BUNDLEDVERSIONS
echo "Enabling extra platform support"
sed -i.ORI 's/osx-x64/osx-x64;freebsd-x64;linux-x86/' $BUNDLEDVERSIONS
fi
displayName: Enable FreeBSD Support
- bash: ./build.sh --backend --enable-bsd
displayName: Enable Extra Platform Support
- bash: ./build.sh --backend --enable-extra-platforms
displayName: Build Radarr Backend
- bash: |
find ${OUTPUTFOLDER} -type f ! -path "*/publish/*" -exec rm -rf {} \;
@@ -112,24 +118,28 @@ stages:
displayName: Publish Backend
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/net6.0/win-x64/publish'
artifact: WindowsCoreTests
displayName: Publish Windows Test Package
artifact: win-x64-tests
displayName: Publish win-x64 Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/net6.0/linux-x64/publish'
artifact: LinuxCoreTests
displayName: Publish Linux Test Package
artifact: linux-x64-tests
displayName: Publish linux-x64 Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/net6.0/linux-x86/publish'
artifact: linux-x86-tests
displayName: Publish linux-x86 Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/net6.0/linux-musl-x64/publish'
artifact: LinuxMuslCoreTests
displayName: Publish Linux Musl Test Package
artifact: linux-musl-x64-tests
displayName: Publish linux-musl-x64 Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/net6.0/freebsd-x64/publish'
artifact: FreebsdCoreTests
displayName: Publish FreeBSD Test Package
artifact: freebsd-x64-tests
displayName: Publish freebsd-x64 Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/net6.0/osx-x64/publish'
artifact: MacCoreTests
displayName: Publish MacOS Test Package
artifact: osx-x64-tests
displayName: Publish osx-x64 Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- stage: Build_Frontend
@@ -141,20 +151,20 @@ stages:
matrix:
Linux:
osName: 'Linux'
imageName: 'ubuntu-18.04'
imageName: ${{ variables.linuxImage }}
Mac:
osName: 'Mac'
imageName: 'macos-10.15'
imageName: ${{ variables.macImage }}
Windows:
osName: 'Windows'
imageName: 'windows-2019'
imageName: ${{ variables.windowsImage }}
pool:
vmImage: $(imageName)
steps:
- task: NodeTool@0
displayName: Set Node.js version
inputs:
versionSpec: '12.x'
versionSpec: $(nodeVersion)
- checkout: self
submodules: true
fetchDepth: 1
@@ -184,7 +194,7 @@ stages:
- job: Windows_Installer
displayName: Create Installer
pool:
vmImage: 'windows-2019'
vmImage: ${{ variables.windowsImage }}
steps:
- checkout: self
fetchDepth: 1
@@ -200,16 +210,11 @@ stages:
artifactName: WindowsFrontend
targetPath: _output
displayName: Fetch Frontend
- bash: ./build.sh --packages
displayName: Create Packages
- bash: |
setup/inno/ISCC.exe setup/radarr.iss //DFramework=net6.0 //DRuntime=win-x86
cp setup/output/Radarr.*windows.net6.0.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Radarr.${BUILDNAME}.windows-core-x86-installer.exe
displayName: Create .NET Core Windows installer
- bash: |
setup/inno/ISCC.exe setup/radarr.iss //DFramework=net6.0 //DRuntime=win-x64
cp setup/output/Radarr.*windows.net6.0.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Radarr.${BUILDNAME}.windows-core-x64-installer.exe
displayName: Create .NET Core Windows installer
./build.sh --packages --installer
cp setup/output/Radarr.*win-x64.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Radarr.${BUILDNAME}.windows-core-x64-installer.exe
cp setup/output/Radarr.*win-x86.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Radarr.${BUILDNAME}.windows-core-x86-installer.exe
displayName: Create Installers
- publish: $(Build.ArtifactStagingDirectory)
artifact: 'WindowsInstaller'
displayName: Publish Installer
@@ -222,7 +227,7 @@ stages:
- job: Other_Packages
displayName: Create Standard Packages
pool:
vmImage: 'ubuntu-18.04'
vmImage: ${{ variables.linuxImage }}
steps:
- checkout: self
fetchDepth: 1
@@ -238,7 +243,7 @@ stages:
artifactName: WindowsFrontend
targetPath: _output
displayName: Fetch Frontend
- bash: ./build.sh --packages --enable-bsd
- bash: ./build.sh --packages --enable-extra-platforms
displayName: Create Packages
- bash: |
find . -name "ffprobe" -exec chmod a+x {} \;
@@ -246,28 +251,28 @@ stages:
find . -name "Radarr.Update" -exec chmod a+x {} \;
displayName: Set executable bits
- task: ArchiveFiles@2
displayName: Create Windows Core zip
displayName: Create win-x64 zip
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).windows-core-x64.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/win-x64/net6.0
- task: ArchiveFiles@2
displayName: Create Windows x86 Core zip
displayName: Create win-x86 zip
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).windows-core-x86.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/win-x86/net6.0
- task: ArchiveFiles@2
displayName: Create MacOS x64 Core app
displayName: Create osx-x64 app
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-app-core-x64.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/osx-x64-app/net6.0
- task: ArchiveFiles@2
displayName: Create MacOS x64 Core tar
displayName: Create osx-x64 tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-core-x64.tar.gz'
archiveType: 'tar'
@@ -275,14 +280,14 @@ stages:
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/osx-x64/net6.0
- task: ArchiveFiles@2
displayName: Create MacOS arm64 Core app
displayName: Create osx-arm64 app
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-app-core-arm64.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/osx-arm64-app/net6.0
- task: ArchiveFiles@2
displayName: Create MacOS arm64 Core tar
displayName: Create osx-arm64 tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-core-arm64.tar.gz'
archiveType: 'tar'
@@ -290,7 +295,7 @@ stages:
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/osx-arm64/net6.0
- task: ArchiveFiles@2
displayName: Create Linux Core tar
displayName: Create linux-x64 tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-core-x64.tar.gz'
archiveType: 'tar'
@@ -298,7 +303,7 @@ stages:
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-x64/net6.0
- task: ArchiveFiles@2
displayName: Create Linux Musl Core tar
displayName: Create linux-musl-x64 tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-musl-core-x64.tar.gz'
archiveType: 'tar'
@@ -306,7 +311,15 @@ stages:
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-musl-x64/net6.0
- task: ArchiveFiles@2
displayName: Create ARM32 Linux Core tar
displayName: Create linux-x86 tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-core-x86.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-x86/net6.0
- task: ArchiveFiles@2
displayName: Create linux-arm tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-core-arm.tar.gz'
archiveType: 'tar'
@@ -314,7 +327,7 @@ stages:
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-arm/net6.0
- task: ArchiveFiles@2
displayName: Create ARM32 Linux Musl Core tar
displayName: Create linux-musl-arm tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-musl-core-arm.tar.gz'
archiveType: 'tar'
@@ -322,7 +335,7 @@ stages:
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-musl-arm/net6.0
- task: ArchiveFiles@2
displayName: Create ARM64 Linux Core tar
displayName: Create linux-arm64 tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-core-arm64.tar.gz'
archiveType: 'tar'
@@ -330,7 +343,7 @@ stages:
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-arm64/net6.0
- task: ArchiveFiles@2
displayName: Create ARM64 Linux Musl Core tar
displayName: Create linux-musl-arm64 tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-musl-core-arm64.tar.gz'
archiveType: 'tar'
@@ -338,7 +351,7 @@ stages:
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-musl-arm64/net6.0
- task: ArchiveFiles@2
displayName: Create FreeBSD Core Core tar
displayName: Create freebsd-x64 tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).freebsd-core-x64.tar.gz'
archiveType: 'tar'
@@ -383,7 +396,7 @@ stages:
jobs:
- job: Prepare
pool:
vmImage: 'ubuntu-18.04'
vmImage: ${{ variables.linuxImage }}
steps:
- checkout: none
- task: DownloadPipelineArtifact@2
@@ -405,22 +418,22 @@ stages:
matrix:
MacCore:
osName: 'Mac'
testName: 'MacCore'
testName: 'osx-x64'
poolName: 'Azure Pipelines'
imageName: 'macos-10.15'
imageName: ${{ variables.macImage }}
WindowsCore:
osName: 'Windows'
testName: 'WindowsCore'
testName: 'win-x64'
poolName: 'Azure Pipelines'
imageName: 'windows-2019'
imageName: ${{ variables.windowsImage }}
LinuxCore:
osName: 'Linux'
testName: 'LinuxCore'
testName: 'linux-x64'
poolName: 'Azure Pipelines'
imageName: 'ubuntu-18.04'
imageName: ${{ variables.linuxImage }}
FreebsdCore:
osName: 'Linux'
testName: 'FreebsdCore'
testName: 'freebsd-x64'
poolName: 'FreeBSD'
imageName:
@@ -439,7 +452,7 @@ stages:
displayName: Download Test Artifact
inputs:
buildType: 'current'
artifactName: '$(testName)Tests'
artifactName: '$(testName)-tests'
targetPath: $(testsFolder)
- powershell: Set-Service SCardSvr -StartupType Manual
displayName: Enable Windows Test Service
@@ -473,11 +486,15 @@ stages:
matrix:
alpine:
testName: 'Musl Net Core'
artifactName: LinuxMuslCoreTests
artifactName: linux-musl-x64-tests
containerImage: ghcr.io/servarr/testimages:alpine
linux-x86:
testName: 'linux-x86'
artifactName: linux-x86-tests
containerImage: ghcr.io/servarr/testimages:linux-x86
pool:
vmImage: 'ubuntu-18.04'
vmImage: ${{ variables.linuxImage }}
container: $[ variables['containerImage'] ]
@@ -485,9 +502,15 @@ stages:
steps:
- task: UseDotNet@2
displayName: 'Install .net core'
displayName: 'Install .NET'
inputs:
version: $(dotnetVersion)
condition: and(succeeded(), ne(variables['testName'], 'linux-x86'))
- bash: |
SDKURL=$(curl -s https://api.github.com/repos/Servarr/dotnet-linux-x86/releases | jq -rc '.[].assets[].browser_download_url' | grep sdk-${DOTNETVERSION}.*gz$)
curl -fsSL $SDKURL | tar xzf - -C /opt/dotnet
displayName: 'Install .NET'
condition: and(succeeded(), eq(variables['testName'], 'linux-x86'))
- checkout: none
- task: DownloadPipelineArtifact@2
displayName: Download Test Artifact
@@ -513,6 +536,61 @@ stages:
testResultsFiles: '**/TestResult.xml'
testRunTitle: '$(testName) Unit Tests'
failTaskOnFailedTests: true
- job: Unit_LinuxCore_Postgres
displayName: Unit Native LinuxCore with Postgres Database
dependsOn: Prepare
condition: and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0'))
variables:
pattern: 'Radarr.*.linux-core-x64.tar.gz'
artifactName: linux-x64-tests
Radarr__Postgres__Host: 'localhost'
Radarr__Postgres__Port: '5432'
Radarr__Postgres__User: 'radarr'
Radarr__Postgres__Password: 'radarr'
pool:
vmImage: 'ubuntu-18.04'
timeoutInMinutes: 10
steps:
- task: UseDotNet@2
displayName: 'Install .net core'
inputs:
version: $(dotnetVersion)
- checkout: none
- task: DownloadPipelineArtifact@2
displayName: Download Test Artifact
inputs:
buildType: 'current'
artifactName: $(artifactName)
targetPath: $(testsFolder)
- bash: |
chmod a+x _tests/ffprobe
displayName: Make ffprobe Executable
- bash: find ${TESTSFOLDER} -name "Radarr.Test.Dummy" -exec chmod a+x {} \;
displayName: Make Test Dummy Executable
condition: and(succeeded(), ne(variables['osName'], 'Windows'))
- bash: |
docker run -d --name=postgres14 \
-e POSTGRES_PASSWORD=radarr \
-e POSTGRES_USER=radarr \
-p 5432:5432/tcp \
postgres:14
displayName: Start postgres
- bash: |
chmod a+x ${TESTSFOLDER}/test.sh
ls -lR ${TESTSFOLDER}
${TESTSFOLDER}/test.sh Linux Unit Test
displayName: Run Tests
- task: PublishTestResults@2
displayName: Publish Test Results
inputs:
testResultsFormat: 'NUnit'
testResultsFiles: '**/TestResult.xml'
testRunTitle: 'LinuxCore Postgres Unit Tests'
failTaskOnFailedTests: true
- stage: Integration
displayName: Integration
@@ -521,7 +599,7 @@ stages:
jobs:
- job: Prepare
pool:
vmImage: 'ubuntu-18.04'
vmImage: ${{ variables.linuxImage }}
steps:
- checkout: none
- task: DownloadPipelineArtifact@2
@@ -540,18 +618,18 @@ stages:
matrix:
MacCore:
osName: 'Mac'
testName: 'MacCore'
imageName: 'macos-10.15'
testName: 'osx-x64'
imageName: ${{ variables.macImage }}
pattern: 'Radarr.*.osx-core-x64.tar.gz'
WindowsCore:
osName: 'Windows'
testName: 'WindowsCore'
imageName: 'windows-2019'
testName: 'win-x64'
imageName: ${{ variables.windowsImage }}
pattern: 'Radarr.*.windows-core-x64.zip'
LinuxCore:
osName: 'Linux'
testName: 'LinuxCore'
imageName: 'ubuntu-18.04'
testName: 'linux-x64'
imageName: ${{ variables.linuxImage }}
pattern: 'Radarr.*.linux-core-x64.tar.gz'
pool:
@@ -567,7 +645,7 @@ stages:
displayName: Download Test Artifact
inputs:
buildType: 'current'
artifactName: '$(testName)Tests'
artifactName: '$(testName)-tests'
targetPath: $(testsFolder)
- task: DownloadPipelineArtifact@2
displayName: Download Build Artifact
@@ -597,6 +675,67 @@ stages:
failTaskOnFailedTests: true
displayName: Publish Test Results
- job: Integration_LinuxCore_Postgres
displayName: Integration Native LinuxCore with Postgres Database
dependsOn: Prepare
condition: and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0'))
variables:
pattern: 'Radarr.*.linux-core-x64.tar.gz'
Radarr__Postgres__Host: 'localhost'
Radarr__Postgres__Port: '5432'
Radarr__Postgres__User: 'radarr'
Radarr__Postgres__Password: 'radarr'
pool:
vmImage: 'ubuntu-18.04'
steps:
- task: UseDotNet@2
displayName: 'Install .net core'
inputs:
version: $(dotnetVersion)
- checkout: none
- task: DownloadPipelineArtifact@2
displayName: Download Test Artifact
inputs:
buildType: 'current'
artifactName: 'linux-x64-tests'
targetPath: $(testsFolder)
- task: DownloadPipelineArtifact@2
displayName: Download Build Artifact
inputs:
buildType: 'current'
artifactName: Packages
itemPattern: '**/$(pattern)'
targetPath: $(Build.ArtifactStagingDirectory)
- task: ExtractFiles@1
inputs:
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/**/$(pattern)'
destinationFolder: '$(Build.ArtifactStagingDirectory)/bin'
displayName: Extract Package
- bash: |
mkdir -p ./bin/
cp -r -v ${BUILD_ARTIFACTSTAGINGDIRECTORY}/bin/Radarr/. ./bin/
displayName: Move Package Contents
- bash: |
docker run -d --name=postgres14 \
-e POSTGRES_PASSWORD=radarr \
-e POSTGRES_USER=radarr \
-p 5432:5432/tcp \
postgres:14
displayName: Start postgres
- bash: |
chmod a+x ${TESTSFOLDER}/test.sh
${TESTSFOLDER}/test.sh Linux Integration Test
displayName: Run Integration Tests
- task: PublishTestResults@2
inputs:
testResultsFormat: 'NUnit'
testResultsFiles: '**/TestResult.xml'
testRunTitle: 'Integration LinuxCore Postgres Database Integration Tests'
failTaskOnFailedTests: true
displayName: Publish Test Results
- job: Integration_FreeBSD
displayName: Integration Native FreeBSD
dependsOn: Prepare
@@ -614,7 +753,7 @@ stages:
displayName: Download Test Artifact
inputs:
buildType: 'current'
artifactName: 'FreebsdCoreTests'
artifactName: 'freebsd-x64-tests'
targetPath: $(testsFolder)
- task: DownloadPipelineArtifact@2
displayName: Download Build Artifact
@@ -650,12 +789,17 @@ stages:
strategy:
matrix:
alpine:
testName: 'Musl Net Core'
artifactName: LinuxMuslCoreTests
testName: 'linux-musl-x64'
artifactName: linux-musl-x64-tests
containerImage: ghcr.io/servarr/testimages:alpine
pattern: 'Radarr.*.linux-musl-core-x64.tar.gz'
linux-x86:
testName: 'linux-x86'
artifactName: linux-x86-tests
containerImage: ghcr.io/servarr/testimages:linux-x86
pattern: 'Radarr.*.linux-core-x86.tar.gz'
pool:
vmImage: 'ubuntu-18.04'
vmImage: ${{ variables.linuxImage }}
container: $[ variables['containerImage'] ]
@@ -663,9 +807,15 @@ stages:
steps:
- task: UseDotNet@2
displayName: 'Install .net core'
displayName: 'Install .NET'
inputs:
version: $(dotnetVersion)
condition: and(succeeded(), ne(variables['testName'], 'linux-x86'))
- bash: |
SDKURL=$(curl -s https://api.github.com/repos/Servarr/dotnet-linux-x86/releases | jq -rc '.[].assets[].browser_download_url' | grep sdk-${DOTNETVERSION}.*gz$)
curl -fsSL $SDKURL | tar xzf - -C /opt/dotnet
displayName: 'Install .NET'
condition: and(succeeded(), eq(variables['testName'], 'linux-x86'))
- checkout: none
- task: DownloadPipelineArtifact@2
displayName: Download Test Artifact
@@ -711,17 +861,20 @@ stages:
matrix:
Linux:
osName: 'Linux'
imageName: 'ubuntu-18.04'
artifactName: 'linux-x64'
imageName: ${{ variables.linuxImage }}
pattern: 'Radarr.*.linux-core-x64.tar.gz'
failBuild: true
Mac:
osName: 'Mac'
imageName: 'macos-10.15'
artifactName: 'osx-x64'
imageName: ${{ variables.macImage }}
pattern: 'Radarr.*.osx-core-x64.tar.gz'
failBuild: true
Windows:
osName: 'Windows'
imageName: 'windows-2019'
artifactName: 'win-x64'
imageName: ${{ variables.windowsImage }}
pattern: 'Radarr.*.windows-core-x64.zip'
failBuild: true
@@ -738,7 +891,7 @@ stages:
displayName: Download Test Artifact
inputs:
buildType: 'current'
artifactName: '$(osName)CoreTests'
artifactName: '$(artifactName)-tests'
targetPath: $(testsFolder)
- task: DownloadPipelineArtifact@2
displayName: Download Build Artifact
@@ -787,7 +940,7 @@ stages:
jobs:
- job: Prepare
pool:
vmImage: 'ubuntu-18.04'
vmImage: ${{ variables.linuxImage }}
steps:
- checkout: none
- task: DownloadPipelineArtifact@2
@@ -804,17 +957,17 @@ stages:
matrix:
Linux:
osName: 'Linux'
imageName: 'ubuntu-18.04'
imageName: ${{ variables.linuxImage }}
Windows:
osName: 'Windows'
imageName: 'windows-2019'
imageName: ${{ variables.windowsImage }}
pool:
vmImage: $(imageName)
steps:
- task: NodeTool@0
displayName: Set Node.js version
inputs:
versionSpec: '12.x'
versionSpec: $(nodeVersion)
- checkout: self
submodules: true
fetchDepth: 1
@@ -836,7 +989,7 @@ stages:
displayName: Frontend
condition: eq(variables['System.PullRequest.IsFork'], 'False')
pool:
vmImage: windows-2019
vmImage: ${{ variables.windowsImage }}
steps:
- checkout: self # Need history for Sonar analysis
- task: SonarCloudPrepare@1
@@ -852,6 +1005,60 @@ stages:
cliProjectVersion: '$(radarrVersion)'
cliSources: './frontend'
- task: SonarCloudAnalyze@1
- job: Api_Docs
displayName: API Docs
dependsOn: Prepare
condition: |
and
(
and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')),
and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0'))
)
pool:
vmImage: ${{ variables.windowsImage }}
steps:
- task: UseDotNet@2
displayName: 'Install .net core'
inputs:
version: $(dotnetVersion)
- checkout: self
submodules: true
persistCredentials: true
fetchDepth: 1
- bash: ./docs.sh Windows
displayName: Create openapi.json
- bash: |
git config --global user.email "development@lidarr.audio"
git config --global user.name "Servarr"
git checkout -b api-docs
git add .
git status
if git status | grep modified
then
git commit -am 'Automated API Docs update'
git push -f --set-upstream origin api-docs
curl -X POST -H "Authorization: token ${GITHUBTOKEN}" -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/radarr/radarr/pulls -d '{"head":"api-docs","base":"develop","title":"Update API docs"}'
else
echo "No changes since last run"
fi
displayName: Commit API Doc Change
continueOnError: true
env:
GITHUBTOKEN: $(githubToken)
- task: CopyFiles@2
displayName: 'Copy openapi.json to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*openapi.json
TargetFolder: '$(Build.ArtifactStagingDirectory)/api_docs'
- publish: $(Build.ArtifactStagingDirectory)/api_docs
artifact: 'APIDocs'
displayName: Publish API Docs Bundle
condition: and(succeeded(), eq(variables['System.JobAttempt'], '1'))
- job: Analyze_Backend
displayName: Backend
@@ -863,7 +1070,7 @@ stages:
EnableAnalyzers: 'false'
pool:
vmImage: windows-2019
vmImage: ${{ variables.windowsImage }}
steps:
- task: UseDotNet@2
@@ -920,7 +1127,7 @@ stages:
- job:
displayName: Discord Notification
pool:
vmImage: 'ubuntu-18.04'
vmImage: ${{ variables.linuxImage }}
steps:
- task: DownloadPipelineArtifact@2
continueOnError: true

View File

@@ -25,14 +25,22 @@ UpdateVersionNumber()
fi
}
EnableBsdSupport()
EnableExtraPlatformsInSDK()
{
#todo enable sdk with
#SDK_PATH=$(dotnet --list-sdks | grep -P '5\.\d\.\d+' | head -1 | sed 's/\(5\.[0-9]*\.[0-9]*\).*\[\(.*\)\]/\2\/\1/g')
# BUNDLED_VERSIONS="${SDK_PATH}/Microsoft.NETCoreSdk.BundledVersions.props"
SDK_PATH=$(dotnet --list-sdks | grep -P '6\.\d\.\d+' | head -1 | sed 's/\(6\.[0-9]*\.[0-9]*\).*\[\(.*\)\]/\2\/\1/g')
BUNDLEDVERSIONS="${SDK_PATH}/Microsoft.NETCoreSdk.BundledVersions.props"
if grep -q freebsd-x64 $BUNDLEDVERSIONS; then
echo "Extra platforms already enabled"
else
echo "Enabling extra platform support"
sed -i.ORI 's/osx-x64/osx-x64;freebsd-x64;linux-x86/' $BUNDLEDVERSIONS
fi
}
EnableExtraPlatforms()
{
if grep -qv freebsd-x64 src/Directory.Build.props; then
sed -i'' -e "s^<RuntimeIdentifiers>\(.*\)</RuntimeIdentifiers>^<RuntimeIdentifiers>\1;freebsd-x64</RuntimeIdentifiers>^g" src/Directory.Build.props
sed -i'' -e "s^<RuntimeIdentifiers>\(.*\)</RuntimeIdentifiers>^<RuntimeIdentifiers>\1;freebsd-x64;linux-x86</RuntimeIdentifiers>^g" src/Directory.Build.props
fi
}
@@ -233,6 +241,32 @@ Package()
esac
}
BuildInstaller()
{
local framework="$1"
local runtime="$2"
./_inno/ISCC.exe setup/radarr.iss "//DFramework=$framework" "//DRuntime=$runtime"
}
InstallInno()
{
ProgressStart "Installing portable Inno Setup"
rm -rf _inno
curl -s --output innosetup.exe "https://files.jrsoftware.org/is/6/innosetup-${INNOVERSION:-6.2.0}.exe"
mkdir _inno
./innosetup.exe //portable=1 //silent //currentuser //dir=.\\_inno
rm innosetup.exe
ProgressEnd "Installed portable Inno Setup"
}
RemoveInno()
{
rm -rf _inno
}
PackageTests()
{
local framework="$1"
@@ -264,8 +298,10 @@ if [ $# -eq 0 ]; then
BACKEND=YES
FRONTEND=YES
PACKAGES=YES
INSTALLER=NO
LINT=YES
ENABLE_BSD=NO
ENABLE_EXTRA_PLATFORMS=NO
ENABLE_EXTRA_PLATFORMS_IN_SDK=NO
fi
while [[ $# -gt 0 ]]
@@ -277,8 +313,12 @@ case $key in
BACKEND=YES
shift # past argument
;;
--enable-bsd)
ENABLE_BSD=YES
--enable-bsd|--enable-extra-platforms)
ENABLE_EXTRA_PLATFORMS=YES
shift # past argument
;;
--enable-extra-platforms-in-sdk)
ENABLE_EXTRA_PLATFORMS_IN_SDK=YES
shift # past argument
;;
-r|--runtime)
@@ -299,6 +339,10 @@ case $key in
PACKAGES=YES
shift # past argument
;;
--installer)
INSTALLER=YES
shift # past argument
;;
--lint)
LINT=YES
shift # past argument
@@ -318,12 +362,17 @@ esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters
if [ "$ENABLE_EXTRA_PLATFORMS_IN_SDK" = "YES" ];
then
EnableExtraPlatformsInSDK
fi
if [ "$BACKEND" = "YES" ];
then
UpdateVersionNumber
if [ "$ENABLE_BSD" = "YES" ];
if [ "$ENABLE_EXTRA_PLATFORMS" = "YES" ];
then
EnableBsdSupport
EnableExtraPlatforms
fi
Build
if [[ -z "$RID" || -z "$FRAMEWORK" ]];
@@ -333,9 +382,10 @@ then
PackageTests "net6.0" "linux-x64"
PackageTests "net6.0" "linux-musl-x64"
PackageTests "net6.0" "osx-x64"
if [ "$ENABLE_BSD" = "YES" ];
if [ "$ENABLE_EXTRA_PLATFORMS" = "YES" ];
then
PackageTests "net6.0" "freebsd-x64"
PackageTests "net6.0" "linux-x86"
fi
else
PackageTests "$FRAMEWORK" "$RID"
@@ -374,11 +424,20 @@ then
Package "net6.0" "linux-musl-arm"
Package "net6.0" "osx-x64"
Package "net6.0" "osx-arm64"
if [ "$ENABLE_BSD" = "YES" ];
if [ "$ENABLE_EXTRA_PLATFORMS" = "YES" ];
then
Package "net6.0" "freebsd-x64"
Package "net6.0" "linux-x86"
fi
else
Package "$FRAMEWORK" "$RID"
fi
fi
if [ "$INSTALLER" = "YES" ];
then
InstallInno
BuildInstaller "net6.0" "win-x64"
BuildInstaller "net6.0" "win-x86"
RemoveInno
fi

38
docs.sh Normal file
View File

@@ -0,0 +1,38 @@
PLATFORM=$1
if [ "$PLATFORM" = "Windows" ]; then
RUNTIME="win-x64"
elif [ "$PLATFORM" = "Linux" ]; then
WHERE="linux-x64"
elif [ "$PLATFORM" = "Mac" ]; then
WHERE="osx-x64"
else
echo "Platform must be provided as first arguement: Windows, Linux or Mac"
exit 1
fi
outputFolder='_output'
testPackageFolder='_tests'
rm -rf $outputFolder
rm -rf $testPackageFolder
slnFile=src/Radarr.sln
platform=Posix
dotnet clean $slnFile -c Debug
dotnet clean $slnFile -c Release
dotnet msbuild -restore $slnFile -p:Configuration=Debug -p:Platform=$platform -p:RuntimeIdentifiers=$RUNTIME -t:PublishAllRids
dotnet new tool-manifest
dotnet tool install --version 6.3.0 Swashbuckle.AspNetCore.Cli
dotnet tool run swagger tofile --output ./src/Radarr.Api.V3/openapi.json "$outputFolder/net6.0/$RUNTIME/radarr.console.dll" v3 &
sleep 45
kill %1
exit 0

View File

@@ -61,33 +61,33 @@ class Blocklist extends Component {
getSelectedIds = () => {
return getSelectedIds(this.state.selectedState);
}
};
//
// Listeners
onSelectAllChange = ({ value }) => {
this.setState(selectAll(this.state.selectedState, value));
}
};
onSelectedChange = ({ id, value, shiftKey = false }) => {
this.setState((state) => {
return toggleSelected(state, this.props.items, id, value, shiftKey);
});
}
};
onRemoveSelectedPress = () => {
this.setState({ isConfirmRemoveModalOpen: true });
}
};
onRemoveSelectedConfirmed = () => {
this.props.onRemoveSelected(this.getSelectedIds());
this.setState({ isConfirmRemoveModalOpen: false });
}
};
onConfirmRemoveModalClose = () => {
this.setState({ isConfirmRemoveModalOpen: false });
}
};
//
// Render
@@ -120,7 +120,7 @@ class Blocklist extends Component {
<PageToolbar>
<PageToolbarSection>
<PageToolbarButton
label="Remove Selected"
label={translate('RemoveSelected')}
iconName={icons.REMOVE}
isDisabled={!selectedIds.length}
isSpinning={isRemoving}

View File

@@ -65,37 +65,37 @@ class BlocklistConnector extends Component {
repopulate = () => {
this.props.fetchBlocklist();
}
};
//
// Listeners
onFirstPagePress = () => {
this.props.gotoBlocklistFirstPage();
}
};
onPreviousPagePress = () => {
this.props.gotoBlocklistPreviousPage();
}
};
onNextPagePress = () => {
this.props.gotoBlocklistNextPage();
}
};
onLastPagePress = () => {
this.props.gotoBlocklistLastPage();
}
};
onPageSelect = (page) => {
this.props.gotoBlocklistPage({ page });
}
};
onRemoveSelected = (ids) => {
this.props.removeBlocklistItems({ ids });
}
};
onSortPress = (sortKey) => {
this.props.setBlocklistSort({ sortKey });
}
};
onTableOptionChange = (payload) => {
this.props.setBlocklistTableOption(payload);
@@ -103,11 +103,11 @@ class BlocklistConnector extends Component {
if (payload.pageSize) {
this.props.gotoBlocklistFirstPage();
}
}
};
onClearBlocklistPress = () => {
this.props.executeCommand({ name: commandNames.CLEAR_BLOCKLIST });
}
};
//
// Render

View File

@@ -32,11 +32,11 @@ class BlocklistRow extends Component {
onDetailsPress = () => {
this.setState({ isDetailsModalOpen: true });
}
};
onDetailsModalClose = () => {
this.setState({ isDetailsModalOpen: false });
}
};
//
// Render

View File

@@ -25,6 +25,7 @@ function HistoryDetails(props) {
releaseGroup,
nzbInfoUrl,
downloadClient,
downloadClientName,
downloadId,
age,
ageHours,
@@ -32,6 +33,8 @@ function HistoryDetails(props) {
publishedDate
} = data;
const downloadClientNameInfo = downloadClientName ?? downloadClient;
return (
<DescriptionList>
<DescriptionListItem
@@ -71,11 +74,12 @@ function HistoryDetails(props) {
}
{
!!downloadClient &&
downloadClientNameInfo ?
<DescriptionListItem
title={translate('DownloadClient')}
data={downloadClient}
/>
data={downloadClientNameInfo}
/> :
null
}
{

View File

@@ -57,38 +57,38 @@ class HistoryConnector extends Component {
repopulate = () => {
this.props.fetchHistory();
}
};
//
// Listeners
onFirstPagePress = () => {
this.props.gotoHistoryFirstPage();
}
};
onPreviousPagePress = () => {
this.props.gotoHistoryPreviousPage();
}
};
onNextPagePress = () => {
this.props.gotoHistoryNextPage();
}
};
onLastPagePress = () => {
this.props.gotoHistoryLastPage();
}
};
onPageSelect = (page) => {
this.props.gotoHistoryPage({ page });
}
};
onSortPress = (sortKey) => {
this.props.setHistorySort({ sortKey });
}
};
onFilterSelect = (selectedFilterKey) => {
this.props.setHistoryFilter({ selectedFilterKey });
}
};
onTableOptionChange = (payload) => {
this.props.setHistoryTableOption(payload);
@@ -96,7 +96,7 @@ class HistoryConnector extends Component {
if (payload.pageSize) {
this.props.gotoHistoryFirstPage();
}
}
};
//
// Render

View File

@@ -41,11 +41,11 @@ class HistoryRow extends Component {
onDetailsPress = () => {
this.setState({ isDetailsModalOpen: true });
}
};
onDetailsModalClose = () => {
this.setState({ isDetailsModalOpen: false });
}
};
//
// Render

View File

@@ -46,7 +46,7 @@ class HistoryRowConnector extends Component {
onMarkAsFailedPress = () => {
this.props.markAsFailed({ id: this.props.id });
}
};
//
// Render

View File

@@ -90,45 +90,45 @@ class Queue extends Component {
getSelectedIds = () => {
return getSelectedIds(this.state.selectedState);
}
};
//
// Listeners
onQueueRowModalOpenOrClose = (isOpen) => {
this._shouldBlockRefresh = isOpen;
}
};
onSelectAllChange = ({ value }) => {
this.setState(selectAll(this.state.selectedState, value));
}
};
onSelectedChange = ({ id, value, shiftKey = false }) => {
this.setState((state) => {
return toggleSelected(state, this.props.items, id, value, shiftKey);
});
}
};
onGrabSelectedPress = () => {
this.props.onGrabSelectedPress(this.getSelectedIds());
}
};
onRemoveSelectedPress = () => {
this.setState({ isConfirmRemoveModalOpen: true }, () => {
this._shouldBlockRefresh = true;
});
}
};
onRemoveSelectedConfirmed = (payload) => {
this._shouldBlockRefresh = false;
this.props.onRemoveSelectedPress({ ids: this.getSelectedIds(), ...payload });
this.setState({ isConfirmRemoveModalOpen: false });
}
};
onConfirmRemoveModalClose = () => {
this._shouldBlockRefresh = false;
this.setState({ isConfirmRemoveModalOpen: false });
}
};
//
// Render

View File

@@ -77,34 +77,34 @@ class QueueConnector extends Component {
repopulate = () => {
this.props.fetchQueue();
}
};
//
// Listeners
onFirstPagePress = () => {
this.props.gotoQueueFirstPage();
}
};
onPreviousPagePress = () => {
this.props.gotoQueuePreviousPage();
}
};
onNextPagePress = () => {
this.props.gotoQueueNextPage();
}
};
onLastPagePress = () => {
this.props.gotoQueueLastPage();
}
};
onPageSelect = (page) => {
this.props.gotoQueuePage({ page });
}
};
onSortPress = (sortKey) => {
this.props.setQueueSort({ sortKey });
}
};
onTableOptionChange = (payload) => {
this.props.setQueueTableOption(payload);
@@ -112,21 +112,21 @@ class QueueConnector extends Component {
if (payload.pageSize) {
this.props.gotoQueueFirstPage();
}
}
};
onRefreshPress = () => {
this.props.executeCommand({
name: commandNames.REFRESH_MONITORED_DOWNLOADS
});
}
};
onGrabSelectedPress = (ids) => {
this.props.grabQueueItems({ ids });
}
};
onRemoveSelectedPress = (payload) => {
this.props.removeQueueItems(payload);
}
};
//
// Render

View File

@@ -42,7 +42,7 @@ class QueueOptions extends Component {
[name]: value
});
});
}
};
//
// Render

View File

@@ -40,7 +40,7 @@ class QueueRow extends Component {
onRemoveQueueItemPress = () => {
this.setState({ isRemoveQueueItemModalOpen: true });
}
};
onRemoveQueueItemModalConfirmed = (blocklist) => {
const {
@@ -52,25 +52,25 @@ class QueueRow extends Component {
onRemoveQueueItemPress(blocklist);
this.setState({ isRemoveQueueItemModalOpen: false });
}
};
onRemoveQueueItemModalClose = () => {
this.props.onQueueRowModalOpenOrClose(false);
this.setState({ isRemoveQueueItemModalOpen: false });
}
};
onInteractiveImportPress = () => {
this.props.onQueueRowModalOpenOrClose(true);
this.setState({ isInteractiveImportModalOpen: true });
}
};
onInteractiveImportModalClose = () => {
this.props.onQueueRowModalOpenOrClose(false);
this.setState({ isInteractiveImportModalOpen: false });
}
};
//
// Render

View File

@@ -37,11 +37,11 @@ class QueueRowConnector extends Component {
onGrabPress = () => {
this.props.grabQueueItem({ id: this.props.id });
}
};
onRemoveQueueItemPress = (payload) => {
this.props.removeQueueItem({ id: this.props.id, ...payload });
}
};
//
// Render

View File

@@ -34,30 +34,30 @@ class RemoveQueueItemModal extends Component {
remove: true,
blocklist: false
});
}
};
//
// Listeners
onRemoveChange = ({ value }) => {
this.setState({ remove: value });
}
};
onBlocklistChange = ({ value }) => {
this.setState({ blocklist: value });
}
};
onRemoveConfirmed = () => {
const state = this.state;
this.resetState();
this.props.onRemovePress(state);
}
};
onModalClose = () => {
this.resetState();
this.props.onModalClose();
}
};
//
// Render

View File

@@ -30,35 +30,35 @@ class RemoveQueueItemsModal extends Component {
//
// Control
resetState = function() {
this.setState({
remove: true,
blocklist: false
});
}
resetState = function() {
this.setState({
remove: true,
blocklist: false
});
};
//
// Listeners
//
// Listeners
onRemoveChange = ({ value }) => {
this.setState({ remove: value });
}
onRemoveChange = ({ value }) => {
this.setState({ remove: value });
};
onBlocklistChange = ({ value }) => {
this.setState({ blocklist: value });
}
};
onRemoveConfirmed = () => {
const state = this.state;
this.resetState();
this.props.onRemovePress(state);
}
};
onModalClose = () => {
this.resetState();
this.props.onModalClose();
}
};
//
// Render

View File

@@ -67,12 +67,12 @@ class AddNewMovie extends Component {
this.props.onClearMovieLookup();
}
});
}
};
onClearMovieLookupPress = () => {
this.setState({ term: '' });
this.props.onClearMovieLookup();
}
};
//
// Render
@@ -161,7 +161,7 @@ class AddNewMovie extends Component {
{translate('YouCanAlsoSearch')}
</div>
<div>
<Link to="https://wiki.servarr.com/radarr/faq#why-cant-i-add-a-new-movie-to-radarr">
<Link to="https://wiki.servarr.com/radarr/faq#why-can-i-not-add-a-new-movie-to-radarr">
{translate('CantFindMovie')}
</Link>
</div>

View File

@@ -79,11 +79,11 @@ class AddNewMovieConnector extends Component {
this.props.lookupMovie({ term });
}, 300);
}
}
};
onClearMovieLookup = () => {
this.props.clearAddMovie();
}
};
//
// Render

View File

@@ -22,11 +22,11 @@ class AddNewMovieModalContent extends Component {
onQualityProfileIdChange = ({ value }) => {
this.props.onInputChange({ name: 'qualityProfileId', value: parseInt(value) });
}
};
onAddMoviePress = () => {
this.props.onAddMoviePress();
}
};
//
// Render

View File

@@ -51,7 +51,7 @@ class AddNewMovieModalContentConnector extends Component {
onInputChange = ({ name, value }) => {
this.props.setAddMovieDefault({ [name]: value });
}
};
onAddMoviePress = () => {
const {
@@ -73,7 +73,7 @@ class AddNewMovieModalContentConnector extends Component {
searchForMovie: searchForMovie.value,
tags: tags.value
});
}
};
//
// Render

View File

@@ -39,15 +39,15 @@ class AddNewMovieSearchResult extends Component {
onPress = () => {
this.setState({ isNewAddMovieModalOpen: true });
}
};
onAddMovieModalClose = () => {
this.setState({ isNewAddMovieModalOpen: false });
}
};
onExternalLinkPress = (event) => {
event.stopPropagation();
}
};
//
// Render
@@ -86,6 +86,13 @@ class AddNewMovieSearchResult extends Component {
} = this.state;
const linkProps = isExistingMovie ? { to: `/movie/${titleSlug}` } : { onPress: this.onPress };
const posterWidth = 167;
const posterHeight = 250;
const elementStyle = {
width: `${posterWidth}px`,
height: `${posterHeight}px`
};
return (
<div className={styles.searchResult}>
@@ -102,6 +109,7 @@ class AddNewMovieSearchResult extends Component {
<div className={styles.posterContainer}>
<MoviePoster
className={styles.poster}
style={elementStyle}
images={images}
size={250}
overflow={true}
@@ -114,7 +122,7 @@ class AddNewMovieSearchResult extends Component {
monitored={monitored}
hasFile={hasFile}
status={status}
posterWidth={167}
posterWidth={posterWidth}
detailedProgressBar={true}
queueStatus={queueStatus}
queueState={queueState}
@@ -183,7 +191,7 @@ class AddNewMovieSearchResult extends Component {
<div>
<Label size={sizes.LARGE}>
<HeartRating
rating={ratings.value}
ratings={ratings}
iconSize={13}
/>
</Label>

View File

@@ -32,25 +32,25 @@ class ImportMovie extends Component {
setScrollerRef = (ref) => {
this.setState({ scroller: ref });
}
};
//
// Listeners
getSelectedIds = () => {
return getSelectedIds(this.state.selectedState, { parseIds: false });
}
};
onSelectAllChange = ({ value }) => {
// Only select non-dupes
this.setState(selectAll(this.state.selectedState, value));
}
};
onSelectedChange = ({ id, value, shiftKey = false }) => {
this.setState((state) => {
return toggleSelected(state, this.props.items, id, value, shiftKey);
});
}
};
onRemoveSelectedStateItem = (id) => {
this.setState((state) => {
@@ -62,15 +62,15 @@ class ImportMovie extends Component {
selectedState
};
});
}
};
onInputChange = ({ name, value }) => {
this.props.onInputChange(this.getSelectedIds(), name, value);
}
};
onImportPress = () => {
this.props.onImportPress(this.getSelectedIds());
}
};
//
// Render

View File

@@ -112,11 +112,11 @@ class ImportMovieConnector extends Component {
[name]: value
});
});
}
};
onImportPress = (ids) => {
this.props.dispatchImportMovie({ ids });
}
};
//
// Render

View File

@@ -83,7 +83,7 @@ class ImportMovieFooter extends Component {
onInputChange = ({ name, value }) => {
this.setState({ [name]: value });
this.props.onInputChange({ name, value });
}
};
//
// Render

View File

@@ -48,7 +48,7 @@ class ImportMovieRowConnector extends Component {
id: this.props.id,
[name]: value
});
}
};
//
// Render

View File

@@ -121,7 +121,7 @@ class ImportMovieTable extends Component {
/>
</VirtualTableRow>
);
}
};
//
// Render

View File

@@ -11,7 +11,7 @@ class ImportMovieSearchResult extends Component {
onPress = () => {
this.props.onPress(this.props.tmdbId);
}
};
//
// Render

View File

@@ -69,7 +69,7 @@ class ImportMovieSelectMovie extends Component {
this.setState({ isOpen: false });
this._removeListener();
}
}
};
onPress = () => {
if (this.state.isOpen) {
@@ -79,7 +79,7 @@ class ImportMovieSelectMovie extends Component {
}
this.setState({ isOpen: !this.state.isOpen });
}
};
onSearchInputChange = ({ value }) => {
if (this._movieLookupTimeout) {
@@ -91,17 +91,17 @@ class ImportMovieSelectMovie extends Component {
this.props.onSearchInputChange(value);
}, 200);
});
}
};
onRefreshPress = () => {
this.props.onSearchInputChange(this.state.term);
}
};
onMovieSelect = (tmdbId) => {
this.setState({ isOpen: false });
this.props.onMovieSelect(tmdbId);
}
};
//
// Render

View File

@@ -36,7 +36,7 @@ class ImportMovieSelectMovieConnector extends Component {
term,
topOfQueue: true
});
}
};
onMovieSelect = (tmdbId) => {
const {
@@ -48,7 +48,7 @@ class ImportMovieSelectMovieConnector extends Component {
id,
selectedMovie: _.find(items, { tmdbId })
});
}
};
//
// Render

View File

@@ -25,7 +25,7 @@ class ImportMovieRootFolderRowConnector extends Component {
onDeletePress = () => {
this.props.deleteRootFolder({ id: this.props.id });
}
};
//
// Render

View File

@@ -55,15 +55,15 @@ class ImportMovieSelectFolder extends Component {
onAddNewRootFolderPress = () => {
this.setState({ isAddNewRootFolderModalOpen: true });
}
};
onNewRootFolderSelect = ({ value }) => {
this.props.onNewRootFolderSelect(value);
}
};
onAddRootFolderModalClose = () => {
this.setState({ isAddNewRootFolderModalOpen: false });
}
};
//
// Render

View File

@@ -58,11 +58,11 @@ class ImportMovieSelectFolderConnector extends Component {
onNewRootFolderSelect = (path) => {
this.props.addRootFolder({ path });
}
};
onDeleteRootFolderPress = (id) => {
this.props.deleteRootFolder({ id });
}
};
//
// Render

View File

@@ -27,11 +27,11 @@ class AgendaEvent extends Component {
onPress = () => {
this.setState({ isDetailsModalOpen: true });
}
};
onDetailsModalClose = () => {
this.setState({ isDetailsModalOpen: false });
}
};
//
// Render

View File

@@ -119,43 +119,43 @@ class CalendarConnector extends Component {
this.props.fetchQueueDetails({ time, view });
this.props.fetchCalendar({ time, view });
}
};
scheduleUpdate = () => {
this.clearUpdateTimeout();
this.updateTimeoutId = setTimeout(this.updateCalendar, UPDATE_DELAY);
}
};
clearUpdateTimeout = () => {
if (this.updateTimeoutId) {
clearTimeout(this.updateTimeoutId);
}
}
};
updateCalendar = () => {
this.props.gotoCalendarToday();
this.scheduleUpdate();
}
};
//
// Listeners
onCalendarViewChange = (view) => {
this.props.setCalendarView({ view });
}
};
onTodayPress = () => {
this.props.gotoCalendarToday();
}
};
onPreviousPress = () => {
this.props.gotoCalendarPreviousRange();
}
};
onNextPress = () => {
this.props.gotoCalendarNextRange();
}
};
//
// Render

View File

@@ -44,23 +44,23 @@ class CalendarPage extends Component {
const days = Math.max(3, Math.min(7, Math.floor(width / MINIMUM_DAY_WIDTH)));
this.props.onDaysCountChange(days);
}
};
onGetCalendarLinkPress = () => {
this.setState({ isCalendarLinkModalOpen: true });
}
};
onGetCalendarLinkModalClose = () => {
this.setState({ isCalendarLinkModalOpen: false });
}
};
onOptionsPress = () => {
this.setState({ isOptionsModalOpen: true });
}
};
onOptionsModalClose = () => {
this.setState({ isOptionsModalOpen: false });
}
};
onSearchMissingPress = () => {
const {
@@ -69,7 +69,7 @@ class CalendarPage extends Component {
} = this.props;
onSearchMissingPress(missingMovieIds);
}
};
//
// Render

View File

@@ -60,20 +60,20 @@ class CalendarDays extends Component {
this.setState({ todaysDate: todaysDate.toISOString() });
this.updateTimeoutId = setTimeout(this.scheduleUpdate, diff);
}
};
clearUpdateTimeout = () => {
if (this.updateTimeoutId) {
clearTimeout(this.updateTimeoutId);
}
}
};
//
// Listeners
onEventModalOpenToggle = (isEventModalOpen) => {
this.setState({ isEventModalOpen });
}
};
onTouchStart = (event) => {
const touches = event.touches;
@@ -92,7 +92,7 @@ class CalendarDays extends Component {
}
this._touchStart = touchStart;
}
};
onTouchEnd = (event) => {
const touches = event.changedTouches;
@@ -109,17 +109,17 @@ class CalendarDays extends Component {
}
this._touchStart = null;
}
};
onTouchCancel = (event) => {
this._touchStart = null;
}
};
onTouchMove = (event) => {
if (!this._touchStart) {
return;
}
}
};
//
// Render

View File

@@ -47,13 +47,13 @@ class DaysOfWeek extends Component {
});
this.updateTimeoutId = setTimeout(this.scheduleUpdate, diff);
}
};
clearUpdateTimeout = () => {
if (this.updateTimeoutId) {
clearTimeout(this.updateTimeoutId);
}
}
};
//
// Render

View File

@@ -43,15 +43,15 @@ class CalendarEvent extends Component {
const link = `/movie/${titleSlug}`;
const eventType = [];
if (moment(date).isSame(moment(inCinemas), 'day')) {
if (inCinemas && moment(date).isSame(moment(inCinemas), 'day')) {
eventType.push('Cinemas');
}
if (moment(date).isSame(moment(physicalRelease), 'day')) {
if (physicalRelease && moment(date).isSame(moment(physicalRelease), 'day')) {
eventType.push('Physical');
}
if (moment(date).isSame(moment(digitalRelease), 'day')) {
if (digitalRelease && moment(date).isSame(moment(digitalRelease), 'day')) {
eventType.push('Digital');
}

View File

@@ -71,7 +71,7 @@ class CalendarHeader extends Component {
this.setState({ view }, () => {
this.props.onViewChange(view);
});
}
};
//
// Render

View File

@@ -41,19 +41,19 @@ class CalendarHeaderConnector extends Component {
onViewChange = (view) => {
this.props.setCalendarView({ view });
}
};
onTodayPress = () => {
this.props.gotoCalendarToday();
}
};
onPreviousPress = () => {
this.props.gotoCalendarPreviousRange();
}
};
onNextPress = () => {
this.props.gotoCalendarNextRange();
}
};
//
// Render

View File

@@ -12,7 +12,7 @@ class CalendarHeaderViewButton extends Component {
onPress = () => {
this.props.onPress(this.props.view);
}
};
//
// Render

View File

@@ -69,7 +69,7 @@ class CalendarOptionsModalContent extends Component {
} = this.props;
dispatchSetCalendarOption({ [name]: value });
}
};
onGlobalInputChange = ({ name, value }) => {
const {
@@ -81,11 +81,11 @@ class CalendarOptionsModalContent extends Component {
this.setState(setting, () => {
dispatchSaveUISettings(setting);
});
}
};
onLinkFocus = (event) => {
event.target.select();
}
};
//
// Render

View File

@@ -84,11 +84,11 @@ class CalendarLinkModalContent extends Component {
[name]: value,
...urls
});
}
};
onLinkFocus = (event) => {
event.target.select();
}
};
//
// Render

View File

@@ -70,18 +70,18 @@ class FileBrowserModalContent extends Component {
} else {
this._scrollerNode = null;
}
}
};
//
// Listeners
onPathInputChange = ({ value }) => {
this.setState({ currentPath: value });
}
};
onRowPress = (path) => {
this.props.onFetchPaths(path);
}
};
onOkPress = () => {
this.props.onChange({
@@ -91,7 +91,7 @@ class FileBrowserModalContent extends Component {
this.props.onClearPaths();
this.props.onModalClose();
}
};
//
// Render

View File

@@ -78,16 +78,16 @@ class FileBrowserModalContentConnector extends Component {
allowFoldersWithoutTrailingSlashes: true,
includeFiles
});
}
};
onClearPaths = () => {
// this.props.dispatchClearPaths();
}
};
onModalClose = () => {
this.props.dispatchClearPaths();
this.props.onModalClose();
}
};
//
// Render

View File

@@ -28,7 +28,7 @@ class FileBrowserRow extends Component {
onPress = () => {
this.props.onPress(this.props.path);
}
};
//
// Render

View File

@@ -103,7 +103,7 @@ class DateFilterBuilderRowValue extends Component {
name: NAME,
value: newValue
});
}
};
onTimeChange = ({ value }) => {
const {
@@ -118,7 +118,7 @@ class DateFilterBuilderRowValue extends Component {
value: filterValue.value
}
});
}
};
//
// Render
@@ -161,6 +161,7 @@ class DateFilterBuilderRowValue extends Component {
<TextInput
name={NAME}
value={filterValue}
type="date"
placeholder="yyyy-mm-dd"
onChange={this.onValueChange}
/>

View File

@@ -63,7 +63,7 @@ class FilterBuilderModalContent extends Component {
onLabelChange = ({ value }) => {
this.setState({ label: value });
}
};
onFilterChange = (index, filter) => {
const filters = [...this.state.filters];
@@ -72,7 +72,7 @@ class FilterBuilderModalContent extends Component {
this.setState({
filters
});
}
};
onAddFilterPress = () => {
const filters = [...this.state.filters];
@@ -81,7 +81,7 @@ class FilterBuilderModalContent extends Component {
this.setState({
filters
});
}
};
onRemoveFilterPress = (index) => {
const filters = [...this.state.filters];
@@ -90,7 +90,7 @@ class FilterBuilderModalContent extends Component {
this.setState({
filters
});
}
};
onSaveFilterPress = () => {
const {
@@ -122,7 +122,7 @@ class FilterBuilderModalContent extends Component {
label,
filters
});
}
};
//
// Render
@@ -166,7 +166,9 @@ class FilterBuilderModalContent extends Component {
</div>
</div>
<div className={styles.label}>Filters</div>
<div className={styles.label}>
{translate('Filters')}
</div>
<div className={styles.rows}>
{

View File

@@ -154,7 +154,7 @@ class FilterBuilderRow extends Component {
this.selectedFilterBuilderProp = selectedFilterBuilderProp;
onFilterChange(index, filter);
}
};
onFilterChange = ({ name, value }) => {
const {
@@ -174,7 +174,7 @@ class FilterBuilderRow extends Component {
filter[name] = value;
onFilterChange(index, filter);
}
};
onAddPress = () => {
const {
@@ -183,7 +183,7 @@ class FilterBuilderRow extends Component {
} = this.props;
onAddPress(index);
}
};
onRemovePress = () => {
const {
@@ -192,7 +192,7 @@ class FilterBuilderRow extends Component {
} = this.props;
onRemovePress(index);
}
};
//
// Render

View File

@@ -84,7 +84,7 @@ class FilterBuilderRowValue extends Component {
name: NAME,
value: [...filterValue, value]
});
}
};
onTagDelete = ({ index }) => {
const {
@@ -98,7 +98,7 @@ class FilterBuilderRowValue extends Component {
name: NAME,
value
});
}
};
//
// Render

View File

@@ -47,7 +47,7 @@ class IndexerFilterBuilderRowValueConnector extends Component {
if (!this.props.isPopulated) {
this.props.dispatchFetchIndexers();
}
}
};
//
// Render

View File

@@ -43,7 +43,7 @@ class QualityFilterBuilderRowValueConnector extends Component {
if (!this.props.isPopulated) {
this.props.dispatchFetchQualityProfileSchema();
}
}
};
//
// Render

View File

@@ -55,7 +55,7 @@ class CustomFilter extends Component {
} = this.props;
onEditPress(id);
}
};
onRemovePress = () => {
const {
@@ -67,7 +67,7 @@ class CustomFilter extends Component {
dispatchDeleteCustomFilter({ id });
});
}
};
//
// Render

View File

@@ -25,14 +25,14 @@ class FilterModal extends Component {
this.setState({
filterBuilder: true
});
}
};
onEditCustomFilter = (id) => {
this.setState({
filterBuilder: true,
id
});
}
};
onCancelPress = () => {
if (this.state.filterBuilder) {
@@ -43,7 +43,7 @@ class FilterModal extends Component {
} else {
this.onModalClose();
}
}
};
onModalClose = () => {
this.setState({
@@ -52,7 +52,7 @@ class FilterModal extends Component {
}, () => {
this.props.onModalClose();
});
}
};
//
// Render

View File

@@ -35,11 +35,11 @@ class AutoCompleteInput extends Component {
name: this.props.name,
value: newValue
});
}
};
onInputBlur = () => {
this.setState({ suggestions: [] });
}
};
onSuggestionsFetchRequested = ({ value }) => {
const { values } = this.props;
@@ -50,11 +50,11 @@ class AutoCompleteInput extends Component {
});
this.setState({ suggestions: filteredValues });
}
};
onSuggestionsClearRequested = () => {
this.setState({ suggestions: [] });
}
};
//
// Render

View File

@@ -49,7 +49,7 @@ class AutoSuggestInput extends Component {
}}
</Reference>
);
}
};
renderSuggestionsContainer = ({ containerProps, children }) => {
return (
@@ -90,7 +90,7 @@ class AutoSuggestInput extends Component {
</Popper>
</Portal>
);
}
};
//
// Listeners
@@ -113,14 +113,14 @@ class AutoSuggestInput extends Component {
data.styles.width = width;
return data;
}
};
onInputChange = (event, { newValue }) => {
this.props.onChange({
name: this.props.name,
value: newValue
});
}
};
onInputKeyDown = (event) => {
const {
@@ -144,7 +144,7 @@ class AutoSuggestInput extends Component {
});
}
}
}
};
//
// Render

View File

@@ -6,8 +6,7 @@ import SelectInput from './SelectInput';
const availabilityOptions = [
{ key: 'announced', value: translate('Announced') },
{ key: 'inCinemas', value: translate('InCinemas') },
{ key: 'released', value: translate('Released') },
{ key: 'preDB', value: translate('PreDB') }
{ key: 'released', value: translate('Released') }
];
function AvailabilitySelectInput(props) {

View File

@@ -39,7 +39,7 @@ class CaptchaInputConnector extends Component {
componentWillUnmount = () => {
this.props.resetCaptcha();
}
};
//
// Listeners
@@ -51,7 +51,7 @@ class CaptchaInputConnector extends Component {
} = this.props;
this.props.refreshCaptcha({ provider, providerData });
}
};
onCaptchaChange = (captchaResponse) => {
// If the captcha has expired `captchaResponse` will be null.
@@ -68,7 +68,7 @@ class CaptchaInputConnector extends Component {
} = this.props;
this.props.getCaptchaCookie({ provider, providerData, captchaResponse });
}
};
//
// Render

View File

@@ -59,14 +59,14 @@ class CheckInput extends Component {
shiftKey
});
}
}
};
//
// Listeners
setRef = (ref) => {
this._checkbox = ref;
}
};
onClick = (event) => {
if (this.props.isDisabled) {
@@ -78,14 +78,14 @@ class CheckInput extends Component {
event.preventDefault();
this.toggleChecked(checked, shiftKey);
}
};
onChange = (event) => {
const checked = event.target.checked;
const shiftKey = event.nativeEvent.shiftKey;
this.toggleChecked(checked, shiftKey);
}
};
//
// Render

View File

@@ -23,7 +23,7 @@ class DeviceInput extends Component {
name,
value: [...value, deviceId]
});
}
};
onTagDelete = ({ index }) => {
const {
@@ -39,7 +39,7 @@ class DeviceInput extends Component {
name,
value: newValue
});
}
};
//
// Render

View File

@@ -48,11 +48,11 @@ class DeviceInputConnector extends Component {
componentDidMount = () => {
this._populate();
}
};
componentWillUnmount = () => {
this.props.dispatchClearOptions({ section: 'devices' });
}
};
//
// Control
@@ -77,7 +77,7 @@ class DeviceInputConnector extends Component {
onRefreshPress = () => {
this._populate();
}
};
//
// Render

View File

@@ -0,0 +1,100 @@
import _ from 'lodash';
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { fetchDownloadClients } from 'Store/Actions/settingsActions';
import sortByName from 'Utilities/Array/sortByName';
import EnhancedSelectInput from './EnhancedSelectInput';
function createMapStateToProps() {
return createSelector(
(state) => state.settings.downloadClients,
(state, { includeAny }) => includeAny,
(state, { protocol }) => protocol,
(downloadClients, includeAny, protocolFilter) => {
const {
isFetching,
isPopulated,
error,
items
} = downloadClients;
const filteredItems = items.filter((item) => item.protocol === protocolFilter);
const values = _.map(filteredItems.sort(sortByName), (downloadClient) => {
return {
key: downloadClient.id,
value: downloadClient.name
};
});
if (includeAny) {
values.unshift({
key: 0,
value: '(Any)'
});
}
return {
isFetching,
isPopulated,
error,
values
};
}
);
}
const mapDispatchToProps = {
dispatchFetchDownloadClients: fetchDownloadClients
};
class DownloadClientSelectInputConnector extends Component {
//
// Lifecycle
componentDidMount() {
if (!this.props.isPopulated) {
this.props.dispatchFetchDownloadClients();
}
}
//
// Listeners
onChange = ({ name, value }) => {
this.props.onChange({ name, value: parseInt(value) });
};
//
// Render
render() {
return (
<EnhancedSelectInput
{...this.props}
onChange={this.onChange}
/>
);
}
}
DownloadClientSelectInputConnector.propTypes = {
isFetching: PropTypes.bool.isRequired,
isPopulated: PropTypes.bool.isRequired,
name: PropTypes.string.isRequired,
value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
values: PropTypes.arrayOf(PropTypes.object).isRequired,
includeAny: PropTypes.bool.isRequired,
onChange: PropTypes.func.isRequired,
dispatchFetchDownloadClients: PropTypes.func.isRequired
};
DownloadClientSelectInputConnector.defaultProps = {
includeAny: false,
protocol: 'torrent'
};
export default connect(createMapStateToProps, mapDispatchToProps)(DownloadClientSelectInputConnector);

View File

@@ -12,9 +12,9 @@ import ModalBody from 'Components/Modal/ModalBody';
import Portal from 'Components/Portal';
import Scroller from 'Components/Scroller/Scroller';
import { icons, scrollDirections, sizes } from 'Helpers/Props';
import { isMobile as isMobileUtil } from 'Utilities/browser';
import * as keyCodes from 'Utilities/Constants/keyCodes';
import getUniqueElememtId from 'Utilities/getUniqueElementId';
import { isMobile as isMobileUtil } from 'Utilities/mobile';
import HintedSelectInputOption from './HintedSelectInputOption';
import HintedSelectInputSelectedValue from './HintedSelectInputSelectedValue';
import TextInput from './TextInput';
@@ -149,7 +149,7 @@ class EnhancedSelectInput extends Component {
}
return data;
}
};
onWindowClick = (event) => {
const button = document.getElementById(this._buttonId);
@@ -168,14 +168,14 @@ class EnhancedSelectInput extends Component {
this.setState({ isOpen: false });
this._removeListener();
}
}
};
onFocus = () => {
if (this.state.isOpen) {
this._removeListener();
this.setState({ isOpen: false });
}
}
};
onBlur = () => {
if (!this.props.isEditable) {
@@ -186,7 +186,7 @@ class EnhancedSelectInput extends Component {
this.setState({ selectedIndex: origIndex });
}
}
}
};
onKeyDown = (event) => {
const {
@@ -253,7 +253,7 @@ class EnhancedSelectInput extends Component {
if (!_.isEmpty(newState)) {
this.setState(newState);
}
}
};
onPress = () => {
if (this.state.isOpen) {
@@ -267,7 +267,7 @@ class EnhancedSelectInput extends Component {
}
this.setState({ isOpen: !this.state.isOpen });
}
};
onSelect = (value) => {
if (Array.isArray(this.props.value)) {
@@ -291,15 +291,15 @@ class EnhancedSelectInput extends Component {
value
});
}
}
};
onMeasure = ({ width }) => {
this.setState({ width });
}
};
onOptionsModalClose = () => {
this.setState({ isOpen: false });
}
};
//
// Render

View File

@@ -73,7 +73,7 @@ class EnhancedSelectInputConnector extends Component {
componentDidMount = () => {
this._populate();
}
};
componentDidUpdate = (prevProps) => {
const prevKey = getProviderDataKey(prevProps.providerData);
@@ -82,11 +82,11 @@ class EnhancedSelectInputConnector extends Component {
if (!_.isEqual(prevKey, nextKey)) {
this.setState({ refetchRequired: true });
}
}
};
componentWillUnmount = () => {
this._cleanup();
}
};
//
// Listeners
@@ -95,7 +95,7 @@ class EnhancedSelectInputConnector extends Component {
if (this.state.refetchRequired) {
this._populate();
}
}
};
//
// Control

View File

@@ -21,11 +21,11 @@ class EnhancedSelectInputOption extends Component {
} = this.props;
onSelect(id);
}
};
onCheckPress = () => {
// CheckInput requires a handler. Swallow the change event because onPress will already handle it via event propagation.
}
};
//
// Render

View File

@@ -8,6 +8,7 @@ import AvailabilitySelectInput from './AvailabilitySelectInput';
import CaptchaInputConnector from './CaptchaInputConnector';
import CheckInput from './CheckInput';
import DeviceInputConnector from './DeviceInputConnector';
import DownloadClientSelectInputConnector from './DownloadClientSelectInputConnector';
import EnhancedSelectInput from './EnhancedSelectInput';
import EnhancedSelectInputConnector from './EnhancedSelectInputConnector';
import FormInputHelpText from './FormInputHelpText';
@@ -73,6 +74,9 @@ function getComponent(type) {
case inputTypes.INDEXER_FLAGS_SELECT:
return IndexerFlagsSelectInputConnector;
case inputTypes.DOWNLOAD_CLIENT_SELECT:
return DownloadClientSelectInputConnector;
case inputTypes.LANGUAGE_SELECT:
return LanguageSelectInputConnector;

View File

@@ -43,7 +43,7 @@ class IndexerFlagsSelectInputConnector extends Component {
});
this.props.onChange({ name, value: indexerFlags });
}
};
//
// Render

View File

@@ -39,7 +39,7 @@ class KeyValueListInput extends Component {
name,
value: newValue
});
}
};
onRemoveItem = (index) => {
const {
@@ -55,13 +55,13 @@ class KeyValueListInput extends Component {
name,
value: newValue
});
}
};
onFocus = () => {
this.setState({
isFocused: true
});
}
};
onBlur = () => {
this.setState({
@@ -88,7 +88,7 @@ class KeyValueListInput extends Component {
value: newValue
});
}
}
};
//
// Render

View File

@@ -18,7 +18,7 @@ class KeyValueListInputItem extends Component {
} = this.props;
onChange(index, { key: keyValue, value });
}
};
onValueChange = ({ value }) => {
// TODO: Validate here or validate at a lower level component
@@ -30,7 +30,7 @@ class KeyValueListInputItem extends Component {
} = this.props;
onChange(index, { key: keyValue, value });
}
};
onRemovePress = () => {
const {
@@ -39,15 +39,15 @@ class KeyValueListInputItem extends Component {
} = this.props;
onRemove(index);
}
};
onFocus = () => {
this.props.onFocus();
}
};
onBlur = () => {
this.props.onBlur();
}
};
//
// Render

View File

@@ -59,11 +59,11 @@ class NumberInput extends Component {
value: parseValue(this.props, value)
});
}
};
onFocus = () => {
this.setState({ isFocused: true });
}
};
onBlur = () => {
const {
@@ -88,7 +88,7 @@ class NumberInput extends Component {
name,
value: parsedValue
});
}
};
//
// Render

View File

@@ -41,7 +41,7 @@ class OAuthInputConnector extends Component {
componentWillUnmount = () => {
this.props.resetOAuth();
}
};
//
// Listeners
@@ -60,7 +60,7 @@ class OAuthInputConnector extends Component {
providerData,
section
});
}
};
//
// Render

View File

@@ -62,7 +62,7 @@ class PathInput extends Component {
onInputChange = ({ value }) => {
this.setState({ value });
}
};
onInputKeyDown = (event) => {
if (event.key === 'Tab') {
@@ -80,7 +80,7 @@ class PathInput extends Component {
}
}
}
}
};
onInputBlur = () => {
this.props.onChange({
@@ -89,28 +89,28 @@ class PathInput extends Component {
});
this.props.onClearPaths();
}
};
onSuggestionsFetchRequested = ({ value }) => {
this.props.onFetchPaths(value);
}
};
onSuggestionsClearRequested = () => {
// Required because props aren't always rendered, but no-op
// because we don't want to reset the paths after a path is selected.
}
};
onSuggestionSelected = (event, { suggestionValue }) => {
this.props.onFetchPaths(suggestionValue);
}
};
onFileBrowserOpenPress = () => {
this.setState({ isFileBrowserModalOpen: true });
}
};
onFileBrowserModalClose = () => {
this.setState({ isFileBrowserModalOpen: false });
}
};
//
// Render

View File

@@ -47,11 +47,11 @@ class PathInputConnector extends Component {
path,
includeFiles
});
}
};
onClearPaths = () => {
this.props.dispatchClearPaths();
}
};
//
// Render

View File

@@ -69,7 +69,7 @@ class QualityProfileSelectInputConnector extends Component {
onChange = ({ name, value }) => {
this.props.onChange({ name, value: parseInt(value) });
}
};
//
// Render

View File

@@ -49,17 +49,17 @@ class RootFolderSelectInput extends Component {
} else {
this.props.onChange({ name, value });
}
}
};
onNewRootFolderSelect = ({ value }) => {
this.setState({ newRootFolderPath: value }, () => {
this.props.onNewRootFolderSelect(value);
});
}
};
onAddRootFolderModalClose = () => {
this.setState({ isAddNewRootFolderModalOpen: false });
}
};
//
// Render

View File

@@ -134,7 +134,7 @@ class RootFolderSelectInputConnector extends Component {
onNewRootFolderSelect = (path) => {
this.props.dispatchAddRootFolder(path);
}
};
//
// Render

View File

@@ -13,7 +13,7 @@ class SelectInput extends Component {
name: this.props.name,
value: event.target.value
});
}
};
//
// Render

View File

@@ -49,7 +49,7 @@ class TagInput extends Component {
_setAutosuggestRef = (ref) => {
this._autosuggestRef = ref;
}
};
getSuggestionValue({ name }) {
return name;
@@ -57,7 +57,7 @@ class TagInput extends Component {
shouldRenderSuggestions = (value) => {
return value.length >= this.props.minQueryLength;
}
};
renderSuggestion({ name }) {
return name;
@@ -70,14 +70,14 @@ class TagInput extends Component {
value: '',
suggestions: []
});
}, 250, { leading: true, trailing: false })
}, 250, { leading: true, trailing: false });
//
// Listeners
onInputContainerPress = () => {
this._autosuggestRef.input.focus();
}
};
onInputChange = (event, { newValue, method }) => {
const value = _.isObject(newValue) ? newValue.name : newValue;
@@ -85,7 +85,7 @@ class TagInput extends Component {
if (method === 'type') {
this.setState({ value });
}
}
};
onInputKeyDown = (event) => {
const {
@@ -125,11 +125,11 @@ class TagInput extends Component {
event.preventDefault();
}
}
}
};
onInputFocus = () => {
this.setState({ isFocused: true });
}
};
onInputBlur = () => {
this.setState({ isFocused: false });
@@ -153,7 +153,7 @@ class TagInput extends Component {
if (tag) {
this.addTag(tag);
}
}
};
onSuggestionsFetchRequested = ({ value }) => {
const lowerCaseValue = value.toLowerCase();
@@ -170,16 +170,16 @@ class TagInput extends Component {
});
this.setState({ suggestions });
}
};
onSuggestionsClearRequested = () => {
// Required because props aren't always rendered, but no-op
// because we don't want to reset the paths after a path is selected.
}
};
onSuggestionSelected = (event, { suggestion }) => {
this.addTag(suggestion);
}
};
//
// Render
@@ -204,7 +204,7 @@ class TagInput extends Component {
onInputContainerPress={this.onInputContainerPress}
/>
);
}
};
render() {
const {

View File

@@ -101,7 +101,7 @@ class TagInputConnector extends Component {
newValue.push(tag.id);
this.props.onChange({ name, value: newValue });
}
};
onTagDelete = ({ index }) => {
const {
@@ -116,7 +116,7 @@ class TagInputConnector extends Component {
name,
value: newValue
});
}
};
onTagCreated = (tag) => {
const {
@@ -128,7 +128,7 @@ class TagInputConnector extends Component {
newValue.push(tag.id);
this.props.onChange({ name, value: newValue });
}
};
//
// Render

View File

@@ -19,7 +19,7 @@ class TagInputInput extends Component {
}
onInputContainerPress();
}
};
render() {
const {

View File

@@ -22,7 +22,7 @@ class TagInputTag extends Component {
index,
id: tag.id
});
}
};
//
// Render

View File

@@ -60,7 +60,7 @@ class TagSelectInputConnector extends Component {
}
this.props.onChange({ name, value: newValue });
}
};
onTagDelete = ({ index }) => {
const {
@@ -75,7 +75,7 @@ class TagSelectInputConnector extends Component {
name,
value: newValue
});
}
};
//
// Render

View File

@@ -35,7 +35,7 @@ class TextArea extends Component {
setInputRef = (ref) => {
this._input = ref;
}
};
selectionChange() {
if (this._selectionTimeout) {
@@ -75,7 +75,7 @@ class TextArea extends Component {
};
onChange(payload);
}
};
onFocus = (event) => {
if (this.props.onFocus) {
@@ -83,19 +83,19 @@ class TextArea extends Component {
}
this.selectionChange();
}
};
onKeyUp = () => {
this.selectionChange();
}
};
onMouseDown = () => {
this._isMouseTarget = true;
}
};
onMouseUp = () => {
this.selectionChange();
}
};
onDocumentMouseUp = () => {
if (this._isMouseTarget) {
@@ -103,7 +103,7 @@ class TextArea extends Component {
}
this._isMouseTarget = false;
}
};
//
// Render

View File

@@ -35,7 +35,7 @@ class TextInput extends Component {
setInputRef = (ref) => {
this._input = ref;
}
};
selectionChange() {
if (this._selectionTimeout) {
@@ -82,7 +82,7 @@ class TextInput extends Component {
}
onChange(payload);
}
};
onFocus = (event) => {
if (this.props.onFocus) {
@@ -90,19 +90,19 @@ class TextInput extends Component {
}
this.selectionChange();
}
};
onKeyUp = () => {
this.selectionChange();
}
};
onMouseDown = () => {
this._isMouseTarget = true;
}
};
onMouseUp = () => {
this.selectionChange();
}
};
onDocumentMouseUp = () => {
if (this._isMouseTarget) {
@@ -110,7 +110,7 @@ class TextInput extends Component {
}
this._isMouseTarget = false;
}
};
//
// Render

View File

@@ -53,7 +53,7 @@ class TextTagInputConnector extends Component {
});
onChange({ name, value: newValue.join(',') });
}
};
onTagDelete = ({ index }) => {
const {
@@ -69,7 +69,7 @@ class TextTagInputConnector extends Component {
name,
value: newValue.join(',')
});
}
};
//
// Render

View File

@@ -1,4 +1,5 @@
.heart {
.image {
align-content: center;
margin-right: 5px;
color: $themeRed;
vertical-align: -0.125em;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,5 @@
.image {
align-content: center;
margin-right: 5px;
vertical-align: -0.125em;
}

File diff suppressed because one or more lines are too long

View File

@@ -63,7 +63,7 @@ class ClipboardButton extends Component {
showSuccess: false,
showError: false
});
}
};
//
// Listeners
@@ -72,13 +72,13 @@ class ClipboardButton extends Component {
this.setState({
showSuccess: true
});
}
};
onError = () => {
this.setState({
showError: true
});
}
};
//
// Render

View File

@@ -18,7 +18,7 @@ class Link extends Component {
if (!isDisabled && onPress) {
onPress(event);
}
}
};
//
// Render

View File

@@ -90,7 +90,7 @@ class SpinnerErrorButton extends Component {
hasWarning: false,
hasError: false
});
}
};
//
// Render

View File

@@ -61,7 +61,7 @@ class Marquee extends Component {
} else if (this.state.overflowWidth > 0) {
this.startAnimation();
}
}
};
onHandleMouseLeave = () => {
if (this.props.hoverToStop && this.state.overflowWidth > 0) {
@@ -70,7 +70,7 @@ class Marquee extends Component {
clearTimeout(this.marqueeTimer);
this.setState({ animatedWidth: 0 });
}
}
};
startAnimation = () => {
clearTimeout(this.marqueeTimer);
@@ -108,7 +108,7 @@ class Marquee extends Component {
};
this.marqueeTimer = setTimeout(animate, timeout);
}
};
measureText = () => {
const container = this.container;
@@ -123,7 +123,7 @@ class Marquee extends Component {
this.setState({ overflowWidth });
}
}
}
};
render() {
const style = {

View File

@@ -17,7 +17,7 @@ class Measure extends Component {
onMeasure = _.debounce((payload) => {
this.props.onMeasure(payload);
}, 250, { leading: true, trailing: false })
}, 250, { leading: true, trailing: false });
//
// Render

View File

@@ -25,11 +25,11 @@ class FilterMenu extends Component {
onCustomFiltersPress = () => {
this.setState({ isFilterModalOpen: true });
}
};
onFiltersModalClose = () => {
this.setState({ isFilterModalOpen: false });
}
};
//
// Render

View File

@@ -14,7 +14,7 @@ class FilterMenuItem extends Component {
} = this.props;
onPress(filterKey);
}
};
//
// Render

View File

@@ -124,7 +124,7 @@ class Menu extends Component {
this.setState({ isMenuOpen: false });
this._removeListener();
}
}
};
onTouchStart = (event) => {
const menuButton = document.getElementById(this._menuButtonId);
@@ -148,17 +148,17 @@ class Menu extends Component {
this.setState({ isMenuOpen: false });
this._removeListener();
}
}
};
onWindowResize = () => {
this.setMaxHeight();
}
};
onWindowScroll = (event) => {
if (this.state.isMenuOpen) {
this.setMaxHeight();
}
}
};
onMenuButtonPress = () => {
const state = {
@@ -173,7 +173,7 @@ class Menu extends Component {
}
this.setState(state);
}
};
//
// Render

Some files were not shown because too many files have changed in this diff Show More