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

Compare commits

...

2134 Commits

Author SHA1 Message Date
Qstick
982e3c14d3 Fix Tests from Site Image Changes 2021-02-02 22:36:32 -05:00
Qstick
8dafa29f8c Bump Radarr Version 3.0.2 2021-01-08 21:42:24 -05:00
Qstick
6b3bdb4f88 Bump Sentry 2.1.8 / SentryJS 5.29.2 2021-01-08 21:41:44 -05:00
Mark McDowall
56bb319934 Use createHandleActions for adding/removing commands so itemMap is synced properly
(cherry picked from commit 99be6a7e4065b77c910df6444a468fedc23e90cc)
2021-01-08 20:58:53 -05:00
Qstick
6de847a361 Fixed: Don't try to clean Update Folder if it doesn't exist
(cherry picked from commit 24f96fa2a4c1fd92f6433ec94edf6e55b7c83d89)
2021-01-08 20:56:16 -05:00
Mark McDowall
94591dea93 New: Removing update folder from temp folder during housekeeping
(cherry picked from commit c1d060ff58fc466f4a2cc232bff07294cf224a9a)
2021-01-08 20:55:16 -05:00
bakerboy448
5cb20b0dac Fixed: Parsing of 4Kto1080p as 1080p
(cherry picked from commit 056a699daf2ed0b8314f0b4d6bdec20cd24818c3)
2021-01-08 20:09:41 -05:00
bakerboy448
69954c50cb it's 2021 now [skip ci] 2021-01-08 17:32:11 -05:00
Anonymous
e5d72bb995 Translated using Weblate (Korean) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ko/
2021-01-07 21:15:57 +00:00
Anonymous
ae7c78ba48 Translated using Weblate (Hebrew) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/he/
2021-01-07 21:14:42 +00:00
Anonymous
84498d9e92 Translated using Weblate (Danish) [skip ci]
Currently translated at 99.6% (1057 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/da/
2021-01-07 21:13:33 +00:00
Anonymous
d12b75e223 Translated using Weblate (Russian) [skip ci]
Currently translated at 99.7% (1058 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2021-01-07 21:12:34 +00:00
Anonymous
b27367088e Translated using Weblate (Polish) [skip ci]
Currently translated at 99.9% (1060 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pl/
2021-01-07 21:12:32 +00:00
Anonymous
570bc87ab7 Translated using Weblate (Greek) [skip ci]
Currently translated at 99.5% (1056 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/el/
2021-01-07 21:11:25 +00:00
pannbiff
1ae4c53e27 Translated using Weblate (Swedish) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2021-01-07 21:10:19 +00:00
Anonymous
cd84045161 Translated using Weblate (Vietnamese) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/vi/
2021-01-07 21:10:17 +00:00
Anonymous
667fdc64e3 Translated using Weblate (Spanish) [skip ci]
Currently translated at 97.9% (1039 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2021-01-07 21:09:02 +00:00
Anonymous
e424264504 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 97.7% (1037 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2021-01-07 21:08:44 +00:00
ta264
7716c31ebd Translated using Weblate (Bulgarian) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/bg/
2021-01-07 21:08:29 +00:00
Anonymous
6d729416d9 Translated using Weblate (Italian) [skip ci]
Currently translated at 97.8% (1038 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2021-01-07 21:07:20 +00:00
Anonymous
1668978fc6 Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 99.9% (1060 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2021-01-07 21:07:07 +00:00
Anonymous
874840c921 Translated using Weblate (Finnish) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fi/
2021-01-07 21:07:05 +00:00
Anonymous
defd08addf Translated using Weblate (Icelandic) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/is/
2021-01-07 21:05:48 +00:00
Anonymous
c072e0a2ca Translated using Weblate (Turkish) [skip ci]
Currently translated at 99.6% (1057 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/tr/
2021-01-07 21:04:34 +00:00
Anonymous
d9ce781dfa Translated using Weblate (Dutch) [skip ci]
Currently translated at 99.9% (1060 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2021-01-07 21:03:30 +00:00
Anonymous
a438d43c57 Translated using Weblate (French) [skip ci]
Currently translated at 97.1% (1031 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2021-01-07 21:03:27 +00:00
ta264
81f0fd38ac Translated using Weblate (French) [skip ci]
Currently translated at 97.1% (1031 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2021-01-07 21:03:17 +00:00
Anonymous
bbc9de464c Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 98.7% (1048 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2021-01-07 21:03:15 +00:00
ta264
0738e35583 Translated using Weblate (Hindi) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hi/
2021-01-07 21:03:14 +00:00
Anonymous
6e2f13f76b Translated using Weblate (Romanian) [skip ci]
Currently translated at 99.5% (1056 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ro/
2021-01-07 21:02:05 +00:00
Anonymous
2fb36f7c6c Translated using Weblate (Japanese) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ja/
2021-01-07 21:01:12 +00:00
Anonymous
5ead82903c Translated using Weblate (Czech) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/cs/
2021-01-07 20:59:51 +00:00
Anonymous
b4c03aae6d Translated using Weblate (Thai) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/th/
2021-01-07 20:58:38 +00:00
pannbiff
2a8a2ce3b0 Translated using Weblate (Swedish) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2021-01-07 20:05:55 +00:00
Anonymous
c75a9dfe34 Translated using Weblate (Swedish) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2021-01-07 20:05:55 +00:00
Qstick
7410a2db5d Remove validation test for From Addresses 2021-01-06 23:50:34 -05:00
Qstick
74c89e1d44 Enforce Selection of Credit Type on Person Lists
Fixes: #5684
2021-01-06 23:19:31 -05:00
Qstick
f120b84c43 Fixed: Allow "Pretty" From Address for Email
Fixes #5497
2021-01-06 23:11:15 -05:00
Qstick
88ec106ec6 Better validation for Imdb Ids from lists
Fixes #5674
2021-01-06 23:06:07 -05:00
wangerry
99b75a3089 Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 98.6% (1047 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2021-01-06 11:43:28 +00:00
Forsefrits
50592d5bb6 Translated using Weblate (Dutch) [skip ci]
Currently translated at 96.6% (1025 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2021-01-06 11:43:28 +00:00
Qstick
9fce6b1026 Really ignore ResizeObserver loop errors
(cherry picked from commit 99a7540fe4dc5160f6487cfe810e99166ee4582e)
2021-01-05 22:54:25 -05:00
Csaba
5f32627bfb Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2021-01-04 20:43:22 +00:00
Mark McDowall
56b658cc96 Fixed: Restored robots.txt
(cherry picked from commit 37501094d7256e4dbe13de33b392933f6d475553)
2020-12-31 16:39:23 -05:00
nitsua
c22ae12c1f Move the Movie column next to the Folder colum for easier matching (#5078)
Fixes: #5075
2020-12-30 23:30:55 -05:00
tenshiak
4bac44e893 New: Better Polish language Release Parsing (#5592)
* Parse Polish language

* Tests for parsing Polish language
2020-12-30 22:50:45 -05:00
jasimancas
1c58e26183 - Change <writer> to <credits> 2020-12-30 22:30:46 -05:00
jasimancas
4d965955d1 - Add rating 2020-12-30 22:30:46 -05:00
jasimancas
23b9d657ce no message 2020-12-30 22:30:46 -05:00
jasimancas
c046c3c229 - Added new ratings scheme
- Added the fields userrating, top250, outline, tagline, playcount, lastplayed, country empty for use in Kodi (need this field in database)
- Added Director and Writer
- Added overview to set (empty, need this field in database)
- Change ID to TMDB (previously IMDB)
- Set True TMDB UniqueID instead of IMDB
- Modified thumb's sentence
- Remove <tmdbid>
- Reordered XML to match Kodi schema (https://kodi.wiki/view/NFO_files/Movies)
2020-12-30 22:30:46 -05:00
jasimancas
f734ba2323 Schematize NFO in XBMC with Kodi format: https://kodi.wiki/view/NFO_files/Movies 2020-12-30 22:30:46 -05:00
bakerboy448
44fa36373c reword library import do not use for downloads text 2020-12-30 22:12:27 -05:00
bakerboy448
e6afcb68f3 update mac icon 2020-12-29 21:15:05 -05:00
Qstick
c8c900251a Update PushoverSettings.cs
Fixes #5635
2020-12-29 14:35:22 -05:00
pannbiff
915e7ce589 Translated using Weblate (Swedish) [skip ci]
Currently translated at 60.5% (642 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-12-29 08:43:20 +00:00
Qstick
5bab42b712 Fix LocalizationServiceFixture Test 2020-12-27 21:56:25 -05:00
Qstick
f499e846d9 Fixed: Grab correct translation on case sensitive file systems 2020-12-27 21:07:20 -05:00
Qstick
80a744eff5 Fixed: 'iso-8859-2' is not a supported encoding name 2020-12-26 10:58:38 -05:00
Lizandra Candido da Silva
82dfaf0ea5 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 98.7% (1048 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-26 09:43:18 +00:00
Qstick
8f78953191 Change Skip Refresh Log to Debug 2020-12-25 00:23:09 -05:00
Havok Dan
9261efa843 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 98.7% (1048 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-24 21:43:18 +00:00
Qstick
b9a8166f9f Rename recentfeed.json to RecentFeed.json 2020-12-24 13:16:32 -05:00
Taloth Saldono
8cccde48c1 Fixed test file casing
(cherry picked from commit a7ca139e13375e73074508d74b9590f5446d3b09)
2020-12-24 13:16:32 -05:00
ta264
96384521c5 Fixed: FolderWritable check for CIFS shares mounted in Unix
This reverts commit 8c892a732e.
2020-12-24 17:29:38 +00:00
ta264
f90211b0d3 Fixed: UI hanging after scrolling movie list too fast
[common]
2020-12-24 12:21:17 -05:00
Qstick
d1bebd3e5b Fix RemotePathMappingCheckFixture 2020-12-24 02:43:29 -05:00
Qstick
a32bc21907 Fix Wiki Links for Hardcoded Fragments 2020-12-24 02:37:08 -05:00
Qstick
4f7dc94b94 Fix BasicRepository Tests when not on UTC
[common]
2020-12-24 01:02:24 -05:00
bakerboy448
5ca1a1d086 fix contributing port [skip ci] 2020-12-23 12:21:59 -05:00
angelsky11
7d763b8ba0 Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 98.6% (1047 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2020-12-23 08:43:20 +00:00
reloxx
23c197bd3b Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-12-23 08:43:19 +00:00
ta264
8c892a732e Revert "Fixed: FolderWritable check for CIFS shares mounted in Unix"
This reverts commit a71874db8d.
2020-12-23 08:28:19 +00:00
bakerboy448
140547e42a Fixed: '/movie' URL Base breaking UI navigation 2020-12-22 14:59:34 -05:00
Qstick
3ab9af0663 New: Portuguese (Brazil) Language Support 2020-12-22 13:41:18 -05:00
ta264
a71874db8d Fixed: FolderWritable check for CIFS shares mounted in Unix
See https://github.com/dotnet/runtime/issues/42790

Implemented workaround in https://github.com/dotnet/runtime/issues/42790#issuecomment-700362617

[common]
2020-12-22 15:58:20 +00:00
angelsky11
226ee34fec Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 97.7% (1037 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2020-12-22 15:17:20 +00:00
angelsky11
eb5add1198 Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 82.8% (879 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2020-12-22 07:43:18 +00:00
bakerboy448
3759625386 New: Improved Discover recommendations
New: Movies existing in Library no longer show as a Discover Recommendations
2020-12-21 22:50:30 -05:00
angelsky11
b85f3f0e35 Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 81.3% (863 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2020-12-21 18:25:55 +00:00
ta264
286b083da4 Fixed: Restoring large database backups
Remove Kestrel's default 28.6MB upload limit

[common]
2020-12-21 17:39:16 +00:00
angelsky11
912273b5dd Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 80.5% (855 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2020-12-21 17:38:33 +00:00
angelsky11
73d1486392 Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 70.4% (748 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2020-12-21 02:43:23 +00:00
angelsky11
063c6fb85c Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 55.7% (592 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2020-12-20 07:43:29 +00:00
bakerboy448
c95573a7da fix readme wiki badge [skip ci]
also re order
2020-12-19 18:10:25 -05:00
Qstick
a6cf524fe7 Remove “Preview” from tab description text 2020-12-19 14:49:29 -05:00
reloxx
bb264e9a8a Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-12-18 20:43:15 +00:00
wangerry
ca0cabe985 Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 11.8% (126 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2020-12-18 02:43:18 +00:00
Lizandra Candido da Silva
48c3aea9bb Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 98.3% (1044 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-17 07:43:17 +00:00
kingii98
4122b82601 Translated using Weblate (Russian) [skip ci]
Currently translated at 99.5% (1056 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2020-12-17 07:43:17 +00:00
Csaba
3abf67aaf0 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-12-17 07:43:16 +00:00
pannbiff
2b860aab36 Translated using Weblate (Swedish) [skip ci]
Currently translated at 60.4% (641 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-12-16 01:01:24 +00:00
bakerboy448
85bfcd72ff Fix: Bad Translate when removing Activity from queue
(also sort)
2020-12-15 20:01:18 -05:00
faxity
df15c636a4 Translated using Weblate (Dutch) [skip ci]
Currently translated at 88.0% (934 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-12-15 05:34:23 +00:00
Forsefrits
1136de29e5 Translated using Weblate (Dutch) [skip ci]
Currently translated at 78.9% (838 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-12-14 10:34:21 +00:00
Qstick
ffcb34f9f0 Ignore ResizeObserver loop limit errors
[common]
2020-12-12 14:04:16 -05:00
Qstick
877b6c0fcf Change to once a day for locking [skip ci] 2020-12-10 10:09:03 -05:00
reloxx
854c1a6866 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-12-10 11:34:17 +00:00
hotio
cd8ed08376 Translated using Weblate (Dutch) [skip ci]
Currently translated at 77.1% (819 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-12-09 22:34:19 +00:00
Csaba
b64c938188 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-12-09 22:34:18 +00:00
reloxx
bd930f3b8d Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-12-09 22:34:17 +00:00
Qstick
0880cd6ffc Allow manually run lock [skip ci] 2020-12-08 23:47:46 -05:00
Qstick
c2a96ff485 Run Lock every 10 minutes for test [skip ci] 2020-12-08 23:31:03 -05:00
Qstick
21e92e7fcf Update lock.yml 2020-12-08 23:15:46 -05:00
Qstick
96f0bb2f90 Lock Issues Workflow [skip ci] 2020-12-08 23:01:29 -05:00
Qstick
c0e1b97f29 Bump Version to 3.0.1 2020-12-08 22:01:53 -05:00
Qstick
fd4fb88ce1 New: Add Validations for Recycle Bin Folder
[common]
2020-12-08 21:53:42 -05:00
bakerboy448
003686d68f Fixed: Clarify Language around Importing a Library
New: Library Import renamed from (sidebar) Import to Library Import
2020-12-07 22:48:34 -05:00
wangerry
3e0e4ba1fd Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 11.3% (120 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2020-12-07 21:49:30 +00:00
Pavel
45ecfb05f4 Translated using Weblate (Russian) [skip ci]
Currently translated at 100.0% (1058 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2020-12-07 21:49:27 +00:00
wangerry
ab620d373c Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 0.1% (1 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2020-12-06 12:48:37 +00:00
Pavel
9b3faefc8e Translated using Weblate (Russian) [skip ci]
Currently translated at 68.7% (727 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2020-12-06 12:48:37 +00:00
Qstick
dd577f9db0 Added translation using Weblate (Chinese (Simplified)) [skip ci] 2020-12-05 14:35:07 +00:00
Qstick
5c0939d9df Deleted translation using Weblate (Chinese (Simplified)) [skip ci] 2020-12-05 14:33:44 +00:00
Qstick
bdb818b1b6 Added translation using Weblate (Chinese (Simplified)) [skip ci] 2020-12-05 14:26:06 +00:00
Qstick
4550ef13a4 Don't call AllMovies twice for each AddMovie validation 2020-12-04 23:23:20 -05:00
Lizandra Candido da Silva
98f0769c5d Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 98.3% (1041 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-05 00:21:18 +00:00
jpalenz77
6f854ddd56 Translated using Weblate (Spanish) [skip ci]
Currently translated at 78.3% (829 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-12-05 00:21:18 +00:00
pannbiff
98ae094733 Translated using Weblate (Swedish) [skip ci]
Currently translated at 60.3% (638 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-12-05 00:21:18 +00:00
Pavel
15e4dc18b9 Translated using Weblate (Russian) [skip ci]
Currently translated at 36.2% (383 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2020-12-05 00:21:18 +00:00
Qstick
d5a7479b2e Fix typo in DeleteMovieFolder label [skip ci] 2020-12-04 19:21:00 -05:00
Na0mir
e1bff99a93 Translated using Weblate (French) [skip ci]
Currently translated at 84.0% (889 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-12-04 20:50:04 +00:00
Julien Orain
9d31aed9da fix feature requests link 2020-12-04 15:06:33 +00:00
Qstick
9fbc1df74c Fixed: Persist SearchOnAdd setting value in local cache 2020-12-03 22:34:42 -05:00
Qstick
2d9c77ec5e Fixed: If v0.2 DB Exists back it up during update 2020-12-03 21:12:31 -05:00
Havok Dan
ede7d37cae Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 96.2% (1018 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-03 12:52:57 +00:00
Lizandra Candido da Silva
b580b4f829 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 96.2% (1018 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-03 12:52:56 +00:00
ta264
4f281669fc Fixed: Use QBittorrent category savepath for healthcheck
[common]
2020-12-02 22:25:35 -05:00
Lizandra Candido da Silva
9fbedc32ed Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 88.7% (939 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-02 23:35:15 +00:00
Havok Dan
745007209e Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 88.7% (939 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-02 23:35:11 +00:00
ta264
3e1cfe0033 Don't nag linux x86 users to switch to net core 2020-12-02 19:09:02 +00:00
Lizandra Candido da Silva
94b94041a8 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 55.8% (591 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-02 18:56:07 +00:00
Havok Dan
791a32b939 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 55.8% (591 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-02 18:56:07 +00:00
Lizandra Candido da Silva
af395f554e Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 54.2% (574 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-02 18:49:07 +00:00
Lizandra Candido da Silva
39640a710f Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 53.5% (567 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-02 18:47:21 +00:00
Havok Dan
6557f72600 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 53.5% (567 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-02 18:47:20 +00:00
Lizandra Candido da Silva
14b127e60d Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 47.3% (501 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-02 18:20:18 +00:00
Havok Dan
e6e6205799 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 47.3% (501 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2020-12-02 18:20:18 +00:00
Qstick
083c4750fb Fixed: Leading zeros on MI Info
Fixes #5433
2020-12-01 23:15:41 -05:00
Qstick
099d0b6e67 More API Docs [skip ci] 2020-12-01 22:31:33 -05:00
pannbiff
17615e9ace Translated using Weblate (Swedish) [skip ci]
Currently translated at 60.2% (637 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-12-01 10:49:13 +00:00
Csaba
9179b9e0eb Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1058 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-12-01 10:49:11 +00:00
reloxx
3389cc0cf8 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1058 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-12-01 10:49:10 +00:00
userdocs
21c297024f Update swagger.json (#5439) [skip ci]
Fix: /API Key/apikey generation when using the https://radarr.video/docs/api/ and setting an api key.

It currently generates this output which will not work with Radarr v3

```
curl -X GET "http://localhost:7878/api/v3/system/status?API%20Key=awawfaw" -H "accept: application/json"
```
2020-11-30 23:17:47 -05:00
Qstick
c4324c8e47 Fixed: Migrate fails for Sonarr contaminated DBs 2020-11-30 23:17:11 -05:00
nitsua
ac8fa1ee93 Adjust CSS so titles are wrap instead of truncate
Fixes #5350
2020-11-29 23:04:03 -05:00
memnos
93cff9c6ef Translated using Weblate (Italian) [skip ci]
Currently translated at 80.8% (855 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-11-30 03:50:33 +00:00
reloxx
3d0e993a53 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1058 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-11-30 03:50:33 +00:00
bakerboy448
87330c8ab9 Fixed: Incorrect reference to preferred words in proper setting helptext (#5430) 2020-11-29 22:50:28 -05:00
Qstick
785ad5d62e Fixed: Sample generation failing for {Movie OriginalTitle}
Fixes #5426
2020-11-29 22:32:49 -05:00
bakerboy448
0ddf19d384 add API Doc Link to ReadMe [skip ci] 2020-11-29 16:45:41 -05:00
Qstick
30c9446165 Fixed: SQL Error on DownloadHistory Insert 2020-11-28 22:30:00 -05:00
Qstick
e104a9e261 Fixed: TypeError on Keyup in Firefox for MovieIndex and Details 2020-11-28 21:55:19 -05:00
Qstick
4c19fa0d05 Fixed: Schedule task should reflect Backup Interval change 2020-11-28 16:57:50 -05:00
Qstick
7cd29c48bb Fixed: Importlist sync setting and validator 2020-11-28 16:34:07 -05:00
pannbiff
1aa117331f Translated using Weblate (Swedish) [skip ci]
Currently translated at 53.8% (570 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-11-28 18:22:03 +00:00
pannbiff
89baa3ff6d Translated using Weblate (Swedish) [skip ci]
Currently translated at 53.5% (567 of 1058 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-11-28 17:25:39 +00:00
Qstick
c4b729697d Fix Translation Error in Interactive Import Error Message [skip ci] 2020-11-28 12:25:33 -05:00
pannbiff
9052ef11a4 Translated using Weblate (Swedish) [skip ci]
Currently translated at 49.7% (527 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-11-28 16:05:53 +00:00
Qstick
3d5d884505 Default Branch to Master 2020-11-28 11:05:41 -05:00
Qstick
23a8b68869 Add refresh all to migration 177 for v0.2 migrations 2020-11-28 11:05:41 -05:00
Csaba
46ff3b7538 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1059 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-27 20:49:09 +00:00
reloxx
444b8e3436 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1059 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-11-27 20:49:08 +00:00
ta264
413669dbaa Add SortKey validation
[common]
2020-11-27 11:08:03 -05:00
Qstick
564a7554fc Fixed: Don't workaround DTS if audioChannels invalid 2020-11-27 01:10:09 -05:00
Qstick
c16ca46f11 Fixed: Tags View in UI Slow due to All() Movie Call 2020-11-27 00:38:47 -05:00
Qstick
a960716cec Fixed: Set CutoffUnmet correctly on MovieEditor response 2020-11-27 00:38:47 -05:00
Qstick
f55e44c591 Fixed: Incorrect translation key on MoveMovieModal 2020-11-27 00:38:47 -05:00
Qstick
17f8eb3aae Make list options advanced settings, Set min list sync 2020-11-27 00:38:47 -05:00
Qstick
082a0679d2 Fixed: Bad Translation on Restrictions Modal 2020-11-27 00:38:47 -05:00
Qstick
5182ac2a13 Fixed: Migrate Mediainfo properties that changed names 2020-11-27 00:37:53 -05:00
Gergo Schwahofer
0e1cb335a9 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1059 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-27 02:49:10 +00:00
reloxx
078cdc0cb0 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1059 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-11-27 02:49:09 +00:00
bakerboy448
0366029269 Fixed: Legend and Colors on calendar
Fixed: Streamline Legend in Index and Calendar
Fixed: Broken Translations
2020-11-26 08:16:44 -05:00
Qstick
6d011cdc48 Fixed: Availability shows incorrect for movies (doesn't consider delay setting) 2020-11-26 03:06:16 -05:00
Gergo Schwahofer
9f1833dd9e Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1059 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-26 00:49:18 +00:00
Csaba
882b1d6427 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1059 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-26 00:49:17 +00:00
reloxx
d73f1fe954 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1059 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-11-26 00:49:17 +00:00
Csaba
b707dcc20f Translated using Weblate (Hungarian) [skip ci]
Currently translated at 99.9% (1058 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 10:54:24 +00:00
Csaba
c1e1df3c22 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 99.8% (1057 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 10:54:00 +00:00
Csaba
2297b9cc14 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 99.7% (1056 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 10:53:48 +00:00
Csaba
9225e04f80 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 99.3% (1052 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 10:52:24 +00:00
Gergo Schwahofer
7496ae0b69 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 99.2% (1051 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 10:52:02 +00:00
Csaba
3443738e21 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 99.2% (1051 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 10:52:02 +00:00
Gergo Schwahofer
f632386b5c Translated using Weblate (Hungarian) [skip ci]
Currently translated at 98.9% (1048 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 10:51:20 +00:00
Gergo Schwahofer
4f26081f9d Translated using Weblate (Hungarian) [skip ci]
Currently translated at 89.0% (943 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 10:02:52 +00:00
Csaba
8c5709aec8 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 89.0% (943 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 10:02:51 +00:00
Gergo Schwahofer
6f046293b8 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 88.8% (941 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 10:02:21 +00:00
Csaba
c9519dc4b6 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 88.8% (941 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 10:02:20 +00:00
Gergo Schwahofer
1c1b8902c2 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 88.2% (935 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 09:59:38 +00:00
Csaba
053bce7a0f Translated using Weblate (Hungarian) [skip ci]
Currently translated at 87.0% (922 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 09:54:48 +00:00
Csaba
b3476c4b28 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 86.6% (918 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 09:54:09 +00:00
Csaba
1b372c41ca Translated using Weblate (Hungarian) [skip ci]
Currently translated at 86.2% (913 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 09:52:40 +00:00
Csaba
624a7ad00a Translated using Weblate (Hungarian) [skip ci]
Currently translated at 85.6% (907 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 09:50:32 +00:00
Gergo Schwahofer
5079db5dd8 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 85.6% (907 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-25 09:50:31 +00:00
Qstick
a8f517b64f Update README.md 2020-11-25 00:45:26 -05:00
pannbiff
2ca31afa8a Translated using Weblate (Swedish) [skip ci]
Currently translated at 44.1% (468 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-11-25 04:49:13 +00:00
jpalenz77
5eb5e5d5ab Translated using Weblate (Spanish) [skip ci]
Currently translated at 78.2% (829 of 1059 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-11-25 04:49:12 +00:00
Qstick
a152ab2b56 Fixed: Log only for quality mismatch between release and file 2020-11-24 23:10:02 -05:00
Qstick
6bfd9f0e18 [API Docs] Fix minor issues with tags and types [skip ci] 2020-11-24 22:43:49 -05:00
Qstick
bb418f7191 Fix bug template 'about' length [skip ci] 2020-11-24 22:19:08 -05:00
bakerboy448
e88b4b10e9 update readme [skip ci] 2020-11-24 22:13:09 -05:00
bakerboy448
f72a56f88a use lidarr's contributing as a new template for radarr [skip ci]
-needs review
2020-11-24 21:05:58 -05:00
bakerboy448
c55a832934 update GH Issue Templates [skip ci] 2020-11-24 20:56:31 -05:00
reloxx
ff62ac22e8 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (859 of 859 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-11-24 16:22:41 +00:00
bakerboy448
699d2be938 New: Add Missing Translations 2020-11-24 11:22:35 -05:00
Qstick
86118b4537 More API docs [skip ci] 2020-11-23 22:09:36 -05:00
kingii98
1a7ead0e51 Translated using Weblate (Russian) [skip ci]
Currently translated at 8.8% (76 of 859 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2020-11-24 00:49:14 +00:00
Csaba
dbd241bbc5 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (859 of 859 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-24 00:49:13 +00:00
memnos
1ee270114b Translated using Weblate (Italian) [skip ci]
Currently translated at 100.0% (859 of 859 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-11-24 00:49:08 +00:00
ta264
f90133d588 Fixed: Set correct permissions on Radarr.Update before starting 2020-11-23 19:41:25 +00:00
bakerboy448
bb721272ca New: All Wiki links now use the consolidated Servarr wiki 2020-11-22 23:14:00 -05:00
Qstick
e3ac7d6fc5 Fixed binary execute permissions for osx and Radarr
Fixes #5388

Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2020-11-22 11:25:40 -05:00
Qstick
28e2834c5d V3 API Docs Updates [skip ci] 2020-11-22 02:50:38 -05:00
Qstick
9c77399379 New: Dynamic Select and UMask Fields
Fixes #5380
Fixes #5348
Fixes #5167
Fixes #5166

Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2020-11-22 01:01:50 -05:00
Qstick
73ce77f1ca Branch to nightly so tests pass 2020-11-21 23:53:48 -05:00
Qstick
984d0101bf Basic json linting for translations (structure, dupekeys, etc) 2020-11-21 23:13:39 -05:00
Qstick
f9242af246 Use Arch and Runtime when getting list of update changes 2020-11-21 23:12:38 -05:00
reloxx
0b5a40a2b7 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (853 of 853 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-11-18 20:49:05 +00:00
Qstick
0221df15e2 Added translation using Weblate (Portuguese (Brazil)) [skip ci] 2020-11-18 17:35:29 +00:00
Daniel Martin Gonzalez
c6294b71ae New: Add Spain to list of Certifications 2020-11-18 11:47:58 -05:00
Will Segatto
2fbd829b93 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (853 of 853 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-11-18 05:49:06 +00:00
Csaba
5ed4a386dd Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (853 of 853 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-18 05:49:05 +00:00
Qstick
f9733eea7a Fixed: Use audioChannels_Original if it exists in MI 2020-11-17 23:46:57 -05:00
Qstick
59f9ff7a22 Fixed: Tweak Edition Regex to prevent 'Special' false positives
Fixes #4932
2020-11-17 23:45:42 -05:00
Qstick
460c86911c Fixed: Scene Name not being stored properly during import if not linked to a download client item and filename is obfuscated
Fixes #5370
Fixes $5358
Fixes #5361
2020-11-17 22:22:31 -05:00
Qstick
a04f375eb1 Fixed: Files table not showing correct quality meets cutoff post edit
Fixes #4668
2020-11-17 22:04:56 -05:00
Qstick
7792c159b4 Movie Windows/Posix Disk Tests to correct fixtures
Fixes: #4678
2020-11-17 21:52:22 -05:00
Qstick
6beb8c8b05 New: Add Australia to list of Certifications
Fixes #5351
2020-11-17 21:19:04 -05:00
Qstick
6d0019ad00 New: Look for and use {tmdb} tag in folder name on import
Fixes #5213
2020-11-17 15:55:55 -05:00
Qstick
ef8ba37d0e Lock bot config [skip ci] 2020-11-17 13:57:55 -05:00
Taloth Saldono
5e1b197702 Give systemd a bit more time to restart sonarr after update
(cherry picked from commit 5fced70948c1e8d3d5e3c4747516507f87506697)
2020-11-16 17:36:14 -05:00
ta264
4d43c3eb2b Fixed: Import single file torrents with a folder from QBittorrent 2020-11-16 17:34:31 -05:00
memnos
4c1de51b52 Translated using Weblate (Italian) [skip ci]
Currently translated at 100.0% (851 of 851 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-11-16 16:32:29 +00:00
bakerboy448
bdb61e263e Fix: Update monitor options to be displayed in a more user friendly way 2020-11-16 11:32:24 -05:00
pannbiff
616ae471d1 Translated using Weblate (Swedish) [skip ci]
Currently translated at 54.8% (467 of 851 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-11-16 09:49:05 +00:00
Qstick
ce11d4c7bf Bump Mediainfo to 20.09 for Mac 2020-11-15 01:05:41 -05:00
Qstick
a7ba19ddd8 Build Win x86 zip and installer 2020-11-15 01:05:41 -05:00
Qstick
784913a85b Fixed: Prevent null when no candidate in ParsingService 2020-11-15 00:12:53 -05:00
Qstick
67ebf49b21 Revert "New: Change Add Movie Monitor Selection from Dropdown to Checkbox (#5319)"
This reverts commit 897bfa04a6.
2020-11-14 23:11:37 -05:00
Qstick
0e5f43e139 Fixed: Same movie different year gets imported incorrectly 2020-11-14 23:11:33 -05:00
Qstick
d5addfa12f Fixed: Disabled List items show up in Discovery
Fixes #5328
2020-11-14 22:34:05 -05:00
Taloth Saldono
96852c9f96 Protect against Qbittorrent edgecase if users add torrents manually with Keep top-level folder disabled
(cherry picked from commit 05820ac272ee976fcc0a7b17f3e9cc987cb0d230)
2020-11-14 18:35:02 -05:00
Qstick
7311a1e837 fixup! Fix Unit Tests 2020-11-14 01:52:28 -05:00
Qstick
a591227052 Fixed: Nested Folder in MovieFolder Naming not created automatically 2020-11-14 01:52:28 -05:00
bakerboy448
897bfa04a6 New: Change Add Movie Monitor Selection from Dropdown to Checkbox (#5319)
* New: Change Add Movie Monitor Selection from Dropdown to Checkbox

* Fix Monitored Value not storing (bool changes)

* address discord comments
2020-11-14 01:18:41 -05:00
ta264
3e795d290b Fixed: Get actual file names from QBittorrent API (#5226)
* Fixed: Get actual file names from QBittorrent API

Previously we were assuming that the output filename was the category
output dir + the torrent name.  This isn't true if the torrent has
been renamed or sanitized.
2020-11-14 00:27:07 -05:00
Mark McDowall
b7719662a7 Return max tooltip width
(cherry picked from commit fe0d8bb7da27e0f34b5db166ee54033f292b1006)
2020-11-13 21:12:49 -05:00
Taloth Saldono
f1b7f5b355 Bumped Sabnzbd default history request size from 30 to 60
(cherry picked from commit 8b2550cef0381a07c466044063c9d8c2be4d89c3)
2020-11-13 21:10:27 -05:00
Csaba
164a7f0f8c Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (851 of 851 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-13 22:49:04 +00:00
reloxx
cfa0e9aa19 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (851 of 851 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-11-13 22:49:04 +00:00
geogolem
d9ff8e0d4a Fixed: Clarify Status Filter, Add ConsideredAvailable, MinAvailability Filters (#4924) 2020-11-12 23:13:39 -05:00
Qstick
b888b044d6 Fixed: False Positives for RemotePath check with Deluge 2020-11-12 22:29:11 -05:00
Qstick
9be8d438e7 Tweak recommended wording [skip ci] 2020-11-12 21:47:04 -05:00
Qstick
642783d3de Add "Screenshot if UI change" to PR template [skip ci] 2020-11-12 21:31:38 -05:00
Edward Scroop
cf08f483b2 Update README.md (#5307) [skip ci]
As development of features for Radarr v2 has stopped, ensure that new contributors can begin developing Radarr v3 by changing reference to NZbdrone.
2020-11-12 21:28:54 -05:00
bakerboy448
f6c630ee9e Add Discover Recommended tooltip (#5318) 2020-11-12 21:22:38 -05:00
geogolem
f5a46b14ac Add NeutralLanguage to Radarr.csproj to appease VS 16.8 2020-11-12 21:18:10 -05:00
Qstick
3a8ca21a17 Add NeutralLanguage to NzbDrone.Common to appease VS 16.8 2020-11-12 20:50:52 -05:00
Qstick
70a9a68ed3 Bump to dotnet core 3.1.10 2020-11-11 23:26:07 -05:00
Qstick
dc96857e66 Fixed: Console App Icon 2020-11-11 22:13:54 -05:00
Qstick
bb5f5eeee6 Fixed: Correctly storing v0 version during import, allowing them to be upgraded to v1 later
Fixes #5305

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-11-11 21:37:45 -05:00
memnos
d7938b6282 Translated using Weblate (Italian) [skip ci]
Currently translated at 100.0% (848 of 848 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-11-12 01:49:04 +00:00
Qstick
c21e733d57 Fixed: Clarify List Clean options, Add warning on removeAndDelete selection 2020-11-10 23:35:20 -05:00
pannbiff
75866b135c Translated using Weblate (Swedish) [skip ci]
Currently translated at 52.3% (443 of 847 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-11-09 03:49:03 +00:00
kingii98
5aaf8dcf0e Translated using Weblate (Russian) [skip ci]
Currently translated at 8.3% (71 of 847 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2020-11-09 03:49:02 +00:00
Csaba
1dcff1b742 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (847 of 847 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-11-06 23:49:01 +00:00
Qstick
adedbc1bed Rename DiscordNotifier for less user confusion 2020-11-05 22:01:40 -05:00
Qstick
4fa1955008 Fixed: Handle Null in Discord Notification if no images 2020-11-05 22:01:40 -05:00
Mark McDowall
bab9b2c040 Fixed: Show TLS errors in UI when testing download clients 2020-11-05 22:01:40 -05:00
Qstick
216f9b37b2 Remove ParsingLibrary 2020-11-05 22:01:40 -05:00
Qstick
025f064ecf Fixed: RawHD quality detection
Fixes #5267
Fixes #5207
2020-11-05 22:01:40 -05:00
Qstick
b8df38e929 Change 'Ignore Deleted Movies' to 'Unmonitor Deleted Movies' for consistency 2020-11-05 22:01:40 -05:00
Qstick
72f0dadbea New: Show .net version in UI 2020-11-05 22:01:40 -05:00
Robin Dadswell
3e22658e27 New: Discord notification upgrade colour
(cherry picked from commit cfdaddd81ae66412766ff19805c78e8503205bbe)
2020-11-05 21:44:50 -05:00
Taloth Saldono
d00f3abbf0 Fixed: Dataloss when moving series folder to root folder with only different casing
Fixes #5190
Fixes #5184
2020-11-03 22:07:11 -05:00
Mark McDowall
c270a53eab Fixed: Telegram silent notifications
(cherry picked from commit 0b7aa19ac06600936f6c4cb18ea3474e8a96f1e2)
2020-11-03 21:44:24 -05:00
Robin Dadswell
b474961b65 updated OnDownload to use 'Success' Colour 2020-10-31 11:09:20 -04:00
Qstick
cfb44c7db7 Fixed: 576p Detection in MediaInfoAugment 2020-10-29 21:13:20 -04:00
Qstick
45011198e2 Improved Trakt list validation
Fixes #5262

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-29 20:50:35 -04:00
Qstick
a03d136aa4 Fixed: Cleanse account and passwd from Download Station URLs
Fixes #5266

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-29 20:45:09 -04:00
pannbiff
e2a45caada Translated using Weblate (Swedish) [skip ci]
Currently translated at 49.3% (418 of 847 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-10-27 07:48:58 +00:00
Mark McDowall
e3db49896b Fixed: Show feed URL if incorrect mime type is found
(cherry picked from commit fa2e70d571cc7658611a0c51b8603247a22e6a2e)
2020-10-25 15:40:29 -04:00
Will Segatto
920b7d8e29 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (847 of 847 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-10-22 02:48:56 +00:00
memnos
0df442caf2 Translated using Weblate (Italian) [skip ci]
Currently translated at 100.0% (847 of 847 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-10-22 02:48:55 +00:00
Qstick
d835358f75 Fixed: Clean DB dupes and add unique constrain 2020-10-20 09:07:54 -04:00
pannbiff
45d329423c Translated using Weblate (Swedish) [skip ci]
Currently translated at 46.1% (391 of 847 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-10-20 04:49:01 +00:00
Csaba
f177ebfb4a Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (847 of 847 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-10-20 04:48:59 +00:00
Qstick
6e135b1e36 Cleanup old changlog files, we use azure now 2020-10-18 22:16:06 -04:00
Qstick
31ca413fc7 Fixed: Language sort on Interactive Search page 2020-10-18 22:11:19 -04:00
Qstick
959d63b4eb Fixed: Filter by Peers in Interactive Search 2020-10-18 21:34:27 -04:00
foXaCe
09ed2ab889 Translated using Weblate (French) [skip ci]
Currently translated at 99.8% (846 of 847 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-10-18 03:48:54 +00:00
reloxx
1374a12d4c Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (847 of 847 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-10-18 03:48:53 +00:00
Qstick
76cabb4927 Use new multi-select component for indexer languages 2020-10-17 01:38:41 -04:00
nitsua
5b83d09d5e Remove some instances of moment that are not needed on the index to reduce the load 2020-10-17 01:04:50 -04:00
Daniel Martin Gonzalez
82eadcffaa New: Add Option to localize metadata written in .nfo if available (#5060)
* Add Option to localize metadata written in .nfo if available

* Fix Pull Request comments
2020-10-17 01:03:46 -04:00
Qstick
1ebb71db59 Fixed: Import Extra files from Subfolders
Fixes: #4646
2020-10-17 00:17:38 -04:00
Qstick
662b3894c2 Fixed: Make Notification trigger texts consistent
Fixes #5012
2020-10-17 00:06:23 -04:00
Qstick
a1c21af9b5 Fixed: (Windows) clean up extraneous files in build folder during installation
Fixes #5200
Fixes #5203

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-16 23:33:03 -04:00
Qstick
67fca87c44 Added PrivacyLevel option to FieldDefinition for later usage
Fixes #5107

Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2020-10-16 23:27:01 -04:00
Qstick
6ee2780370 Fixed some mediainfo subtitle codes
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-16 23:06:17 -04:00
Qstick
0086e2699e Protect against undefined SizeOnDisk
Fixes #5205

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-16 22:59:21 -04:00
Qstick
37c9701237 Fixed: Rerender Overviews on Overview option changes
Fixes #5150

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-16 22:55:28 -04:00
Qstick
6d452d8479 New: Bulk remove from Blacklist
Fixes #5194

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-16 22:45:23 -04:00
Qstick
e82f0c01d8 Re-saving edited providers will forcibly save them
Fixes #5192

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-16 22:28:19 -04:00
Qstick
ee456c3291 Fixed: MapCoversToLocal for tmdbid queries to all movies endpoint 2020-10-16 22:19:17 -04:00
kingii98
9986f0119b Translated using Weblate (Russian) [skip ci]
Currently translated at 6.7% (57 of 844 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2020-10-16 21:48:58 +00:00
Csaba
5d4da26195 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (844 of 844 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-10-16 21:48:58 +00:00
memnos
5ed448c930 Translated using Weblate (Italian) [skip ci]
Currently translated at 100.0% (844 of 844 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-10-16 21:48:58 +00:00
jpalenz77
9263e31b7b Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (844 of 844 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-10-16 21:48:57 +00:00
angrycuban13
516122c6f3 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (843 of 843 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-10-16 03:00:36 +00:00
foXaCe
256a50abab Translated using Weblate (French) [skip ci]
Currently translated at 100.0% (843 of 843 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-10-16 03:00:36 +00:00
EnorMOZ
315929bc5e Update "TagsHelpText" with similar language as sonarr (#5218)
* Update "TagsHelpText" with similar language as sonarr

* Use new translation key
2020-10-15 23:00:31 -04:00
Qstick
4a681601b2 Skip Screenshot on 2nd build attempt 2020-10-15 21:14:27 -04:00
Csaba
ab3b5bdf8b Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (842 of 842 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-10-15 14:38:36 +00:00
Qstick
e52288bd67 New: Edit RlsGroup, Flags, and Edition for Movie Files (#5183)
* New: Edit RlsGroup and Edition for Movie Files

* fixup! remove console log

* fixup! translation
2020-10-15 10:38:30 -04:00
servarr[bot]
f2f26d88b9 New: Differentiate between short term and long term (more than 6 hours) indexer failures (#5202)
* New: Differentiate between short term and long term (more than 6 hours) indexer failures

(cherry picked from commit 2adedb97da5ad31b65f0dc2eec5c263efe95731f)

* fixup! Mock Localization

Co-authored-by: Mark McDowall <mark@mcdowall.ca>
Co-authored-by: Qstick <qstick@gmail.com>
2020-10-15 07:20:02 -04:00
nitsua
27354507cb Fix issue with IMDb lists (some not all) not parsing properly causing an issue when trying to add them 2020-10-14 15:08:08 -04:00
Qstick
b7aa1df219 Fix Automation/cleanup build yml (#5211)
* Cleanup build yml

* fixup! bump chrome driver
2020-10-13 21:53:17 -04:00
ta264
2d7942d69c Fixed: Speed up RSS sync 2020-10-13 20:54:33 -04:00
ta264
0a8dd85856 Fixed: Speed up initial movie load when opening the UI 2020-10-13 20:54:33 -04:00
ta264
f917d0e9bc Add FileInfo utility functions to DiskProvider 2020-10-13 20:54:33 -04:00
kingii98
024e4df99c Translated using Weblate (Russian) [skip ci]
Currently translated at 6.1% (52 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2020-10-13 16:48:58 +00:00
Csaba
49fa402c55 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (840 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-10-13 16:48:57 +00:00
Qstick
02c95658c4 Windows installer improvements
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-11 22:43:08 -04:00
Mark McDowall
3bc4231640 New: Health events for Webhooks
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-11 22:40:18 -04:00
Mark McDowall
a9a0d47f9f Fixed: Copying passwords
(cherry picked from commit c871b3f9487b9bfeb3726d763a632a772b420a0a)
2020-10-11 20:36:46 -04:00
Florian
0dd05b2dac Translated using Weblate (French) [skip ci]
Currently translated at 100.0% (840 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-10-11 21:48:51 +00:00
Qstick
3986433884 Fixed: Default a Movie object with Empty Ratings 2020-10-11 01:26:53 -04:00
Mark McDowall
f637976530 Fixed: Parsing of URLs with double slashes in the path
(cherry picked from commit 0c7743e786749b333333d282412ff76fc10aba65)
2020-10-10 17:16:21 -04:00
Qstick
603d26bb5f Take Screenshot on Automation tests for build status notifications 2020-10-09 21:51:59 -04:00
Will Segatto
6b41ad7442 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (840 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-10-10 00:49:05 +00:00
hotio
4c049ac3d9 Translated using Weblate (Dutch) [skip ci]
Currently translated at 97.9% (823 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-10-10 00:49:04 +00:00
Csaba
84df3e8b5b Translated using Weblate (Hungarian) [skip ci]
Currently translated at 91.4% (768 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-10-10 00:49:03 +00:00
jpalenz77
0ff76e14bb Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (840 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-10-10 00:48:55 +00:00
Florian
5433c6364c Translated using Weblate (French) [skip ci]
Currently translated at 100.0% (840 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-10-10 00:48:50 +00:00
geogolem
038e3d5c44 update trayIcon with new Radarr Icon 2020-10-08 14:27:07 -04:00
Qstick
71b126024b Remove unused mac startup script 2020-10-07 23:07:47 -04:00
Qstick
76565d4ab5 Fixed: Old Icon being used on Console App 2020-10-07 23:06:43 -04:00
ta264
28c15bc425 Log out SQL trace on error
Fixes #4910

Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2020-10-07 22:55:54 -04:00
Qstick
aeda4cba32 Fixed: Render CustomFormats under profile option for Large Screens 2020-10-07 22:01:58 -04:00
Qstick
a826c1dc25 New: MultiSelect input control for provider settings
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2020-10-07 21:27:17 -04:00
Csaba
00022fd206 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 32.3% (272 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-10-08 00:48:53 +00:00
Will Segatto
0647663f46 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (840 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-10-07 05:48:57 +00:00
Csaba
b83bfb045b Translated using Weblate (Hungarian) [skip ci]
Currently translated at 25.1% (211 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-10-07 05:48:57 +00:00
memnos
cfbac482e5 Translated using Weblate (Italian) [skip ci]
Currently translated at 100.0% (840 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-10-07 05:48:53 +00:00
foXaCe
b43b35a295 Translated using Weblate (French) [skip ci]
Currently translated at 100.0% (840 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-10-07 05:48:50 +00:00
reloxx
e75d52de0e Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (840 of 840 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-10-07 05:48:49 +00:00
nitsua
f850e75d4e Fix issue with push missing the URL base 2020-10-06 11:05:43 -04:00
nitsua
6c9e4994d8 Fix broken translations on index 2020-10-06 09:35:08 -04:00
Qstick
708a2e31d5 Improve load speeds by being more efficient with config language 2020-10-06 07:48:58 -04:00
Qstick
37c1b5b28c New: Add Bulgarian Language
Fixes #4111
2020-10-06 00:33:33 -04:00
Qstick
e28bea14b3 New: Add Thai Language 2020-10-06 00:33:33 -04:00
Qstick
2823099237 New: Add Hindi and Romanian Languages
Fixes #3597
2020-10-06 00:33:33 -04:00
Qstick
53eeee8b91 New: Allow Selection Original Movie Languge in Profile 2020-10-06 00:33:33 -04:00
nitsua
e880eb0e00 More translations 2020-10-06 00:29:45 -04:00
Qstick
561f84adff Added translation using Weblate (Thai) [skip ci] 2020-10-06 04:09:34 +00:00
Qstick
4fc6a14d1b Added translation using Weblate (Bulgarian) [skip ci] 2020-10-06 04:09:24 +00:00
foXaCe
b8d5a0b6a2 Translated using Weblate (French) [skip ci]
Currently translated at 99.5% (822 of 826 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-10-05 08:48:49 +00:00
Mark McDowall
73b0a461d3 Fix tooltip max width on larger screens
(cherry picked from commit f4f2a6f5fc14244f9acf8186cbacda7f9c1e0481)
2020-10-05 00:14:28 -04:00
Qstick
d86402efb1 Fixed: formatTimeSpan shows incorrect when over 1 month 2020-10-04 23:38:10 -04:00
Qstick
1c892d7357 Fixed: Sorting of Queue time left 2020-10-04 23:37:39 -04:00
Qstick
f7e21ec2a4 Fixed: Tooltip jumping around
Fixes: #5136
Fixes: #4966
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-04 23:34:27 -04:00
Qstick
1d0771c9a4 New: Add size to movie files in Webhook payload
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-04 22:31:49 -04:00
Qstick
cc384d9297 Remove unused popper 2 package 2020-10-04 22:29:21 -04:00
Qstick
7898100d95 Revert "Pull Sonarr commit 'Import lists in settings overview' (#5138)"
This reverts commit 4b279e87cf.
2020-10-04 22:28:46 -04:00
servarr[bot]
4b279e87cf Pull Sonarr commit 'Import lists in settings overview' (#5138)
* Import lists in settings overview

(cherry picked from commit f45b27f507953724e9469ce16c4e555985312150)

* fixup! Sonarr wording

Co-authored-by: Mark McDowall <mark@mcdowall.ca>
Co-authored-by: Qstick <qstick@gmail.com>
2020-10-04 22:26:14 -04:00
Qstick
3d5570dfd9 Update frontend packages
Fixes: #5115
Fixes: #5116
Fixes: #5117
Fixes: #5118
Fixes: #5119
Fixes: #5120
Fixes: #5121
Fixes: #5122
Fixes: #5123
Fixes: #5124
Fixes: #5125
Fixes: #5126
Fixes: #5127
Fixes: #5128
Fixes: #5129
Fixes: #5130
Fixes: #5131
Fixes: #5132
Fixes: #5133
Fixes: #5134
Fixes: #5139
Fixes: #5140
2020-10-04 21:49:16 -04:00
Qstick
269462e0a2 Update stalebot exempt labels [skip ci] 2020-10-04 02:45:56 -04:00
bakerboy448
5799b3dc47 Fixed: Parser Detecting DTS-Audio formats and Blu-Ray as groups (#5090)
* Fix DTS-XXX Audio & Blu-ray false Group Positives

* Add test cases

* fixup! spaces

Co-authored-by: Qstick <qstick@gmail.com>
2020-10-04 01:59:31 -04:00
Qstick
dfbbb7d9bd Fixup Filelist test to use new url 2020-10-04 01:57:37 -04:00
Qstick
6faa484d4e Change Discord invite to point to Welcome page 2020-10-04 01:20:18 -04:00
Qstick
86363d5bf1 Fixed: Change Filelist default URL 2020-10-04 01:20:18 -04:00
Qstick
30c51ec4f3 Fixed: Handle obfuscated files using abc.xyz pattern
Fixes #5105

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-04 01:20:17 -04:00
Qstick
a66b2cf416 New: Add more information to Webhook payload
Fixes #5104

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-04 01:20:17 -04:00
Qstick
37197150be Some cleanup of things marked for removal in v3
Fixes #5102

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-10-04 01:20:17 -04:00
Qstick
c8bbd21615 Cleanup TaskManager.cs 2020-10-04 01:20:17 -04:00
Florian
fdf2d1c9b3 Translated using Weblate (French) [skip ci]
Currently translated at 99.5% (822 of 826 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-10-04 04:48:54 +00:00
foXaCe
eb4cd9633a Translated using Weblate (French) [skip ci]
Currently translated at 99.5% (822 of 826 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-10-04 04:48:54 +00:00
reloxx
3fa17bf7f6 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (826 of 826 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-10-04 04:48:48 +00:00
Qstick
22e9dff76b Don't check for updates every 30 minutes on nightly 2020-10-03 23:49:06 -04:00
Qstick
7d31eb1f55 Fixed: Test for empty strings using isNullOrEmpty 2020-10-03 21:58:31 -04:00
Qstick
4ec71538b9 Fixed: Avoid zero-length array memory allocations 2020-10-03 21:58:31 -04:00
Qstick
295b975046 Fixed: Do not use Count/LongCount when Any can be used 2020-10-03 21:58:31 -04:00
Qstick
0198c7a3b1 Fixed: Use Length/Count property instead of Enumerable.Count method 2020-10-03 21:58:31 -04:00
Qstick
088ffc34df Fixed: Use Append(Char) for single character Stringbuilder additions 2020-10-03 21:58:31 -04:00
bakerboy448
1740ad337c Clarify Branches/ Release Channels [skip ci] (#5100) 2020-10-03 09:26:37 -04:00
nitsua
a6758e4bf4 Ongoing updates to api docs (#5082) [skip ci] 2020-10-03 09:25:35 -04:00
memnos
2161f08140 Translated using Weblate (Italian) [skip ci]
Currently translated at 100.0% (826 of 826 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-10-03 06:48:53 +00:00
foXaCe
1a92372506 Translated using Weblate (French) [skip ci]
Currently translated at 70.8% (585 of 826 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-10-03 06:48:52 +00:00
bakerboy448
5bd23be133 Update v3 binaries links [skip ci] (#5099)
* Update README.md

* Update Nightly Binary Links

* Fix table formatting
2020-10-01 23:39:15 -04:00
nitsua
eca816db86 Fix movie title stretching the add window
Fixes: #5096
2020-10-01 18:12:19 -04:00
bakerboy448
c4f19a813d Minor Branch Updates/Clarifcation [Skip Ci] 2020-10-01 11:20:13 -04:00
bakerboy448
24cee7e4fe Correct Contributing (don't have forums or IRC) [skip ci] 2020-10-01 11:15:11 -04:00
Qstick
22531294be Remove duplicate translation key 2020-09-30 21:44:08 -04:00
Qstick
464d92bb70 Calendar status fixes
Fixes #4747

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-09-30 21:43:52 -04:00
Qstick
8ee16b81ec Fixed: Indexer being disabled due to download client rejecting it
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-09-30 21:25:12 -04:00
Qstick
a7a1d48e0d Fixed: Log path when import fails for movie import
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-09-30 21:24:18 -04:00
Qstick
a070279993 New: Allow naming with original Movie title (in original language) 2020-09-30 16:10:56 -04:00
Qstick
95918c4053 Fixed: Speed up Unmapped Folder fetch for large number of root folders 2020-09-30 07:41:56 -04:00
Will Segatto
646b86f8c9 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (826 of 826 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-09-29 05:59:11 +00:00
jpalenz77
28835a1857 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (826 of 826 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-29 05:59:10 +00:00
nitsua
6b22481a00 Fix the sorting on the agenda to respect using all dates instead of only cinema date to sort 2020-09-28 23:55:50 -04:00
Qstick
aef8a8fd04 Fixed: Fetch blacklist by Movie instead of all
Fixes #5066
2020-09-28 23:39:15 -04:00
Qstick
a1e69c3c2b Lodash replacements: take 2 2020-09-28 22:02:02 -04:00
hotio
995d257d3d Fix docker tag (#5081) [skip ci] 2020-09-28 21:51:26 -04:00
nitsua
cf804f7dac Fix issue with arrow keys switching movie when using them inside a textbox (or any element really) 2020-09-28 17:28:09 +01:00
ta264
081fe64bff Revert "Convert some instances (filter, find, pick) to native from lodash"
This reverts commit d8a0aac9c3.
2020-09-28 06:26:23 +01:00
ta264
9075fdc1c1 Revert "Fix find error on movie details"
This reverts commit 6bdd24e62d.
2020-09-28 06:26:13 +01:00
foXaCe
5db1faad0b Translated using Weblate (French) [skip ci]
Currently translated at 62.5% (517 of 826 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-09-28 06:00:42 +00:00
reloxx
57f3805763 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (826 of 826 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-09-28 06:00:38 +00:00
nitsua
6bdd24e62d Fix find error on movie details 2020-09-28 06:51:03 +01:00
Qstick
d5ec2914e2 New: Support existing 'keyart' in Kodi Metadata
Fixes #5059
2020-09-27 22:44:12 -04:00
Qstick
d8a0aac9c3 Convert some instances (filter, find, pick) to native from lodash 2020-09-27 22:33:21 -04:00
nitsua
987ed357d5 Add a link to the github issue if it is added to the change notes 2020-09-27 22:14:08 -04:00
Qstick
9044976393 Update StaleBot config exempt labels [skip ci] 2020-09-27 09:30:48 -04:00
nitsua
b53def3da5 Fixed: Issue with arrow navigation from details working outside of the details page (#5071) 2020-09-26 23:36:36 -04:00
Qstick
2ecb988c6a Remove aphrodite links from Readme [skip ci] 2020-09-26 22:19:17 -04:00
Qstick
41cf722ab5 Change over aphrodite references 2020-09-26 22:03:14 -04:00
LSL1337
dbaccc5f91 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 2.6% (22 of 826 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2020-09-27 01:30:56 +00:00
nitsua
9864d555f2 Fixed: Grouping of movies on the same date in the calendar agenda view (#5068) 2020-09-26 12:18:35 -04:00
foXaCe
b4abfaa695 Translated using Weblate (French) [skip ci]
Currently translated at 59.6% (487 of 817 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-09-26 14:49:51 +00:00
nitsua
7f814a3cb9 New: Add support for left/right arrows on the movie details to navigate through movies
New: Add support for ctrl+home and ctrl+end to jump to the top and bottom of the movie index
New: Add redirect to previous movie instead of index when deleting one
2020-09-26 10:49:47 -04:00
nitsua
870a39278c Handle ratelimit api response for newznab caps endpoint on certain newznab indexers that have caps behind the apikey 2020-09-26 10:45:35 -04:00
Qstick
7e5d5fe29e New: Avoid cache on IMDb user lists 2020-09-25 22:05:39 -04:00
Will Segatto
6d4543f1df Translated using Weblate (Portuguese) [skip ci]
Currently translated at 99.8% (816 of 817 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-09-25 22:05:42 +00:00
jpalenz77
98ebc8ff97 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (817 of 817 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-25 22:05:42 +00:00
reloxx
b8743bd73e Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (817 of 817 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-09-25 22:05:41 +00:00
Qstick
4ea9ded0de New: Add icons for search results to indicate if it has been previously grabbed, failed or is in the blacklist. 2020-09-25 10:56:46 -04:00
Taloth Saldono
2ee77aa0a4 Fixed: Ignore files in subfolders during a manual import 2020-09-24 20:54:56 -04:00
Will Segatto
c7c97e508d Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-09-24 23:59:10 +00:00
jpalenz77
283c26222b Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-24 23:59:09 +00:00
Qstick
fb0fa53304 Fixed: Code block for Release name on import Discord notification 2020-09-23 22:04:27 -04:00
Qstick
ca27a80b15 New: Show year with manual import Movie selection 2020-09-23 21:32:56 -04:00
Will Segatto
ed289ddbdd Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-09-24 00:59:06 +00:00
memnos
5a36980996 Translated using Weblate (Italian) [skip ci]
Currently translated at 99.7% (814 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-09-24 00:59:06 +00:00
Will Segatto
de28266071 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-09-23 02:59:06 +00:00
angrycuban13
599263f998 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-23 02:59:05 +00:00
jpalenz77
fd711a9bf3 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-23 02:59:05 +00:00
Qstick
ad5a90f034 New: Customizable Discord Notifications (Thanks @hotio) 2020-09-22 16:23:27 -04:00
Qstick
2ad1cfec42 Bump ImageSharp to stable package 1.0.1 [Common] 2020-09-22 16:23:01 -04:00
nitsua
6fdf06a882 Fix issue with the disk space label percents overlapping on small screens. 2020-09-21 22:40:19 -04:00
jpalenz77
4e0f027a91 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-21 20:59:05 +00:00
Qstick
e56a784e4c Null Check firstQueueItem 2020-09-20 23:02:18 -04:00
Qstick
1898114d8c Remove empty space 2020-09-20 20:01:23 -04:00
Qstick
d6d740a0d2 Replace for loop with find for QueueStatus 2020-09-20 19:47:23 -04:00
Will Segatto
9472af8f83 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-09-20 18:59:04 +00:00
Qstick
01f0f9d3bb Fixed: Translate Movie Info in Discover View 2020-09-19 23:01:02 -04:00
Qstick
9e79e91d39 Fixed: Populate OriginalTitle in DB for ListMovies 2020-09-19 22:54:43 -04:00
Qstick
db05f0464a Fixed: Return existing item props on lookup with IMDBId or TMDBId
Fixes #5037
2020-09-19 22:41:07 -04:00
nitsua
ff3fd0bb1e Fix: Address issue with incorrect dates showing on the calendar agenda and add icons for which date type it is 2020-09-19 14:09:20 -04:00
Mark McDowall
0100819ae4 Fixed: Removing torrents from Vuze
(cherry picked from commit d0c0720578abcc02d9abca24f60d73d32491cd2f)
2020-09-19 11:02:42 -04:00
Mark McDowall
dd3218588f Fixed: Spelling in Edit List modal
(cherry picked from commit 068d9eef8d8ac9eb8c43ef6283e8a6426b767cb1)
2020-09-19 11:00:54 -04:00
hotio
e086b760c1 Fix docker org/user names 2020-09-19 11:00:03 -04:00
Will Segatto
f883f96325 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-09-19 14:59:09 +00:00
angrycuban13
5abffcab54 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-19 14:59:04 +00:00
Will Segatto
116a3b2de1 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 82.1% (670 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-09-17 15:59:09 +00:00
memnos
9521b6883d Translated using Weblate (Italian) [skip ci]
Currently translated at 99.7% (814 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-09-17 15:59:07 +00:00
angrycuban13
affebb3552 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-17 15:59:04 +00:00
foXaCe
65b0fcffbe Translated using Weblate (French) [skip ci]
Currently translated at 59.5% (486 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-09-17 15:59:04 +00:00
Qstick
4c0a906bfa Update Settings.js 2020-09-16 12:14:17 -04:00
Will Segatto
7e0815b3b4 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 68.6% (560 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-09-15 01:59:07 +00:00
hotio
73cc67f71e Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-09-15 01:59:07 +00:00
memnos
f089d11001 Translated using Weblate (Italian) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-09-15 01:59:06 +00:00
jpalenz77
7791b4038e Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-15 01:59:03 +00:00
reloxx
77b2945e84 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (816 of 816 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-09-15 01:59:02 +00:00
nitsua
02845c72d3 Add tooltip to path & movie title on the movie index table view 2020-09-12 23:38:09 -04:00
hotio
587e6b570c Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (808 of 808 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-09-12 06:25:42 +00:00
memnos
7d9f625080 Translated using Weblate (Italian) [skip ci]
Currently translated at 100.0% (808 of 808 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-09-12 06:25:42 +00:00
jpalenz77
480722df71 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (808 of 808 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-12 06:25:42 +00:00
foXaCe
07596a6f8d Translated using Weblate (French) [skip ci]
Currently translated at 58.0% (469 of 808 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-09-12 06:25:42 +00:00
reloxx
3fbf591eb9 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (808 of 808 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-09-12 06:25:42 +00:00
nitsua
9a46d5165c New: Add support for prioritizing indexers (#5000) 2020-09-12 02:25:32 -04:00
nitsua
4fafdcabb7 Fix: Addressed issue with status color not showing on Movie > Details (only purple was working) 2020-09-11 22:59:57 -04:00
Qstick
69071768de Fixed: Import movie spinning forever when error is returned
Fixes #4993

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-09-11 22:44:45 -04:00
Qstick
4be83a3367 Mark completed imports based on history as imported to remove from queue
Fixes #4994
2020-09-11 22:27:29 -04:00
Qstick
7ddaca06a6 Fixed: HDBits Categories, Codecs, Mediums Select Requiring Numbers 2020-09-11 22:23:46 -04:00
angrycuban13
54dc22a763 Translated using Weblate (Spanish) [skip ci]
Currently translated at 99.8% (807 of 808 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-11 08:35:25 +00:00
Qstick
29bc38423b Fixed: Correct Tooltips for Clone Format and Export
Fixes #4991
2020-09-10 22:25:34 -04:00
Qstick
da720fdf4c Fixed: Tooltips not working for Icon Buttons, Revert title pullout in Link.js 2020-09-10 22:15:19 -04:00
Qstick
2f311452da Fixed: Deleting CF Specification deletes all 2020-09-10 21:25:16 -04:00
Will Segatto
d615007ff1 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 66.5% (535 of 804 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-09-11 01:07:24 +00:00
memnos
d9ed97f63a Translated using Weblate (Italian) [skip ci]
Currently translated at 100.0% (804 of 804 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-09-11 01:07:24 +00:00
Qstick
ecf6dccb35 New: Option to not prefer repacks/propers (for use with Custom Formats)
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-09-10 21:07:14 -04:00
Mark McDowall
d31b1e1e9b New: Don't forcibly retest indexers/download clients/connections on save if previously enabled
(cherry picked from commit b2b1600ebe7f022a3248ea12b69553e2d51a3a7c)
2020-09-10 19:47:41 -04:00
nitsua
7019c8587b Fix an issue with the language on status labels for inCinemas and added translation to the movieStatus variable (#4986)
Fix issue where status text was not consistent across all 3 index views and the details
2020-09-10 11:04:52 -04:00
nitsua
df96203914 Update API Docs (#4985) [skip ci] 2020-09-10 00:28:35 -04:00
memnos
bee8da5c8a Translated using Weblate (Italian) [skip ci]
Currently translated at 83.3% (670 of 804 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-09-10 04:03:55 +00:00
Jorman
c42b1d6265 Translated using Weblate (Italian) [skip ci]
Currently translated at 83.3% (670 of 804 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-09-10 04:03:55 +00:00
foXaCe
5aa45dbc85 Translated using Weblate (French) [skip ci]
Currently translated at 57.0% (459 of 804 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-09-10 04:03:55 +00:00
reloxx
5d64417b7b Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (804 of 804 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-09-10 04:03:55 +00:00
Austin Best
c51b08e26c Fixed: Address issues with the status being wrong color on the index and movie details (not tracking anything queued/downloading)
Fixed: Updated fetchQueueDetails() to not pass movie ids since the store doesn't use them anyways
New: Added text to index poster progress bar showing status

#4525
#4526
#4982
2020-09-10 00:03:44 -04:00
Qstick
a2e8d1d5d6 Additional Logging for rTorrent 2020-09-10 00:02:45 -04:00
nitsua
ea37bc2cb7 New: Add support for Discord Notifier connect type (#4611) 2020-09-09 23:46:24 -04:00
Qstick
bba2b01980 Don't parse subtitle language as language
Fixes #4972
2020-09-09 21:58:37 -04:00
Qstick
b43732b343 Fixed: Validate TMDb ListId is a valid integer 2020-09-09 21:54:16 -04:00
Qstick
764d456d49 Fixed: Handle UHDRemux as Remux instead of Webdl 2020-09-09 21:54:16 -04:00
Qstick
9a2cee3104 New: Handle missingFiles status from qBit [common] 2020-09-09 21:54:16 -04:00
Qstick
4311048c08 Update LocalizationServiceFixture.cs 2020-09-08 23:25:55 -04:00
Qstick
5b3a09716b Fixed: Invalid Translate Key call for CouldNotFindResults 2020-09-08 22:55:50 -04:00
Qstick
ecbdd58f42 New: Separate UI Language into two settings for Movie Info and Main UI 2020-09-08 21:38:05 -04:00
Jorman
2014ff6610 Translated using Weblate (Italian) [skip ci]
Currently translated at 47.6% (379 of 796 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-09-08 18:17:28 +00:00
ta264
c3a89c46f5 New: Import and export custom formats 2020-09-08 19:17:21 +01:00
ta264
e014826b17 New TEXT_AREA input type 2020-09-08 19:17:21 +01:00
ta264
f8c3947bad ClipboardButton improvements
Allow overriding CSS, make it work in modals
2020-09-08 19:17:21 +01:00
Mark McDowall
8598cfcac9 Fixed: Replace : with _ when getting output path from Transmission
(cherry picked from commit 0f792f9eb9517a4165a54d7c4551f4f68822d18e)
2020-09-08 08:51:00 -04:00
hotio
18982cd054 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (796 of 796 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-09-08 08:59:06 +00:00
angrycuban13
03715d9b6a Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (796 of 796 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-08 08:59:05 +00:00
elChapoSing
fea479e7e7 Translated using Weblate (French) [skip ci]
Currently translated at 57.6% (459 of 796 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-09-08 08:59:04 +00:00
reloxx
acd4e9b8aa Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (796 of 796 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-09-08 08:59:04 +00:00
Qstick
2a84c4737b Fixed: NullRef on RootFolder add from ModelEvent Broadcast 2020-09-07 21:39:29 -04:00
Qstick
bc4bb772ec Add Translations reminder to PR template 2020-09-07 11:08:31 -04:00
rg9400
6179540d27 add more audio codecs for Trakt connection
Just updated on production at Trakt's end. They are still discussing adding a new format for TV
2020-09-07 10:12:56 -04:00
nitsua
f7e208afe1 Fix issue where options button gets into a state of disabled with no way to re-enable it unless you add a list with movies in it 2020-09-07 10:10:41 -04:00
nitsua
bc83e902cc Adjust the width of runtime & added since they are to wide 2020-09-07 10:09:17 -04:00
nitsua
2b7af5d99d Fix a type in the translation of UI 2020-09-06 21:58:28 -04:00
jpalenz77
1971a9dd05 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (796 of 796 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-06 22:32:25 +00:00
angrycuban13
328c3de7c1 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (796 of 796 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-06 22:32:23 +00:00
nitsua
7c8ac30077 New: Add label to disk usage progress bar (#4958) [common] 2020-09-06 17:22:58 -04:00
nitsua
f286f99bb6 Translation update, updating inline div tags and placeHolder attributes 2020-09-06 13:50:55 -04:00
Qstick
914d8f9937 Translated using Weblate (Italian) [skip ci]
Currently translated at 50.6% (365 of 720 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-09-06 13:26:15 +00:00
Qstick
b787f3b2d1 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 71.9% (518 of 720 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-09-06 07:05:44 +00:00
Qstick
7ec043afde Fixed: Don't Show two loading indicators on Movie Detail Tabs 2020-09-06 02:51:04 -04:00
Qstick
c3223ea8e7 Fixed: Links and already added icons overflowing on add movie search results
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-09-06 02:51:04 -04:00
Qstick
87bf6b5977 Fixed: Manual Import adding empty rows after selecting movie
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-09-06 02:51:04 -04:00
Qstick
7ddb8ecc37 Add Test for Non-Parsable Search 2020-09-06 02:51:04 -04:00
Qstick
9b1dc2d21d New: Handle BDMux Releases in Quality Parser
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-09-06 02:51:04 -04:00
Taloth Saldono
ff3e53a71b Fixed: Failing file copy when running in docker on synology with btrfs 2020-09-06 02:51:04 -04:00
Taloth Saldono
35532b6789 Fixed: Refreshing Plex Server series in high volume systems 2020-09-06 02:51:04 -04:00
Taloth Saldono
026c34c3ba Remove stacktrace if hardlink resulted in EXDEV. 2020-09-06 02:51:04 -04:00
Taloth Saldono
7b60612ef3 Fixed: Performance of symbolic link detection and infinite recursion 2020-09-06 02:51:04 -04:00
Taloth Saldono
38855967d6 New: Fast copy using reflink on btrfs volumes 2020-09-06 02:51:04 -04:00
Taloth Saldono
67d2765d0c Fixed: Removed hardlink-based transactional file transfer logic (instead relying on explicit copy+delete for cifs) 2020-09-06 02:51:04 -04:00
Qstick
c1b6917afe Moved Windows-only Permission function to Radarr.Windows
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2020-09-06 02:51:04 -04:00
Qstick
95a30b50fa Fixed: Generating Kodi movie file metadata files when scanning folder
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2020-09-06 02:51:04 -04:00
Qstick
17b93bcc57 Fixed: Representation of episode start time when not starting at the full hour in am/pm notation
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2020-09-06 02:51:04 -04:00
Qstick
16321377fc Fixed: Filter direct excluded subfolders of the selected directory during manual import
Fixes #4734

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-09-06 02:51:04 -04:00
hotio
e6368c3095 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (720 of 720 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-09-06 06:33:26 +00:00
reloxx
a4869db050 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (720 of 720 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-09-06 06:33:25 +00:00
Qstick
bdecc48e34 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 47.3% (341 of 720 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-09-05 14:33:42 +00:00
jpalenz77
916c10197e Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (720 of 720 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-05 14:33:41 +00:00
reloxx
3fe06ab3ac Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (720 of 720 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-09-05 14:33:38 +00:00
hotio
4f52a3e10f Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (720 of 720 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-09-05 14:31:37 +00:00
Qstick
b466530e08 Remove Dotnet Framework Version Checks [common] 2020-09-05 01:13:17 -04:00
Qstick
f1727b0960 Bump lodash 4.17.20 2020-09-05 00:52:13 -04:00
Qstick
579a86a708 Don't Camel Case Localization Endpoint 2020-09-05 00:38:22 -04:00
geogolem
b6f2afb212 Fixed: IsAvailable not Right for minAvailability = InCinemas (#4921)
* if minimumAvailability is set to InCinemas
InCinemas has no value but physical/digital release dates
are known and passed, movie would be marked as Not Available
When it should be Missing.

This resolves https://github.com/Radarr/Radarr/issues/4920

remove comment

* add the tests
2020-09-05 00:16:31 -04:00
nitsua
3a7b48825d Another translation update 2020-09-04 23:04:00 -04:00
Qstick
0d7bf98efb Translated using Weblate (Italian) [skip ci]
Currently translated at 41.2% (270 of 654 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-09-05 02:20:17 +00:00
Florian
ded8c9ea3e Translated using Weblate (French) [skip ci]
Currently translated at 68.6% (449 of 654 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-09-05 02:20:16 +00:00
elChapoSing
aeb7d79101 Translated using Weblate (French) [skip ci]
Currently translated at 68.6% (449 of 654 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-09-05 02:20:16 +00:00
Qstick
e45f0ad5fc Fixed: Don't Fail if User Tries Adding Existing Movie from Discovery 2020-09-04 22:09:26 -04:00
Qstick
87bf010c67 Fixed: Discovery overview description not hidden on mobile 2020-09-04 21:37:23 -04:00
bakerboy448
50142eea64 Readme Updates Part 1 (#4949) [skip ci]
* Update README.md

Add: Note that v0.2 is critical break/fix only
Fix: Clearify Docker Table
Remove: Feathub
Comment: Feature "* Scanning PreDB to know when a new release is available" Probably needs to be replaced
Add: Feature -  Importing movies from various online sources... "Trakt"
Remove: Planned Features
Change: Feature Request Link

* Update README.md
2020-09-04 18:04:28 -04:00
hotio
c26d25fdfb Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (654 of 654 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-09-04 10:45:47 +00:00
Qstick
bd85f78994 Translated using Weblate (Greek) [skip ci]
Currently translated at 12.2% (80 of 654 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/el/
2020-09-04 10:45:46 +00:00
Qstick
1ddb593ddd Translated using Weblate (Italian) [skip ci]
Currently translated at 33.6% (220 of 654 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-09-04 10:45:46 +00:00
jpalenz77
21899e7a43 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (654 of 654 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-04 10:45:45 +00:00
elChapoSing
04ea182abb Translated using Weblate (French) [skip ci]
Currently translated at 67.8% (444 of 654 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-09-04 10:45:45 +00:00
geogolem
e033ce1eff New: Add OnDelete Notification to TraktConnection
to remove movies from Trakt Collection when they are removed from Radarr

Add OnDelete Notification to TraktConnection to remove movies from Trakt Collection when they are removed from Radarr

skip the deleteHandler if the delete Event was triggered for reason: Upgrade

change migration from 180 to 182 since 180 and 181 are already in plan
to be used

address comments regarding helpText for OnDelete
and move check for OnUpgrade deletion reason into trakt connection OnDelete handler

reuse TraktCollectMoviesResource for OnDelete
trakt api should just ignore the other properties anyway

add WithDefaultValue to migration

add unit test case for onDelete to

fix unit testcase for onDelete
2020-09-04 00:19:06 -04:00
Qstick
261e598c99 Translated using Weblate (Spanish) [skip ci]
Currently translated at 99.5% (651 of 654 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-09-04 03:55:29 +00:00
Qstick
38c7c60ad7 Translated using Weblate (French) [skip ci]
Currently translated at 55.9% (366 of 654 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-09-04 03:55:23 +00:00
nitsua
3548433a10 New: Add runtime format option in Settings > UI so users can choose between a mins view and h/m view 2020-09-03 22:51:33 -04:00
Qstick
361ffe353d New: Browse Lists from Discover Movies Page 2020-09-03 22:50:56 -04:00
faxity
54bcf9eed3 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (653 of 653 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-09-03 07:57:16 +00:00
hotio
f6364fec1c Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (653 of 653 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-09-03 07:57:07 +00:00
ta264
7f8ebf41d6 Fixed: Error fetching paged records from API without a sort key
(cherry picked from commit 53f1857e6349fc4c674dbaec50b0dda681f073ae)
2020-09-02 16:40:17 +01:00
Mark McDowall
a9ee3d5bc5 Fixed: Importing completed downloads from NZBGet with post processing script failing
Fixes #2919
2020-09-02 06:35:53 +01:00
Mark McDowall
1dfe6eb6ed Fixed: Importing of completed download when not a child of the download client output path 2020-09-02 06:35:53 +01:00
Mark McDowall
92a0305740 Another path test fix 2020-09-02 06:35:53 +01:00
Mark McDowall
e610b74745 Fixed: Getting parent of UNC paths 2020-09-02 06:35:53 +01:00
reloxx
3f0903d8ab Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (653 of 653 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-09-01 21:02:39 +00:00
faxity
d474b487ec Translated using Weblate (Dutch) [skip ci]
Currently translated at 77.3% (505 of 653 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-09-01 14:25:31 +00:00
hotio
cdf1501cbd Translated using Weblate (Dutch) [skip ci]
Currently translated at 77.3% (505 of 653 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-09-01 14:25:31 +00:00
faxity
613f9a9cd8 Translated using Weblate (Dutch) [skip ci]
Currently translated at 69.0% (451 of 653 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-09-01 12:04:39 +00:00
hotio
eee75f630e Translated using Weblate (Dutch) [skip ci]
Currently translated at 69.0% (451 of 653 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-09-01 12:04:35 +00:00
TRaSH
cae169f4b8 Translated using Weblate (Dutch) [skip ci]
Currently translated at 69.0% (451 of 653 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-09-01 12:04:33 +00:00
angrycuban13
4f3948d36a Translated using Weblate (Spanish) [skip ci]
Currently translated at 64.0% (418 of 653 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-31 07:11:49 +00:00
Qstick
df18be2a4d Fixed: Don't fail if ldd doesn't exist 2020-08-30 14:37:55 -04:00
nitsua
be38ca4728 More Language string migration 2020-08-30 03:12:39 -04:00
nitsua
84e769b14e Fix: Remove title requirement in the API for adding movies when the TMDb is provided since that will over-ride the given title. 2020-08-29 17:06:16 -04:00
Qstick
0800029713 Fixed: Quality Profile group order no longer used when ordering results 2020-08-29 01:12:43 -04:00
Qstick
ab7bb610a6 Fixed: Fix Instances where DB MovieFileId Relationship is Screwy 2020-08-28 19:16:57 -04:00
Erick Ferreira
9a0f6cf931 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (323 of 323 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-08-28 15:33:23 +00:00
Qstick
658f6922c2 Fixed: Use Proxy for MediaCovers and Metadata (#4916)
[common]

Co-authored-by: Soroush <soroush@falahati.net>
2020-08-26 23:01:34 -04:00
Taleoo
30fe718dcf Translated using Weblate (French) [skip ci]
Currently translated at 97.5% (315 of 323 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-08-26 18:35:31 +00:00
Qstick
5f8b953f6a Bump to FxCop 3.3.0 stable 2020-08-25 23:12:09 -04:00
nitsua
a28c5675ef Fix: Address issue when runtime is under 1 hour and it falls back to 12h.
New: Update time column on Movie > Index > Table to show hour minutes instead of only minutes
2020-08-25 00:22:12 -04:00
Qstick
df197d2e16 New: Movie Collection naming token 2020-08-24 20:57:45 -04:00
Qstick
4d193b2279 Fixed: Fix Movies, Lists with Invalid Profile on Migration 2020-08-23 21:51:15 -04:00
Qstick
eff03a7d2c Fixed: Don't blow up if a tmdbid not in DB is asked for on AllMovie Endpoint 2020-08-23 21:10:25 -04:00
Qstick
2cbeefba6e Update Donate Link in MoreInfo.js 2020-08-23 17:04:49 -04:00
jpalenz77
0d7b48d48a Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (323 of 323 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-23 17:33:21 +00:00
Erick Ferreira
70c057f20f Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (323 of 323 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2020-08-22 16:33:28 +00:00
jpalenz77
b342dc7ca0 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (323 of 323 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-22 16:33:24 +00:00
reloxx
d8ff3a62ea Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (323 of 323 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-08-22 16:33:24 +00:00
Qstick
363ff7df3c Remove Mono 5.8 from Build Tests [skip ci] 2020-08-22 00:50:57 -04:00
Qstick
fa3914c36a Switch Automation to Chrome for Test Speed 2020-08-22 00:47:07 -04:00
angrycuban13
aba9cedb78 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (323 of 323 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-21 08:42:40 +00:00
Qstick
197f064fd5 Cache Yarn on Azure 2020-08-20 23:11:13 -04:00
Qstick
acd167e3ff Disable stylecop for backend build on azure
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2020-08-20 23:11:13 -04:00
Qstick
60ff140e7f Change GeckDriver Package 2020-08-20 23:11:13 -04:00
ta264
fcea6d23b0 Add omnisharp.json to enable analyzers and editorconfig support 2020-08-20 23:11:13 -04:00
ta264
1250c3db92 Remove duplicate settings from root .editorconfig 2020-08-20 23:11:13 -04:00
Qstick
ee225d9d85 Remove Unused Usings 2020-08-20 23:11:13 -04:00
Qstick
ec752f8ab3 New: Ruleset to Editorconfig 2020-08-20 23:11:13 -04:00
hotio
a8e31896e3 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (323 of 323 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-08-21 00:39:36 +00:00
angrycuban13
1daa1f9daf Translated using Weblate (Spanish) [skip ci]
Currently translated at 99.6% (322 of 323 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-21 00:38:27 +00:00
jpalenz77
9d79a28655 Translated using Weblate (Spanish) [skip ci]
Currently translated at 99.6% (322 of 323 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-21 00:38:26 +00:00
Qstick
665a5c89c2 Try to fix windows automation tests 2020-08-20 20:11:56 -04:00
angrycuban13
f7bebbaaeb Translated using Weblate (Spanish) [skip ci]
Currently translated at 86.0% (278 of 323 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-20 07:48:15 +00:00
Qstick
04b84e4931 More Translations 2020-08-19 23:32:49 -04:00
Qstick
e4d033d0a7 New: Reprocess Language in Manual Import after Movie Selection 2020-08-19 22:35:30 -04:00
Qstick
9c85482b9c Bump to dotnet 3.1.7 2020-08-19 22:26:09 -04:00
Qstick
ac7f6f8868 fixup! New: Allow Radarr List Sync by Source Tag 2020-08-19 21:37:15 -04:00
Qstick
56184905a9 New: Allow Radarr List Sync by Source Tag
Fixes #4826
2020-08-19 21:37:15 -04:00
ta264
5a1b82e195 Disable single instance check for integration tests
Causes a SIGABRT on mono 6.10 and 6.12 - double free or corruption
2020-08-19 19:01:24 +01:00
ta264
d92895381c Print log file on fail 2020-08-19 19:01:24 +01:00
ta264
f9f243a814 Actually fix musl integration tests 2020-08-19 19:01:24 +01:00
ta264
3c5e56919f Run integration tests in parallel 2020-08-19 19:01:24 +01:00
ta264
05e8de2b0a Revert "Cache integration test DB to avoid repeated migrations"
This reverts commit 456169b8d2.
2020-08-19 19:01:24 +01:00
Dtaggart
e2c0d83f20 New: Added silent notification option to telegram 2020-08-18 21:31:18 -04:00
ta264
c96f29f1e8 Swap from dotnet vstest to dotnet test
(cherry picked from commit c40f87ce2f3fc03acb9a3d73498e7861f5750b4b)
2020-08-18 11:38:47 +01:00
Qstick
c8de61df19 Fixed: Don't parse .ts files as Telesync
Fixes #4891
2020-08-17 22:51:10 -04:00
Qstick
7c5b2a299d Fixed: Allow fallback lanugages in tokens
Fixes #4889
2020-08-17 22:40:42 -04:00
Qstick
76804dfefb Fixed: Format Errors from AudioChannel formatter
Fixes RADARR-8
2020-08-16 23:43:21 -04:00
ta264
ed2568187e Fixed: Shared serializer in ProviderRepository
Some caching happens in the serializer settings so best not to
recreate each time

(cherry picked from commit d2dcc45492)
2020-08-16 21:11:29 -04:00
Mark McDowall
f1bb8eeb8e Fixed: Long relative path when selecting episodes in Manual Import hiding buttons
(cherry picked from commit a206a5714e393b32e9a921f8d2413518f17d2b00)
2020-08-16 14:46:07 -04:00
Qstick
547c044dc6 Fix namespace for StringConverter 2020-08-16 01:19:23 -04:00
Qstick
0ef9d28a73 Fixed: Possible nullRef when setting IndexerFlags in TorznabParser 2020-08-16 01:14:47 -04:00
Qstick
ed76709b7f Simplify FindDownloadId to remove inaccessable code paths 2020-08-16 01:09:33 -04:00
nitsua
154092b921 Fix issue with the table stretching on the Movie > Details > Search when the Title is extremely long 2020-08-16 00:49:33 -04:00
Qstick
28177eb042 New: Use release quality source if not in downloaded file and resolution matches
Co-Authored-By: taloth <taloth@users.noreply.github.com>
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-08-16 00:49:16 -04:00
Qstick
a6d509c871 Fixed: Possible Null Ref in Old API 2020-08-16 00:33:49 -04:00
Qstick
69f4f1c168 Fxed: Manual Import Movie filter error due to Fuse Worker updates 2020-08-15 22:38:19 -04:00
Qstick
79a96bb43f Lazy Loading fuse-worker and fixed some potential timing issues
Fixes #4765
Fixes #4766

Co-Authored-By: taloth <taloth@users.noreply.github.com>
2020-08-15 12:25:28 -04:00
Qstick
39a1dbf1d1 Used ReflectionOnly and/or public types where possible to avoid loading related assemblies unnecessarily
Fixes #4763

Co-Authored-By: taloth <taloth@users.noreply.github.com>
2020-08-15 12:25:28 -04:00
Qstick
71ad2ec794 jsconfig for a bit of autocompletion and intellisense
Fixes #4762

Co-Authored-By: taloth <taloth@users.noreply.github.com>
2020-08-15 12:25:28 -04:00
Qstick
77036ac3ef Fixed: Posters not always showing when searching for movie
Fixes #4729
Fixes #4704
2020-08-15 12:25:28 -04:00
Taloth Saldono
863252d7e9 Allow inline markdown in the changelog for linking to wiki
(cherry picked from commit c73649b19b76b9032f9b5340590dbae783ae259f)
2020-08-12 23:10:40 -04:00
Qstick
00f631c623 New: Trakt connection for adding movies to collection 2020-08-12 23:06:03 -04:00
angrycuban13
431a3f6f8f Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-13 02:34:32 +00:00
Qstick
3aafc02687 Added update check early in startup if package requested
Fixes #4723
2020-08-12 22:28:57 -04:00
Qstick
c96ffafe50 Bump minimum Mono version to 5.18
Fixes #4722
2020-08-12 22:07:23 -04:00
nitsua
487546d6f3 Cherry pick from PR 4784 to disable autofocus on table scroller 2020-08-11 23:29:00 -04:00
Qstick
9f925a5dbd Additional logging when we have to callback on language parse 2020-08-11 20:38:21 -04:00
necrobear
d6a51f875c Translated using Weblate (Danish) [skip ci]
Currently translated at 41.9% (114 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/da/
2020-08-11 03:10:07 +00:00
jpalenz77
2575e7d96a Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-11 03:10:07 +00:00
angrycuban13
50b3a83cda Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-11 03:10:07 +00:00
reloxx
0f33c9b3bd Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-08-11 03:10:07 +00:00
Addison Babcock
814283cfc3 Fix typo in English localization. 2020-08-10 23:09:57 -04:00
angrycuban13
23e1341ef3 Translated using Weblate (Spanish) [skip ci]
Currently translated at 99.6% (271 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-10 02:11:11 +00:00
jpalenz77
5413c9357c Translated using Weblate (Spanish) [skip ci]
Currently translated at 99.6% (271 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-10 02:11:10 +00:00
Qstick
eb299bfb1f Fixed: Don't show other movies files in details UI on import/refresh 2020-08-09 21:55:06 -04:00
angrycuban13
d3697c0339 Translated using Weblate (Spanish) [skip ci]
Currently translated at 98.5% (268 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-09 19:42:20 +00:00
angrycuban13
9201b8e329 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-09 18:08:00 +00:00
jpalenz77
f34ff4515a Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-09 18:08:00 +00:00
Qstick
5eeb42c3f6 New: Tooltip for Links on AddNew 2020-08-08 22:09:56 -04:00
Qstick
2d121e9857 Fixed: Entire row Link on Calendar Agenda Page 2020-08-08 22:09:56 -04:00
Qstick
3d25b99f63 Fixed: Unreleased color not showing in Calendar Agenda view 2020-08-08 22:09:56 -04:00
Qstick
30956edf52 Fixed: Don't Show Year in Discovery Overview if 0 2020-08-08 22:09:56 -04:00
Qstick
c940a03847 Fixed: Minor CSS Tweaks to Logo and Actions Buttons 2020-08-08 22:09:56 -04:00
Mark McDowall
21bc18dd2a Fixed: Long paths overflowing in movie history 2020-08-08 22:08:32 -04:00
nameproof
52da43aac4 Translated using Weblate (Swedish) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-08-09 01:59:00 +00:00
foXaCe
29ea7aab9d Translated using Weblate (French) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-08-09 01:59:00 +00:00
nitsua
236cdc9c2a Fix issue where updating a movie during a refresh would reset the saved changes
#4807
2020-08-08 16:02:45 -04:00
reloxx
4726d9daad Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-08-07 06:33:14 +00:00
Qstick
74c144b9c6 Added translation using Weblate (Hindi) 2020-08-06 21:48:00 +00:00
Mark McDowall
ff52b15154 Don't process queue item without details
(cherry picked from commit dffdd3377e198ca1ce511ec2752eb53c18c92cb3)

# Conflicts:
#	frontend/src/Store/Selectors/createQueueItemSelector.js
2020-08-06 17:40:42 -04:00
GigiPompieru
18607c8b7b Translated using Weblate (Romanian) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ro/
2020-08-06 12:34:06 +00:00
Qstick
d41eed2e79 Fixed: Migration 170 setting incorrect trakt auth values 2020-08-05 16:54:14 -04:00
GigiPompieru
7f1761bec5 Translated using Weblate (Romanian) [skip ci]
Currently translated at 68.7% (187 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ro/
2020-08-05 17:33:17 +00:00
Micky
cff8dd5856 Translated using Weblate (Turkish) [skip ci]
Currently translated at 63.9% (174 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/tr/
2020-08-05 17:33:17 +00:00
nameproof
17cbeb7cab Translated using Weblate (Swedish) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-08-05 17:33:16 +00:00
hotio
f952b7188d Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-08-05 17:33:16 +00:00
jpalenz77
16cd7dd836 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-05 17:33:15 +00:00
foXaCe
1412125dfd Translated using Weblate (French) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-08-05 17:33:14 +00:00
reloxx
6455117dbb Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (272 of 272 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-08-05 17:33:14 +00:00
Qstick
a29de48e64 Fixed: Block Video Extras from Overriding Movie File 2020-08-05 02:21:16 -04:00
Qstick
43d6b404f5 Fixed: Don't automatic import if year mismatch
Fixes #3006
2020-08-05 02:21:16 -04:00
Qstick
e3fb000226 Fixed: Use Translations in Search Criteria Map
Fixes #4794
2020-08-05 02:21:16 -04:00
nitsua
9cb3ff238b New: Added new custom filters for Not in Last/Next for date filters (#4816)
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-08-04 08:11:32 -04:00
Qstick
97980fe139 Fixed: LogLevel not persisting on v0.2 > 3 migration 2020-08-03 16:55:26 -04:00
Qstick
ec15885680 Fixed: Deleting empty folders on upgrade
Fixes #4787
Fixes SENTRY RADARR-1F
2020-08-03 02:51:10 -04:00
Qstick
695297435e Fix SystemTime Fixture Failure 2020-08-03 02:38:49 -04:00
Qstick
1a9d7c3c28 Fixed: IOE when multiple movies have same ExtraFile relative paths
Fixes RADARR-15
2020-08-03 02:09:57 -04:00
GigiPompieru
94ec28ac1e Translated using Weblate (Romanian) [skip ci]
Currently translated at 64.9% (176 of 271 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ro/
2020-08-03 05:29:44 +00:00
nameproof
a4155e0416 Translated using Weblate (Swedish) [skip ci]
Currently translated at 100.0% (271 of 271 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-08-03 05:29:44 +00:00
jpalenz77
0884361df2 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (271 of 271 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-03 05:29:44 +00:00
Florian
09bea395ac Translated using Weblate (French) [skip ci]
Currently translated at 100.0% (271 of 271 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-08-03 05:29:44 +00:00
foXaCe
25d4704e6d Translated using Weblate (French) [skip ci]
Currently translated at 100.0% (271 of 271 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-08-03 05:29:44 +00:00
reloxx
f0d8c7c187 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (271 of 271 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-08-03 05:29:44 +00:00
Mark McDowall
3766e0eba9 New: Show health warning if system time is off expected time
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-08-03 01:26:30 -04:00
nitsua
f39824cb9c Add changes related to lint & importing movies
Fixes #4768
2020-08-02 20:10:12 -04:00
reloxx
ef80314219 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (271 of 271 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-08-02 21:56:56 +00:00
nitsua
e232fa2c9c Fix issue with headers on movie index table view not being aligned
Fixes: #4800
2020-08-02 12:08:07 -04:00
Qstick
41fc244bda Don't even call update if list cleaning disabled 2020-08-02 02:03:47 -04:00
Jorgen1040
0bb5dfc3d2 Update default Jackett torznab link to api v2.0 2020-08-02 01:50:16 -04:00
nitsua
67b4182f4d Fixed: OriginalTitle in the API using the Title
New: Change tooltip (title) on movie details to original title
2020-08-02 01:48:32 -04:00
Qstick
27844d9f5c Fixed: Don't create empty movie folder if delete empty folders is enabled
Fixes #4782
2020-08-02 01:47:18 -04:00
Qstick
9b052101ab Fix broken build due to NetImportSearchService tests 2020-08-02 01:06:35 -04:00
Qstick
b2b0efe4ed Fixed: Single Item Exclude Broken on Discovery View 2020-08-02 01:02:36 -04:00
Qstick
b25e42c456 New: Redo Notification Triggers UI (From Lidarr) 2020-08-02 00:43:42 -04:00
Qstick
5c7e28a280 Fixed: Typo in Mapping Message 2020-08-02 00:31:42 -04:00
Qstick
bd9a93eceb Fixed: Don't blow up on batch list add if validation failure 2020-08-01 23:32:23 -04:00
Qstick
df75027e3c Bypass older mpeg-4 encoders 2020-08-01 23:12:06 -04:00
nitsua
c950006db5 Fixed: Spacing for the external links icon and width when search showing (#4797) 2020-08-01 18:23:54 -04:00
Juan
fabf9ba0e8 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (271 of 271 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-01 10:42:30 +00:00
nitsua
c07b370569 Fixed: Issue with link/tags icon to drop a line on movie details mobile (#4667)
#4523
2020-08-01 02:47:34 -04:00
Qstick
ff7e929387 Fixed: Return correct language for French and Portuguese
Fixes #4612
2020-08-01 01:07:39 -04:00
Mark McDowall
da1210c6a6 Fixed: Show more information in UI when testing SAB fails in some cases 2020-08-01 00:36:06 -04:00
Qstick
2a1ebe54b3 Fixed: Quality Sorting in Manual Import
Fixes #4713

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-08-01 00:09:53 -04:00
Qstick
65b8be16dd Fixed: Details for episode history flashing on mobile devices
Fixes #4699

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-07-31 23:50:57 -04:00
Qstick
84c79924b7 New: Improve Chinese language detection
Fixes #4697

Co-Authored-By: taloth <taloth@users.noreply.github.com>
2020-07-31 23:48:46 -04:00
Qstick
62d2c8e1f3 Fixed: Update deleted movie health after refreshing movies
Fixes #4694

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-07-31 23:39:53 -04:00
Qstick
e6c92c05ec Improved some log messages
Fixes #4693

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-07-31 23:39:53 -04:00
GigiPompieru
bb02b9d83a Translated using Weblate (Romanian) [skip ci]
Currently translated at 44.1% (94 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ro/
2020-08-01 03:07:01 +00:00
Micky
7cf7baf637 Translated using Weblate (Turkish) [skip ci]
Currently translated at 81.6% (174 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/tr/
2020-08-01 03:07:01 +00:00
Marketos Damigos
f8908936d3 Translated using Weblate (Greek) [skip ci]
Currently translated at 31.9% (68 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/el/
2020-08-01 03:07:01 +00:00
Juan
c3307570cc Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-08-01 03:07:01 +00:00
reloxx
011a80b237 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-08-01 03:07:01 +00:00
Qstick
82b546999a More Frontend Translation 2020-07-31 23:05:21 -04:00
Taloth Saldono
71492d4c6f Fixed: Added glusterfs to known network drive filesystems so it shows up in System 2020-07-31 22:06:27 +01:00
Qstick
0f6fca8340 Fixed: Recognize jpeg and jpg extra images as Kodi metadata 2020-07-30 23:24:35 -04:00
Qstick
8ddaf348f1 Fixed: Pass AdvancedSettings to Metadata Fields 2020-07-30 23:05:58 -04:00
GigiPompieru
55e6605ed8 Translated using Weblate (Romanian) [skip ci]
Currently translated at 23.0% (49 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ro/
2020-07-30 21:13:36 +00:00
Micky
d736635ae4 Translated using Weblate (Turkish) [skip ci]
Currently translated at 7.5% (16 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/tr/
2020-07-30 21:13:36 +00:00
Alessandro Berrone
a977c5148e Translated using Weblate (Italian) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2020-07-30 21:13:36 +00:00
Qstick
06d200f078 Update PushoverProxy.cs 2020-07-30 14:42:49 -04:00
ta264
079b7a7cb7 Added translation using Weblate (Romanian) 2020-07-30 06:26:27 +00:00
nitsua
c11928ffb8 New: Add + Search on Discovery Bulk Add (#4657)
#4614
2020-07-29 23:51:24 -04:00
Qstick
b7a617bc4e Cleanup yarn.lock file, bump loadash 4.17.19 2020-07-29 23:32:19 -04:00
nitsua
d2949b31ab Fixed: Issue with containers not matching posters on cast/crew tabs (#4656)
#4652
2020-07-29 22:01:58 -04:00
nitsua
c9324bc357 New: Added more external links to add movie (#4603) 2020-07-29 21:33:49 -04:00
nitsua
ca8f4acdaa Fixed: icon stacking on the movie details page (#4658)
#4653
2020-07-29 16:00:44 -04:00
Qstick
7eedb7fbec New: Reject Multi-Part Files from Import - Take 2 (#4644)
* New: Reject Multi-Part Files from Import - Take 2

* fixup! Windows is not the only OS :)
2020-07-28 14:47:56 -04:00
Qstick
71e715f954 Import Sorting Lint for Frontend (#4655) 2020-07-28 14:47:25 -04:00
ta264
b92414d657 Add libMonoPosixHelper for musl-arm64 2020-07-27 21:37:24 +01:00
ta264
85fda91604 Fix migration 178 to cope with leading/trailing slashes 2020-07-28 06:00:47 +01:00
ta264
7722c50603 New: Musl (alpine linux) compatibility 2020-07-27 18:17:47 +01:00
ta264
75eb4e8519 Move runtime copy into a separate target 2020-07-27 18:17:47 +01:00
ta264
84134eb6ce Restore support for mono 5.8 2020-07-27 18:17:47 +01:00
nitsua
765ca89810 New: Added external links to Discovery (#4598)
#2691
2020-07-27 10:30:49 -04:00
nitsua
9ce58be385 New: Added external links to movie index (#4600)
#403
2020-07-27 10:29:19 -04:00
Qstick
33cd699eac Lint issue in Tooltip.css 2020-07-26 23:23:55 -04:00
Qstick
c34a5c0c3d Fixed: Tooltip goes off screen for Mobile 2020-07-26 23:02:25 -04:00
angrycuban13
80ae55920b Translated using Weblate (Spanish) [skip ci]
Currently translated at 74.6% (159 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-07-26 09:20:08 +00:00
Austin Best
eb0be34924 Remove presets from nyaa since it changes so often 2020-07-26 01:43:03 -04:00
Qstick
483c2ae724 Add MovieId and Language Index to Movie Translations Table 2020-07-26 01:38:57 -04:00
Qstick
e2165eb51b New: Use Translations for Movie Mapping 2020-07-26 01:38:57 -04:00
Qstick
6d4be67e36 Rename CleanSeriesTitle to CleanMovieTitle 2020-07-26 01:38:57 -04:00
Qstick
b6c75e7e1b Fixed: Skip Flat Extra Files (Plex Naming) on Import
Fixes #4630
2020-07-26 01:38:57 -04:00
Qstick
c84a9d6612 Fixed: Include 'Sample' Directory in Ignored 2020-07-26 01:38:57 -04:00
Qstick
c04f26b7f1 Fixed: Radarr List not Logging List Status Failures 2020-07-26 01:36:50 -04:00
Qstick
16c912ffea Fixed: Don't Clean if any List Failures
Fixes #4648
2020-07-26 01:32:18 -04:00
Qstick
8871864bc0 Really fix Certification Token 2020-07-25 03:13:22 -04:00
Qstick
ea7c08d219 Fixed: Don't die in FileNameBuilder when Certification is Null 2020-07-25 02:32:29 -04:00
Qstick
86a75e2641 Update Swagger defs to OAPI3.0 2020-07-25 00:59:00 -04:00
Qstick
b077d1c6cf Push Swagger definitions to main repo [skip ci] 2020-07-25 00:39:10 -04:00
nameproof
3a07720587 Translated using Weblate (Swedish) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-07-24 04:24:51 +00:00
Qstick
fabf758230 Update en.json [skip ci] 2020-07-24 00:24:47 -04:00
Qstick
67ea64fa5e Fixed: Remux2160p Showing in HD720/1080 Default Profile 2020-07-24 00:16:42 -04:00
Qstick
7a19d0a88c Revert "New: Reject Files at Import if they are Multi-Part for now"
This reverts commit bed4604e62.
2020-07-23 22:36:36 -04:00
nameproof
e88b794ce0 Translated using Weblate (Swedish) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-07-24 01:10:41 +00:00
Qstick
0a414f37dc Use Radarr API change feed for changed movies (#4629)
* Use Radarr API change feed for changed movies

* Adjust StartTime for cache overlap
2020-07-23 20:06:42 -04:00
nameproof
5b38edfff9 Translated using Weblate (Swedish) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-07-24 00:04:46 +00:00
Marketos Damigos
09976c6afe Translated using Weblate (Greek) [skip ci]
Currently translated at 17.3% (37 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/el/
2020-07-24 00:04:46 +00:00
reloxx
bca7a38003 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-07-24 00:04:44 +00:00
ta264
1934a248f8 Drop mono 6.8 tests, add 6.12 2020-07-22 16:25:03 +01:00
Qstick
bed4604e62 New: Reject Files at Import if they are Multi-Part for now 2020-07-22 08:07:08 -04:00
nameproof
deabc3aa9a Translated using Weblate (Swedish) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-07-22 02:01:07 +00:00
sevospl
b5f173b018 Translated using Weblate (Polish) [skip ci]
Currently translated at 10.7% (23 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pl/
2020-07-22 02:01:03 +00:00
jpalenz77
69bd3f7d6d Translated using Weblate (Spanish) [skip ci]
Currently translated at 74.6% (159 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-07-22 02:01:01 +00:00
reloxx
947ec567ba Translated using Weblate (Spanish) [skip ci]
Currently translated at 74.6% (159 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-07-22 02:01:00 +00:00
foXaCe
12414e0bde Translated using Weblate (French) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-07-22 02:00:59 +00:00
reloxx
012cb66b45 Translated using Weblate (French) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-07-22 02:00:54 +00:00
reloxx
8ce223d01a Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-07-22 02:00:52 +00:00
Qstick
158a06adbf Add Test Fixture for Migration 154 2020-07-21 19:25:10 -04:00
Qstick
5765961c3a Fixed: Language Migration Assigning 'Any' to MovieFiles and History 2020-07-21 19:25:10 -04:00
ta264
539f495dbe Fixed: SqliteSchemaDumper with separate Primary Key clause 2020-07-20 20:35:17 -04:00
Qstick
23349c1063 Delete appveyor.yml 2020-07-20 19:24:20 -04:00
Austin Best
c2317e3567 Fix: Movie index legend not respecting color blind setting
#4616
2020-07-20 10:49:30 -04:00
ta264
26409c9d36 Try to fix service test 2020-07-19 16:17:33 -04:00
ta264
8799da55d3 New: Use new metadata server for imdb/stevenlu lists
Fixes #4306
2020-07-19 16:17:33 -04:00
hotio
fa60c28e9c Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 17:55:06 +00:00
hotio
175b3de373 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 17:53:03 +00:00
hotio
957c7a9266 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 17:46:13 +00:00
hotio
a4cd52d931 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 17:43:33 +00:00
hotio
687a055a61 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 17:31:06 +00:00
hotio
54299694ef Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 17:27:59 +00:00
TRaSH
bd06c756b7 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 16:56:14 +00:00
hotio
b69ed9fd11 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (213 of 213 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 16:56:14 +00:00
nameproof
8e1cb149fa Translated using Weblate (Swedish) [skip ci]
Currently translated at 56.1% (91 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-07-19 16:01:08 +00:00
Qstick
ef879c3a91 Test Weblate Hook 2020-07-19 12:00:57 -04:00
Qstick
9603f9fdb5 More Translations, Column Headings, Settings page 2020-07-19 11:42:03 -04:00
hotio
fc7091ef0c Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (162 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 13:31:19 +00:00
hotio
d37fde5f06 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (162 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 13:20:25 +00:00
hotio
575dbd18d9 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (162 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 12:53:32 +00:00
hotio
2a4f959a87 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (162 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 12:44:15 +00:00
hotio
b7222c2c55 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (162 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 12:35:09 +00:00
hotio
47404783c2 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (162 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 12:24:43 +00:00
nameproof
29f2543d57 Translated using Weblate (Swedish) [skip ci]
Currently translated at 46.2% (75 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-07-19 12:23:59 +00:00
jpalenz77
f8070f0a8e Translated using Weblate (Spanish) [skip ci]
Currently translated at 96.9% (157 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-07-19 12:23:59 +00:00
foXaCe
818b330ece Translated using Weblate (French) [skip ci]
Currently translated at 38.8% (63 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2020-07-19 12:23:59 +00:00
reloxx
4fa1fbe23c Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (162 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-07-19 12:23:59 +00:00
hotio
2919b282f6 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (162 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-19 12:23:59 +00:00
Qstick
2390ab98fa New: Reject File if Sample Check Indeterminate 2020-07-19 01:45:23 -04:00
Qstick
1c85bd96f8 Bump .net Core 3.1.6 2020-07-19 01:16:25 -04:00
Qstick
df8023bf02 Add Translation % Badge to README [skip ci] 2020-07-19 01:03:35 -04:00
nameproof
9109280ae2 Translated using Weblate (Swedish) [skip ci]
Currently translated at 3.0% (5 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2020-07-18 15:29:26 +00:00
jpalenz77
a59ea1f8d2 Translated using Weblate (Spanish) [skip ci]
Currently translated at 41.9% (68 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2020-07-18 15:29:26 +00:00
Gabriel Patzleiner
60ebafc940 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (162 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2020-07-18 15:29:26 +00:00
hotio
ac1956f5ad Translated using Weblate (Dutch) [skip ci]
Currently translated at 80.2% (130 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-18 15:29:26 +00:00
TRaSH
2242f2aba3 Translated using Weblate (Dutch) [skip ci]
Currently translated at 80.2% (130 of 162 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2020-07-18 15:29:26 +00:00
Qstick
8010030ca1 Simplify Readme [skip ci] 2020-07-18 01:50:02 -04:00
Qstick
4ac18dd023 Fixed: In some cases MinVotes is int from v0.2, causes migration failure 2020-07-18 00:09:08 -04:00
Qstick
c75362ecc8 Fixed: Donate Link references old URL 2020-07-17 23:37:46 -04:00
Weblate Admin
bf061f2a96 New: Add All Supported Languages 2020-07-17 23:37:46 -04:00
Qstick
c6367112c2 New: German Translation asset
Co-Authored-By: Gabriel Patzleiner <gabriel.patzleiner@gmail.com>
2020-07-17 23:37:46 -04:00
Qstick
074b49fa8c New: Translation support for UI Sidebar, Search Input, Base Menus 2020-07-17 23:37:46 -04:00
Qstick
bfc0361784 New: Translations support for Health Checks 2020-07-17 23:37:46 -04:00
Qstick
200c7487b9 New: English Base Translation asset 2020-07-17 23:37:46 -04:00
Qstick
ffff528ccb New: Localization framework 2020-07-17 23:37:46 -04:00
austinwbest
5389c86cde New: Added support for AHD User Release indexer flag (#4599)
- Added missing AHD_Internal to the decision maker to increase the score for it

Fixes #3770
2020-07-17 00:01:22 -04:00
Qstick
3a0aa51cbf Fixed: Nordic shuldn't translate to Norwegian Audio Language
Fixes #1352
2020-07-16 22:31:24 -04:00
Qstick
5eb7a83996 Don't fail test if there are no builds with changes shown 2020-07-16 21:48:55 -04:00
Qstick
bd5bb2a63c Fixed: QualitySelect defaults to Profile instead of NoChange on Editor 2020-07-15 23:27:35 -04:00
austinwbest
d7e0625be7 Fixed: Allow for unchecking empty folder options if both were checked
Fixes #4556
2020-07-14 23:26:29 -04:00
Qstick
a22c13bfa3 Remove Development.md [skip ci] 2020-07-13 15:31:50 -04:00
Qstick
3f39c8d1bd Fix Language Aggregation debug Log statement 2020-07-11 00:43:32 -04:00
Qstick
1dbb664ef6 New: Digital Releases on Calendar, Misc Other Calendar Fixes
Fixes #4582
2020-07-11 00:35:02 -04:00
Qstick
0b7067cf9c Fixed: Typo/unclear text in backup retention
Co-Authored-By: Ryan <simplyryan@users.noreply.github.com>
2020-07-10 23:10:25 -04:00
Qstick
d8dc35913d Fixed: Console Warning on MovieTitlesRow due to incorrect variable type 2020-07-10 23:08:11 -04:00
Qstick
027a388157 Fixed: Block deleteEmpty and createEmpty both on in UI 2020-07-10 23:01:08 -04:00
Qstick
a552389ee8 Fixed: Don't duplicate languages from MediaInfo 2020-07-10 22:02:55 -04:00
Qstick
f8f58c2eda Fixed: Refresh from IndexItem and MovieDetails doesn’t refresh single (#4584)
* Fixed: Refresh from MovieDetails doesn’t refresh single

* Fixed: Refresh from index Item should be sing

* Fixed: Detection on running refresh on MovieDetails
2020-07-10 07:39:52 -04:00
Qstick
113f5a9bfe Fixed: MovieFile Language Select Modal can show Unknown 2020-07-10 07:29:25 -04:00
Qstick
9d913899ca Fixed: Bad RootPath Added on List Add from Collection 2020-07-10 00:14:16 -04:00
Qstick
c9a9babdf3 Fixed: Styling of Collection name on MovieDetail view 2020-07-09 22:13:11 -04:00
Qstick
6be1ae0120 Fixed: Alignment of dates in Release Date Tooltip 2020-07-09 22:06:07 -04:00
Qstick
ac79c51196 New: Monitor Collections from Movie Details Page 2020-07-09 21:43:21 -04:00
Qstick
9bf50d4493 Fixed: Better NetImport Validation (Don't Allow Bad ProfileIds) 2020-07-09 21:26:57 -04:00
Qstick
aa6c8f493e New: Refresh Selected in Editor Mode 2020-07-09 13:59:59 -04:00
Qstick
135251ec31 More descriptive validation error for Movie Path 2020-07-09 10:41:17 -04:00
Qstick
c51fe81f41 Fixed: Don't show percentage text on Fat progress bar 2020-07-09 10:40:58 -04:00
Qstick
7d22696b1f New: Show Digital Release on Poster view when Sorted By 2020-07-08 09:30:24 -04:00
Qstick
d791f3f67f Fixed: Digital before Physical for normal release order 2020-07-08 09:28:42 -04:00
Qstick
74539d2025 Fixed: Search Failing due to Null Titles
Fixes #4578
2020-07-08 09:24:40 -04:00
Qstick
075f024cec Cleanup Solution Unused Usings 2020-07-08 01:24:06 -04:00
Qstick
3a50152b21 New: Digital Release Dates in UI 2020-07-08 01:24:06 -04:00
Qstick
88bda6bcb6 New: Use MediaInfo to Augment Languages 2020-07-08 01:24:06 -04:00
Qstick
10322a1867 New: Aphrodite Language Improvements 2020-07-08 01:24:06 -04:00
Qstick
965ed041ae Fixed: All Imports show as Multi due to duplicated langs 2020-07-06 09:15:46 -04:00
Qstick
2b5dc59a36 Fixed: All AHD x265 Encodes should be HDR
Fixes: #4386
2020-07-06 00:37:26 -04:00
Qstick
b82d636a8c Fixed: Don't make Editor call on initial page load 2020-07-04 22:31:13 -04:00
Qstick
5982731ef7 New: Search Selected from Movie Editor
Fixes #4130
2020-07-04 22:30:23 -04:00
Qstick
b97e6977fb New: Year column on Movie Index view 2020-07-04 21:59:54 -04:00
Qstick
98c4e63309 Fixed: Don’t Prioritize Flags over Protocol when Prefer Flags Enabled
Fixes #1814
2020-07-04 11:21:44 -04:00
Qstick
f37c7a9748 New: Swipe on Movie Details Page 2020-07-04 03:13:24 -04:00
Qstick
a08648272c Bump Yarn timeout to 2min 2020-07-03 23:54:02 -04:00
Qstick
0142c45210 Fixed: Multi Language lost on Import
Fixes #4313
2020-07-03 23:41:07 -04:00
Qstick
f073f0c35c Fixed Movie Details Tweaks
Fixes #4124
2020-07-03 23:09:48 -04:00
Qstick
b7cf6f49d0 Fixed: Move Links, Add Tags to Movie Detail
Fixes #4545
2020-07-03 22:04:58 -04:00
Qstick
347cd5982a New: Title and Year MovieIndex Filters 2020-07-03 21:24:38 -04:00
ta264
0a589c529f Fixed: Map dsm shared folder to full path in status (#797)
* Fixed: Map dsm shared folder to full path in status

* Add tests

* fix tests
2020-07-03 20:20:29 -04:00
Qstick
f29e7557dd Fixed: dispatchClearPendingChanges on some Settings Sections 2020-07-02 21:42:04 -04:00
Qstick
7f201c6677 Fixed: Mark "BAD" Nzbget Downloads as Failed
Fixes #3076
2020-07-02 21:10:47 -04:00
ta264
a77d43bd43 Fixed: size CF conditions are now exclusive on min, inclusive on max 2020-07-01 21:05:49 +01:00
Qstick
e18e074ee9 fixup FilterFiles mocks in various unit tests 2020-07-01 23:19:58 -04:00
Qstick
4f22d135d6 Fixed: Skip various Extras directories during scan
Fixes: #4487
2020-07-01 21:48:13 -04:00
Qstick
8f791853ad Fixed: Ignore location on UI header fuzzy search
Fixes #4558
2020-07-01 21:29:47 -04:00
ta264
e870fd5215 Fixed: Use originalFilePath in CF if scene name missing 2020-06-30 22:34:41 -04:00
Qstick
6706138fa0 New: Add Language Tests 2020-06-30 22:32:11 -04:00
Agneev Mukherjee
5ee2b10c2c Fixed: Updated icon for Apple Touch devices (#4518)
* Delete apple-touch-icon.png

* Updated icon
2020-06-29 23:05:58 -04:00
Qstick
ccb206aed1 New: Show Year in Header Search Results
Fixes: #4547
2020-06-29 22:57:22 -04:00
Qstick
cdd653bea9 Fixed: Show AltTitle or Tag if found by in search 2020-06-29 22:56:35 -04:00
Qstick
afada848c8 Change Missed http instances to https in HttpClientFixture 2020-06-29 22:01:32 -04:00
ta264
e09ca145d1 Fixed: False positive in remote path check with transmission
Correctly use the download directory when it's set
2020-06-29 10:24:52 +01:00
Qstick
a8deaf85c0 Fixed: Bootloop due to bad format args in AppFolderFactory
Fixes #4553
2020-06-28 23:08:59 -04:00
Qstick
f069801eba New: Ensure all unmapped folders are fetched when importing from a root folder
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>

#4548
2020-06-28 22:57:46 -04:00
Qstick
5edbe4200b fix lint issue in MetadataSettings.js 2020-06-28 11:55:49 -04:00
Qstick
5b6bef36f2 Refresh Yarn.lock, net core 3.1.5 2020-06-28 11:49:52 -04:00
Qstick
79c35fabfa New: RemotePathMapping HealthCheck
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2020-06-27 18:47:18 -04:00
Qstick
ee9d35e55f UI fixups from Lidarr 2020-06-27 18:13:31 -04:00
Qstick
c0bb1392e2 Fixed: Don't Show NoMovie on Cal if Movies are Loading
Fixes #4499
2020-06-25 21:53:34 -04:00
Qstick
8c84047a56 Update NuGet.config 2020-06-24 21:03:02 -04:00
Qstick
0e563db10b Fixed: Typo in exclude modal 2020-06-24 10:55:50 -04:00
Doug Krahmer
3a7b1741d9 Fixed: Skip sample check for DVD image files (iso, img, m2ts) (#4531)
* Add support for video files with non-lowercase extensions.

* Fix file scan ignoring DVD image files (iso, img, vob, m2ts)
Always allow DVD and Bluray file types without analysis, instead of detecting as 0 runtime.

* Use extensions to detect DVD image files instead of Quality enum
Add unit tests

Co-authored-by: Doug Krahmer <doug.git@remhark.com>
2020-06-23 21:41:16 -04:00
Qstick
8687dbda1d Fixed: Don't fail lookup if no Recommendations for a result 2020-06-21 22:14:31 -04:00
Qstick
c896833607 Fixed: Don't fail lookup on some IMDB Searches
Fixes #4533
2020-06-21 22:11:45 -04:00
Qstick
3a7c4b2cfe Cleanup Episode References 2020-06-21 21:44:05 -04:00
Qstick
a946d5886c Use HTTPS for httpbin tests 2020-06-21 15:13:38 -04:00
Qstick
dfba9e9b4d Fixed: Update Credits during refresh instead inserting old record 2020-06-21 14:54:38 -04:00
Qstick
28e6e4ed7b Update HttpClientFixture.cs 2020-06-20 16:59:05 -04:00
Qstick
22d0f9ffef New: Remove Anime Category for Newznab/Torznab 2020-06-20 15:55:31 -04:00
Qstick
7120a20984 Fixed: Don't hang on parsable, non-matched releases 2020-06-20 15:39:11 -04:00
Qstick
40b5702ca6 Fixed: Downloads with un-parsable releases stuck on import 2020-06-16 23:18:46 -04:00
Qstick
3c7f80612d Fixed: Sorting of queue by movie title when unknown items are included
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-06-16 22:14:40 -04:00
Qstick
2328b384e2 Fixed: Exception thrown when marking download as complete
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-06-16 22:13:03 -04:00
Qstick
566fa8b132 Fixed: Displayed root folder path truncated when adding a movie with a long title
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-06-16 22:00:49 -04:00
Qstick
8d57c5497a Update wiki links that reference Sonarr/Lidarr
Fixes #4516
2020-06-16 21:58:39 -04:00
Qstick
62b3ed5d48 Fixed: Speed Up List Fetch 2020-06-14 17:42:08 -04:00
Qstick
6802bfc736 Fixed: List UI Revamp 2020-06-14 17:42:08 -04:00
Qstick
2d59192a9e New: Movie Discovery/Recommendations Reworked 2020-06-14 17:42:08 -04:00
Taloth Saldono
3e3b2a7784 Revised webpack bundling and updated worker loading, turned inline worker on by default. 2020-06-10 21:50:14 -04:00
Qstick
9c3b4e3025 Fixed: Update Fuse to allow search over 32 without crash 2020-06-10 21:49:52 -04:00
Qstick
b9c59e5482 Fixed: Collection not stored for Movies 2020-06-10 14:06:24 -04:00
Qstick
1849ce4190 Additional logging when trying to complete tracked downloads
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-06-09 00:06:31 -04:00
Taloth Saldono
021e7b8163 Log contents on api errors during tests. 2020-06-08 23:53:17 -04:00
Arthur Bols
4b25ef6deb New: Removed chown and simplified chmod options for linux/osx
Closes #3760
Closes #3752
2020-06-08 23:44:57 -04:00
Qstick
30def1f53a New: Multiple Recipients on Email Notifications (Also CC, BCC) 2020-06-07 18:21:11 -04:00
Gabriel Patzleiner
57961df1df Fixed: #4394 parsing multi language from ReleaseGroup name 2020-06-07 16:48:25 -04:00
Gabriel Patzleiner
40b630ef10 Fixed: Updated GetSceneName. It will clean the ReleaseTitle now.
Added some SceneChecker tests
2020-06-07 16:48:25 -04:00
Gabriel Patzleiner
e59257f457 Fixed: correctly replacing SimpleReleaseTitle by A Movie. This resolves a lot of cases where a wrong language or edition has been parsed because it has parsed a part of the movie title (also applies to custom formats parsing) 2020-06-07 16:48:25 -04:00
Gabriel Patzleiner
a6c2b2e039 Fixed: some parsing issues (Add dot after "Dr" and fixed movies starting with an edition tag to match the edition (e.g. Uncut Gems (2019)) and added some tests for them 2020-06-07 16:48:25 -04:00
Gabriel Patzleiner
51de8f16fb New: Removed the whole lenient parsing and lenient mapping functionality 2020-06-07 16:48:25 -04:00
Gabriel Patzleiner
5f5391db47 Fixed: some releases not getting parsed correctly if lenient parsing is enabled.
It fixes releases that had some strings (especially editions) between the year and the language (The.Movie.2016.EXTENDED.German.720p...)
2020-06-07 16:48:25 -04:00
Gabriel Patzleiner
73eba0f95d Fixed: some Parser problems (Improved editions and German releases)
- Moved the ReportEditionRegex up because we use it in another 2 regexes (so it's not 3 times the same regex). Also added an optional bracket at the beginning.
- Added Recut to the edition regex
- The Regex for german and french tracker formats (ReportMovieTitleLenientRegexBefore) has been updated to support the same editions as the english versions, but the regex is only used if ParsingLeniency is set to Lenient. Should resolve a lot of cases for german releases where the movietitle wasn't parsed correctly before.
- Updated acronym method. Fixed wrong dots for "World War Z.", "World War Z. 2", but still supports "R.I.P.D.", "V.H.S. 2", "G.I. Joe" and "2 Tage in L.A."
- Added a lot of tests for this changes (there is a new test for german releases that works without lenient parsing, and another one that only works if lenient parsing is activated)
2020-06-07 16:48:25 -04:00
Qstick
1ef31e8094 Fixed: Visibility of NetImport Base Abstract Classes 2020-06-07 01:10:22 -04:00
Qstick
b1fd924188 New: List Status Checks/Backoffs 2020-06-07 01:10:22 -04:00
Qstick
d10e60587b fixup Sonarr stylecop issues 2020-06-07 01:01:01 -04:00
Taloth Saldono
88879e0db6 Fixed flaky test. 2020-06-07 00:46:18 -04:00
Taloth Saldono
2a9160f870 Added Plex url to cleanser 2020-06-07 00:45:26 -04:00
Qstick
64382e13a4 New: Allow Nested Movie Folders 2020-06-07 00:06:56 -04:00
dependabot[bot]
232682f109 Bump websocket-extensions from 0.1.3 to 0.1.4
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-06 16:56:17 -04:00
Qstick
d07dd33a9e New: Upgrade sqlite to 3.32.1 and system.data.sqlite to 1.0.113
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2020-06-06 16:43:58 -04:00
Qstick
7adb358d1c Fixed: Speed up mass deletes from Movie Editor (#4463) 2020-06-04 23:35:02 -04:00
Qstick
913037c45e Fixed: Unknown Movie Releases stuck in ImportPending 2020-06-04 20:03:28 -04:00
Qstick
b00326424f Fixed: Add TMDB Collection Id to Kodi NFO
#4442
2020-06-03 22:35:19 -04:00
Qstick
67ff8d39da Fixed: DVDR Parsing as DVDRip
Fixes #4486
2020-06-03 22:18:07 -04:00
Qstick
13f3d0292c Fixed: Trim whitespace on Remote Mapping Add
Fixes #4481
2020-06-03 21:38:46 -04:00
Taloth Saldono
9ca291ecaf Cleanse remote IP Address from trace log file 2020-06-03 20:43:47 -04:00
Qstick
1fcb927b3b Revert conditional map to prevent validation failures in add service 2020-06-01 22:10:34 -04:00
Qstick
be9b2d9ebb New: Speed up list sync processing 2020-05-31 22:54:04 -04:00
Qstick
97ff509025 Fixed: Recognize 8 Digit IMDB in parsing/rss lists
Fixes #3637
2020-05-31 22:19:18 -04:00
Qstick
c6c4eb0129 Add Test Fixture for Release Group Aggregation 2020-05-31 15:37:29 -04:00
Qstick
aefa4aa20b Fixed: Not removing seeded download if it was manual imported in some cases
Fixes #4474

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-05-30 15:04:26 -04:00
Mark McDowall
1209e3cefb Fix some styling issues in Quality Profile and Release Profiles 2020-05-30 15:01:55 -04:00
Mark McDowall
70a2da0f74 Fixed: Deleting row from middle of filter builder leading to error 2020-05-30 14:57:56 -04:00
Qstick
5de1f4563a Fixed: Manual Import Movie filter Input losing focus
Fixes #4297

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-05-30 14:46:51 -04:00
Qstick
8112ca5a43 Fixed: Use User Slug for User List Trakt Requests (Requires Re-Auth for affected users)
Fixes #4168
Fixes #4440
2020-05-29 23:35:08 -04:00
ta264
f2a34e5eda Swap to servarr trakt auth 2020-05-29 07:24:37 +01:00
Qstick
6ecffc9bed Fixed: Don't fail on duplicate Alt Titles (Temp) 2020-05-26 21:57:16 -04:00
Qstick
f0be9994b1 Fix parameter in logging statement from AddMovieService 2020-05-25 16:54:58 -04:00
geogolem
9ede227178 this is a follow-up to commit:
64e9e48217
2020-05-25 01:14:03 -04:00
Qstick
f59b391b28 Fixed: Don't name with "0" year if no year in db 2020-05-25 01:05:42 -04:00
Qstick
de2ebba363 Fixed: TitleThe Naming Token Handling (and tests) 2020-05-25 01:01:23 -04:00
Qstick
2a3d22038f Rename MovieFolderCreatedEvent Props 2020-05-25 00:53:41 -04:00
Mark McDowall
baa6972a62 Fixed: Rejections custom filter for Interactive Search (now Rejections Count) 2020-05-25 00:46:45 -04:00
Mark McDowall
7f1497974f Queue status/timeleft improvements
New: Queue status icon is purple when download is waiting to import or importing
Fixed: Timeleft on Queue won't show when completed
Closes #3743
2020-05-25 00:45:37 -04:00
Qstick
d01c0afa56 Fixed: Parse WEB at end of Release Title, Improve truncated names
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-05-25 00:42:03 -04:00
Qstick
874b1bd17c Fixed: Rotating mobile device when modal is open won't reset modal
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-05-25 00:22:33 -04:00
Qstick
f00f4d0c2c Fixed: Consider Released if we have a digital release
Fixes #4460
2020-05-25 00:14:41 -04:00
Qstick
b997bf21a5 New: Don't close manual import when clicking outside the modal
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-05-24 23:29:01 -04:00
Qstick
62de7b63bd Add Test Fixture for Alt Title Housekeeper 2020-05-24 22:37:05 -04:00
Qstick
3e5626f894 Fixed: Housekeeper for Credits (Left behind from deleted caused later add issues) 2020-05-24 22:36:40 -04:00
Qstick
ba6ba06d9b Fixed: Manual Imports for Unknown Movies
Fixes RADARR-Z
Fixes RADARR-1E
Fixes #4379
2020-05-24 22:35:22 -04:00
Qstick
1d6a7a1843 Revert "Async HttpClient and list lookup"
This reverts commit c8a2af867e.
2020-05-24 17:06:42 -04:00
Qstick
0479bb9cc3 Revert "Revert "Revert "Use async api calls for Refresh and NetImportSync"""
This reverts commit 0080e6b685.
2020-05-24 17:06:42 -04:00
Qstick
4951a97984 Revert "Force min 4 threads in pool"
This reverts commit 789e47dfff.
2020-05-24 17:06:42 -04:00
Qstick
70601faa4f Bump Core Packages for 3.1.4 2020-05-23 23:34:58 -04:00
Qstick
846b3324e5 Bump UI Packages 2020-05-23 23:22:35 -04:00
Qstick
5761ce640b Fixed: Actually make SimpleReleaseTitle work 2020-05-23 23:01:03 -04:00
ta264
789e47dfff Force min 4 threads in pool 2020-05-23 21:40:34 -04:00
Qstick
0080e6b685 Revert "Revert "Use async api calls for Refresh and NetImportSync""
This reverts commit 250cc09239.
2020-05-23 21:39:59 -04:00
Qstick
250cc09239 Revert "Use async api calls for Refresh and NetImportSync"
This reverts commit 2bdd806565.
2020-05-23 16:16:45 -04:00
Qstick
00b9118dbd Fixed: Pass no parameter instead of null parameter on Kodi Update
Fixes #4452
Fixes #4230
2020-05-22 18:02:21 -04:00
Qstick
d3d3117bf3 Cleanup TMDB Resources 2020-05-20 11:00:20 -04:00
Qstick
50f84101e0 Map properties returned from TMDB lists to avoid needing server re-mapping 2020-05-20 11:00:20 -04:00
ta264
2bdd806565 Use async api calls for Refresh and NetImportSync 2020-05-20 11:00:20 -04:00
ta264
4a5012f98e Fix net import sync - title won't exist until movie mapped 2020-05-20 11:00:20 -04:00
ta264
c8a2af867e Async HttpClient and list lookup 2020-05-20 11:00:20 -04:00
Qstick
c64c2d9f27 New: Use RadarrApi For MovieInfo 2020-05-20 11:00:20 -04:00
Qstick
9bdaea4a1b Fixed: Tag details list movies in alphabetical order
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-05-19 22:08:29 -04:00
Taloth Saldono
e8e852100c Fixed recursion issue when emptying recycle bin 2020-05-19 22:02:55 -04:00
Taloth Saldono
83679214b3 Fixed: Added .org to website url filtering in parser 2020-05-19 21:57:19 -04:00
Qstick
10074ae994 Fixed: Use v3 API for Lists to prevent needing pagination
Fixes #4441
2020-05-18 21:14:52 -04:00
Qstick
78e83488b9 Update bug template [skip ci] 2020-05-18 20:25:34 -04:00
ta264
e52005fa35 New: Warn if UI won't update due to SignalR errors 2020-05-18 18:06:18 +01:00
ta264
6463befc79 New: HealthCheck to warn if running legacy mono version 2020-05-15 16:48:23 +01:00
ta264
d03a6486d3 Fixed: NET Core not deleting source when moving across drives
This reverts commit 10fc0b071f.  Use the
mono fix from 43a35c8447 in NET Core also
2020-05-15 10:43:28 -04:00
ta264
5c9b85972d Fixed: SQL error searching for movie by name 2020-05-15 10:41:47 -04:00
ta264
32a6c9fe2a Revert "Revert "Fixed: Rename more than 999 movies in one go""
This reverts commit c0b80696bc.
2020-05-15 10:41:47 -04:00
Qstick
ebc72bfba9 New: AV1 Video Codec Formatting
fixes RADARR-K
fixes RADARR-R
fixes RADARR-6C
2020-05-14 23:03:03 -04:00
Qstick
c0b80696bc Revert "Fixed: Rename more than 999 movies in one go"
This reverts commit 2c6b13dd11.
2020-05-14 21:14:18 -04:00
ta264
78c7372a0d Fixed: Ensure SSL cert exists before saving config
Trap missing certificate exception to avoid bootloop

Fixes #4403
2020-05-14 23:07:58 +01:00
ta264
6ad3653c04 Trap Kestrel Address bind exception to avoid bootloop 2020-05-14 23:07:58 +01:00
ta264
2c6b13dd11 Fixed: Rename more than 999 movies in one go
Also pulls across Dapper improvements from Readarr.

Fixes Sentry RADARR-1V
Fixes #4359
2020-05-14 22:41:59 +01:00
Qstick
93d27c70c4 New: AddMovieService to validate and populate incomplete adds 2020-05-14 09:57:08 -04:00
ta264
8b06df1b1a Disable discord notification for fork PRs 2020-05-14 07:17:11 +01:00
Qstick
daee51a8ab Remove HUGE logo from Readme [skip ci] 2020-05-13 23:37:58 -04:00
Qstick
5e0ba314d2 Fixed: Kodi GetMovies fails due to Parameter Type
Fixes #4405
2020-05-13 21:52:08 -04:00
Taloth Saldono
4606503818 Fixed: Performance issue when scanning large root folder 2020-05-13 20:29:16 -04:00
Qstick
942d239092 Bump .net core to 3.1.4 2020-05-13 10:36:17 -04:00
ta264
a19bcf9683 Fixed: CustomFormat size specs in already grabbed check
Sizes need to be parsed as a long not an int else anything with a size
> 2GiB will fail to be parsed and be set with size 0

Fixes #4262
2020-05-12 21:43:08 +01:00
Qstick
95f66117e4 Fixed: DownloadedMovieScan API should delete source folder if ImportMode is Move 2020-05-10 12:34:16 -04:00
Qstick
f332f8d7cd New: Dont Use Profile Language for Metadata Pull 2020-05-09 18:31:37 -04:00
Qstick
d6f15af6b6 Fixed: Command Inherited Properties not Saved to DB 2020-05-08 17:05:57 -04:00
Qstick
ce9fc48910 Fixed: Warn Series reference in CompletedDownloadService.cs 2020-05-07 20:34:44 -04:00
Taloth Saldono
c988151b5d Replaced matchAll usage since it's not available on all browsers 2020-05-06 12:06:11 -04:00
Taloth Saldono
cd50767273 Added UserAgent to api request trace log 2020-05-05 20:44:46 -04:00
Qstick
e46c171d54 Fixed: Windows installer won't create shortcut if unchecked
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-05-03 20:59:54 -04:00
Taloth Saldono
dbc784e94b Added UpdateMechanismMessage to allow package maintainers provide custom message 2020-05-03 20:53:00 -04:00
Taloth Saldono
ac37285be6 Inline markdown-style link for PackageAuthor 2020-05-03 20:49:30 -04:00
Qstick
13bd9535cc Log exception message with audio channel warn 2020-05-03 16:31:17 -04:00
Qstick
cb97f90b9e Allow DownloadMonitoring to report client status 2020-05-03 16:31:17 -04:00
Qstick
91ed949a47 Fixed: Gotify Log Statement 2020-05-03 16:31:17 -04:00
ta264
f53a13ab41 Make windows automation failure optional 2020-05-03 19:16:56 +01:00
Taloth Saldono
4d1dbfe559 Lock CommandQueueManager.PushMany too 2020-05-03 13:08:10 -04:00
Taloth Saldono
1fc49f2aa1 Skip unknown/removed commands still queued in the database 2020-05-03 12:17:10 -04:00
Taloth Saldono
8d2d19d17b Fixed timing issue allowing multiple instances of the same command to be queued 2020-05-03 11:52:31 -04:00
Mark McDowall
cc283f64a3 New: Add DownloadClient and DownloadId to Webhook notifications 2020-05-03 11:50:45 -04:00
Qstick
5ddc63c673 Fixed: Revert GetAllMovies call to AllMoviePaths 2020-05-01 21:16:17 -04:00
Qstick
41d7bf87c0 Fixed: Resource missing from Gotify call 2020-05-01 21:01:17 -04:00
Mark McDowall
771f7e9261 Add class to allow for overriding scrollbar width 2020-04-30 20:03:59 -04:00
Taloth Saldono
eb98a7e8be Improved error message when nzb download contains an newznab error instead 2020-04-30 20:03:20 -04:00
Mark McDowall
d4817e9ff2 Improve root folder health check
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-04-30 19:57:02 -04:00
Qstick
e71973b16c Cleanup Sonarr References 2020-04-30 19:46:53 -04:00
Qstick
d36608b4fd Fixed: Imports triggered through API not being marked as imported/removed from client
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-04-30 19:40:50 -04:00
Qstick
73eb83c9dc Fix Indent Issue from cherry pick 2020-04-29 20:55:57 -04:00
Mark McDowall
4928261366 Fixed: Imported downloads not being removed when seeding goals are met
Fixes #3693
2020-04-29 20:42:53 -04:00
Qstick
c44fa60721 Clarify that Post-Import Category torrents are not monitored by Radarr
Co-Authored-By: taloth <taloth@users.noreply.github.com>
2020-04-29 20:41:57 -04:00
Taloth Saldono
7afea3df90 Log Real IP on Authentication failure in case of a reverse proxy
closes #3711
2020-04-29 20:37:40 -04:00
ta264
e8018b7959 Fix sentry project slugs 2020-04-28 07:13:49 +01:00
ta264
0b36a83cc4 More sentry updates 2020-04-28 06:26:05 +01:00
ta264
dc66e92c48 Fixed: Failing to start when RenameMovieFolders queued 2020-04-28 06:07:04 +01:00
Qstick
17c60f897b Sentry DSN Update 2020-04-27 18:56:35 -04:00
Qstick
c8de38ef23 Fixed: List Connection Error Mentions Indexer 2020-04-26 20:33:34 -04:00
Qstick
c2761ef16c Fixed: Don't lock command queue if updating is disabled 2020-04-26 15:30:35 -04:00
Qstick
3b6e20908e Fixed: Don't Throw Error if No Movies on Discover
Fixes #4356
2020-04-26 15:16:56 -04:00
Mark McDowall
e6479e9a53 Fixed: Movies removed from queue re-appearing on refresh 2020-04-26 14:54:29 -04:00
Qstick
01e6fbddf4 Fixed: Rejection message for quality mismatch
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-04-26 14:54:29 -04:00
Mark McDowall
0f0afd62bb Fixed: Remove seeded downloads if they've finished seeding after import 2020-04-26 14:54:20 -04:00
gwenvador
eee6fd9f54 Update CompletedDownloadService.cs
Replaced Sonarr by Radarr
2020-04-26 09:52:44 -04:00
Qstick
a0fe43cd6e Fixed: Task Error due to Not Found in Scheduled Tasks 2020-04-25 16:50:17 -04:00
Qstick
91b5e359bd Fixed: Default new install to Aphrodite
Fixes #4354
2020-04-25 16:23:19 -04:00
rg9400
13fc878168 New: Clarify Replace Illegal Characters setting (#4353)
* Clarify Replace Illegal Characters setting

* Remove simply
2020-04-25 13:55:46 -04:00
Qstick
641d43c6f3 Simplify YML for Discord Notification (#4349)
* Simplify YML for Discord Notification

* fixup! Simplify YML for Discord Notification
2020-04-24 16:04:28 -04:00
Qstick
bb471d2d6d Fixed: Date parameter for TMDB
Fixes #4343
2020-04-24 15:00:40 -04:00
Qstick
cfb8678c59 Mobile Edit Oops 2020-04-24 11:38:23 -04:00
Qstick
437c4a78c1 Fixed: Notification still shows disabled with onHealthIssue
Fixes #4347
2020-04-24 11:37:30 -04:00
Qstick
df76c679ff Discord Azure Notification 2020-04-24 08:45:42 -04:00
Qstick
d30c1b1385 Fixed: Queue Not Rendering
Fixes #4341
2020-04-23 15:04:28 -04:00
Qstick
0b113b9bab Fixed: Queue Items don't show up 2020-04-22 19:12:33 -04:00
Qstick
f3d7852ec4 Fixed: Queue not always clearing checked items when updated
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-04-22 17:33:08 -04:00
Qstick
824d315a3b New: Download History
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-04-22 17:33:08 -04:00
Qstick
72caab1b2b New: Monitor and Process downloads separately
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-04-22 17:33:08 -04:00
Qstick
f430d1aab2 Update azure-pipelines.yml 2020-04-22 14:18:38 -04:00
Qstick
d21e7b8f1a Warn and continue on source map upload failures 2020-04-22 14:02:16 -04:00
Qstick
750b819086 Update azure-pipelines.yml 2020-04-22 13:37:23 -04:00
Taloth Saldono
43a35c8447 Another mono 6.x workaround to use rename rather than expensive copy 2020-04-20 13:42:24 -04:00
Qstick
022af2053a fixed props validation 2020-04-19 14:12:44 -04:00
Qstick
90213554bb Fixed: Cannot Edit Branch in Update Settings 2020-04-19 14:08:31 -04:00
Qstick
6d87ce73b6 Fixed: Gotify token as query parameter
Fixes #4321
2020-04-19 13:47:45 -04:00
Qstick
8c4ac632ca Update stale.yml 2020-04-19 03:29:03 -04:00
Qstick
e819eec41f Fix SendGrid Exception copy/paste 2020-04-13 18:39:05 -04:00
Qstick
ac34684850 New: SendGrid Support 2020-04-13 00:31:13 -04:00
Qstick
cf1cea751b Fixed: Radarr Sync doesn't set path, tags, profile, avail 2020-04-12 15:27:42 -04:00
Qstick
df961860f3 Fixed: ReEnable Multi Language Settings for Indexers 2020-04-11 00:26:09 -04:00
Qstick
55134d76c1 New: Allow Filter by Profile from Radarr Instance List 2020-04-11 00:17:42 -04:00
Qstick
6739bf72c4 New: Allow query by TMDbId on Movies endpoint 2020-04-10 23:45:26 -04:00
Qstick
9f35dcd900 Fixed: Toolbar button collapsing includes separator
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-04-10 21:28:44 -04:00
Mark McDowall
93ad148b03 Fixed: Ignore .@__thumb folders 2020-04-10 21:26:45 -04:00
Qstick
ecaff28231 Fixed: Tooltips for Existing and Exclusion Icons in Search
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-04-10 21:26:13 -04:00
Qstick
4abf44617c Convert Notifications from RestSharp to HttpClient 2020-04-10 21:22:45 -04:00
Qstick
39250abf7d Fixed: Add AltTitles from TMDB if Mapping Fails
Fixes #4300
2020-04-09 21:22:33 -04:00
Qstick
a711cbd475 Fixed: Movie History showing ascending by date 2020-04-09 19:22:06 -04:00
Qstick
975d31178b Fixed: History Repo GetById not always ordered by Date 2020-04-08 22:13:32 -04:00
Qstick
415c2821c8 Fix Qbit Test 2020-04-08 21:59:47 -04:00
Qstick
f891f25f9d Fixed: Strip AlteZachen from release group name
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-04-08 21:33:59 -04:00
Qstick
0042fadcb0 Fixed: Don't try to render quality when it's null
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-04-08 21:31:47 -04:00
Mark McDowall
34fff4ef26 Fixed: Treated checkingUP status from Qbit as queued in case it fails to validate 2020-04-08 21:27:49 -04:00
Qstick
eea99b034e Fixed: Scroll issue in Root Path selector on mobile
Co-Authored-By: taloth <taloth@users.noreply.github.com>
2020-04-08 21:24:10 -04:00
Qstick
30664ea806 New: Added Norwegian Bokmal alias
Co-Authored-By: taloth <taloth@users.noreply.github.com>
2020-04-08 21:18:19 -04:00
Qstick
37d004d78d Fixed: Copy linux permission mask when moving to recycle bin
Co-Authored-By: taloth <taloth@users.noreply.github.com>
2020-04-08 21:15:58 -04:00
Qstick
22062931fe Fixed: Set SimpleReleaseTitle to get CFs on Unparsable Release
#4291
2020-04-07 21:21:22 -04:00
Qstick
d44f0d23ea Fixed: ExtraFiles and PendingReleases not deleted correctly 2020-04-05 12:27:34 -04:00
Qstick
2d0fdf144b Fixed: Update Mechanism doesnt show in Settings 2020-04-05 10:17:59 -04:00
Qstick
727347331f Fixed: More robust Certification Logic 2020-04-05 03:30:03 -04:00
Qstick
8c25ccf1ea Update Frontend Packages 2020-04-05 02:06:13 -04:00
Qstick
d59c563023 Update Backend Packages 2020-04-05 02:06:13 -04:00
ta264
d5e35335bb Update to net core 3.1.201 2020-04-05 02:06:13 -04:00
Qstick
43c48bf833 New: Quality Preferred Setting 2020-04-04 18:11:46 -04:00
Qstick
ea18a366c4 fixup! Code Smells 2020-04-04 11:16:01 -04:00
Qstick
0a1eb877e0 New: Set Branch, Update Mech from PackageInfo 2020-04-04 11:16:01 -04:00
Qstick
16d6fd90a9 Only Close Stale Issues, Not PRs 2020-04-04 10:38:34 -04:00
Qstick
fac49c1da3 New: Seach All/Filtered on Index 2020-04-03 15:51:03 -04:00
Qstick
fb7bd4f14f Fixed: Don't cutoff Filter menu on mobile 2020-04-03 15:37:31 -04:00
Qstick
74c0e409e7 Fixed: Skip MovieDetails Ratings Render if Null 2020-04-03 10:06:24 -04:00
Qstick
1137c8d770 Fixed: Show Separator on all index views 2020-04-02 23:11:22 -04:00
Qstick
68dec70b34 Fixed: Missing Sort Items on Poster View 2020-04-02 23:08:19 -04:00
Qstick
dd52760095 New: Movie Certifications 2020-04-02 21:47:52 -04:00
Qstick
770e3379fb New: Trakt List Organization, User Collection List Support 2020-04-02 12:42:06 -04:00
Qstick
7adfe65f65 New: Import from Another Radarr Instance
Co-Authored-By: Leonardo Galli <galli-leo@users.noreply.github.com>
2020-04-02 12:42:06 -04:00
Anthony Borushko
57057911ab Fixed: Tag inputs respect non-QWERTY layouts 2020-03-31 23:34:32 -04:00
Qstick
7a1fa71b76 New: Add back Prowl Notifications 2020-03-29 22:48:21 -04:00
Qstick
d3af103812 Fixed: Don't wrap Health Actions Cell 2020-03-29 09:28:31 -04:00
Qstick
0431b9561e Fixed: Cleanup HealthCheck wiki links 2020-03-29 09:03:42 -04:00
Qstick
f4e334c14e New: Add Filter Value for Deleted MovieStatus 2020-03-29 08:37:45 -04:00
Qstick
ef2f954b81 New: HealthCheck for valid Branch value 2020-03-28 16:01:38 -04:00
Taloth Saldono
12041ac290 Fixed: Audio Channel Information missing in MediaInfo for certain mkv files with DTS audio 2020-03-22 22:01:27 -04:00
Mark McDowall
e6f5d535e9 New: Clone indexer button
Closes #3546
2020-03-21 00:05:33 -04:00
Qstick
f338941cfc New: Show ExtraFiles in UI 2020-03-20 23:50:15 -04:00
Qstick
3576f529ec Fix Indent Issues (Update Eslint/Stylelint) 2020-03-20 23:50:15 -04:00
Qstick
5a5e896eb4 Fixed: Misc Calendar Improvements 2020-03-20 23:50:15 -04:00
Qstick
b2c1dbf3ab Fixed: MovieDetails warnings if InCinemas is null 2020-03-20 23:50:15 -04:00
Qstick
990a65a681 Fixed: Change MovieHistoryDetails to Modal 2020-03-20 23:50:15 -04:00
Qstick
086640519a Fixed: Error Rendering Queue Row on Null Quality
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-03-20 22:50:03 -04:00
Qstick
d99519cb23 New: RSS Sync button on Calendar
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-03-20 22:50:03 -04:00
Qstick
aae0ef200d New: Tmdb and Imdb Webhook Properties 2020-03-20 22:50:03 -04:00
Qstick
dfdffb0626 Fixed: Remove website post fix before parsing
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-03-20 22:50:03 -04:00
Qstick
ae1e12f905 Fixed: Update help text in Connections from Download to Import
Co-Authored-By: hugepants <hugepants@users.noreply.github.com>
2020-03-20 22:50:03 -04:00
Qstick
c49867a08d Fixed comment typo in webpack config
Co-Authored-By: taloth <taloth@users.noreply.github.com>
2020-03-20 22:50:03 -04:00
Qstick
669e46266a Fixed: Typo in ReleasePushModule.cs 2020-03-20 22:50:03 -04:00
Taloth Saldono
755fa9e865 Fixed: Workaround for mono 6.x file copy/move issues 2020-03-20 22:48:30 -04:00
kiityman1
ed72713ba7 Fixed: Enter on Delete profile confirmation deleting all unused profiles (#4241) 2020-03-20 21:49:51 -04:00
Qstick
2fbcf17c8d Fix Linting Error (Double Blank Line) 2020-03-11 22:23:35 -04:00
Qstick
f37fb47058 Fixed: Scrolling and Hotkey improvements
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-03-11 22:23:07 -04:00
Mark McDowall
55758a2772 New: Ignore #recycle folders (Synology Recycle bin folder) 2020-03-11 22:10:16 -04:00
Qstick
363be4ca34 Fixed: Metadata files not being created after rescan
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-03-11 22:09:08 -04:00
Qstick
5128481b23 New: Additional Path Validation on Movie Add 2020-03-08 22:49:00 -04:00
Mark McDowall
fd3acd85e6 Fixed: Broken tasks getting stuck in queue 2020-03-08 22:37:10 -04:00
Qstick
5b6a6cc9dc Fixed: Delete a movie file from the UI that was already deleted from disk 2020-03-07 14:52:48 -05:00
Qstick
b50fdd637b Change to Servarr TestImages 2020-03-07 00:44:34 -05:00
Qstick
fba1a5acb9 Fixup test failures 2020-02-29 23:42:01 -05:00
Taloth Saldono
8babe7205b Fixed: Removed .Net update notice on Windows LTSB 2015 2020-02-29 22:30:26 -05:00
Mark McDowall
e02151b273 New: Add Tabula Rasa Newznab Preset 2020-02-29 22:25:03 -05:00
Qstick
0c44ee5f88 New: HealthCheck and Status for Movies Deleted from TMDb 2020-02-29 21:21:36 -05:00
ta264
ea9494019e Fixed: Allow saving profiles with large negative CF scores 2020-02-29 16:23:19 +00:00
Qstick
e986869e96 New: CustomFormat Naming Token 2020-02-29 13:03:58 +00:00
ta264
50d6c5e61e New: User defined scores for each Custom Format
Brings it more into line with Sonarr preferred words
2020-02-29 13:03:58 +00:00
Qstick
da80793204 Fixed: Check for EnableCompletedDownloadHandling Enabled, Not Defined 2020-02-27 00:02:09 -05:00
ta264
2d78e0ebb6 Fix azure executable bit warnings 2020-02-26 20:04:32 -05:00
ta264
ac662ab3c1 Pull build.sh speedups from Lidarr 2020-02-26 20:04:32 -05:00
ta264
456169b8d2 Cache integration test DB to avoid repeated migrations 2020-02-26 20:04:32 -05:00
ta264
f3308827d0 Cache database for Unit tests to avoid repeated migrations 2020-02-26 20:04:32 -05:00
Mark McDowall
d6cac3add8 Fixed: Set permissions on extra and subtitle files 2020-02-25 22:44:02 -05:00
Taloth Saldono
42b4a03eb4 Fixed redirect test 2020-02-25 22:34:05 -05:00
Петр Шургалин
1e4bdcc324 Fixed: RestClient does not use global proxy settings
Co-Authored-By: Petr Shurgalin <pshurgal@users.noreply.github.com>
Co-Authored-By: taloth <taloth@users.noreply.github.com>
2020-02-25 22:32:16 -05:00
Qstick
c45cff87fc Fixed: Test All not clearing health error for clients
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-02-25 22:06:28 -05:00
Qstick
7de9ef3762 MovieIndexActions no longer uses JQuery 2020-02-25 21:34:14 -05:00
Qstick
9ccdb4871d Fixed: Don't append every MovieId to Delete as a URL Parameter
Fixes #4186
Fixes #4188
2020-02-25 21:28:33 -05:00
Qstick
7173c5c737 Fixed: Sort qualities by name within group when sorting by status
Relates to #4189, Optimal end state would be to sort by quality weight within group, however that is not currently passed from API with the quality object.
2020-02-25 21:02:10 -05:00
Qstick
64e9e48217 Fixed: Show "Not Available" instead of "?" when no InCinemas date 2020-02-25 20:33:43 -05:00
Qstick
3de65daf85 New: Runtime Column/Filter on Movie Index
Fixes #4131
2020-02-25 20:30:42 -05:00
ta264
7584d95149 Fixed: Not showing past first few pages of history 2020-02-25 20:10:14 -05:00
Qstick
d7fd48ef25 Fixed: Use TMDB ReleaseDate Year for Year (Match Cinema Date) 2020-02-25 20:07:24 -05:00
Qstick
3969a396d3 Fixed: Change Language on FileNameSampleService so AudioLanguages token works
Fixes #4185
2020-02-24 19:06:33 -05:00
Qstick
c7dfd9dcf1 Fix Log Statement Grouping in FreeSpaceSpec
Fixes #4184
2020-02-23 13:07:56 -05:00
Qstick
b0afbce97c Fixed: Don’t fail build on Sentry fail 2020-02-22 20:03:43 -05:00
PHOENiX
5d478a5259 Fixed: Page Header Logo Vertical Centering (#4179) 2020-02-22 17:21:05 -05:00
Qstick
63780884c2 Fixed: Show Colon Replacement setting in UI
Fixes #4122
2020-02-22 17:13:42 -05:00
Qstick
f05207580c Fixed: Show Edition naming token in UI 2020-02-22 16:57:34 -05:00
Qstick
27551e2975 Fixed: Typo in unmonitored movie tooltip
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-02-22 16:06:09 -05:00
Qstick
76752a5dbd Fixed: Empty list message for System: Events
Co-Authored-By: beyondmeat <beyondmeat@users.noreply.github.com>
2020-02-22 16:02:20 -05:00
Qstick
deeb2979f1 Fixed: Parse 360p releases as base quality instead of 720p
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-02-22 16:00:07 -05:00
Qstick
d19321733b Fixed: Prompt to restart after resetting API key
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-02-22 15:41:39 -05:00
Qstick
f4d069c0cf Fixed: QuickImport uses Invalid Command Name 2020-02-22 15:39:48 -05:00
ta264
241bf85f15 New: Better interface for creating custom formats 2020-02-21 21:29:15 -06:00
ta264
a5bac30ef3 New: Bump .net core to 3.1.102 2020-02-19 21:35:07 -05:00
Qstick
b670bffa1b Fixed: Populate Collection on every Resource Map
Fixes #4162
2020-02-17 20:42:36 -05:00
ta264
4c5490df94 Fixed: Improve performance of Manual Import movie selector 2020-02-17 20:34:11 -05:00
ta264
d5ddebb7ac Fixed: Editing provider/profile settings appearing to affect wrong item 2020-02-17 20:34:11 -05:00
Qstick
dc22c8df1f Fixed: Focus on Search Bar on Add new page
Fixes #4104
2020-02-15 20:32:03 -05:00
ta264
66ad75b759 Fixed: Don't check update folder writable in docker 2020-02-15 12:17:36 +00:00
desimaniac
b0f4a02dc6 New: Add Year to Custom Script (#4141) 2020-02-14 19:59:05 -05:00
Qstick
4a7f497023 Fixed: Cleanup Double Path on Details Page 2020-02-11 21:11:25 -05:00
Qstick
ecc68af439 Fixed: Pass Array to Bulk Language Select for Manual Import
Fixes #4143
2020-02-11 21:08:17 -05:00
Qstick
79a05876bf Fixed: Filter by Studio if null studio exists in library
Fixes #4142
2020-02-11 21:01:55 -05:00
Qstick
3ea6d78d39 New: Add MediaCovers endpoint to V3 API 2020-02-11 20:40:31 -05:00
Qstick
b766f0693a Fixed: Use movieId instead of seriesId from MediaCover route 2020-02-11 20:34:30 -05:00
Qstick
a19f0202b0 Fixed: NullRef on FIleList Parse if IMDB Empty 2020-01-31 19:46:38 -05:00
Qstick
c6baff9bce Fixed: Populate Info in Lookup Results if Existing Movie 2020-01-31 06:09:34 -05:00
Qstick
63197d38ce New: Store OriginalFilePath for New Downloads 2020-01-30 19:06:00 -05:00
Qstick
e954b01921 Fixed: Remove Static/Dynamic Settings, Allow Folder Move from Editor 2020-01-30 19:06:00 -05:00
Qstick
1c8f94f1d8 New: Filelist.ro Indexer
Fixes #4061
2020-01-30 19:04:12 -05:00
Qstick
3d17498945 Fixed: Queue not loading for unknown releases 2020-01-30 12:42:43 -05:00
Qstick
869ce2b366 Fixed: NullRef on Force Download Unparsable Releases 2020-01-26 01:24:10 -05:00
Qstick
68bfd8bc25 Fixed: Edition not Saving to DB due to missing Aggregator 2020-01-26 01:13:45 -05:00
Qstick
fdd1167f33 New: Clean 'Obfuscation' when parsing ReleaseGroup 2020-01-26 00:15:16 -05:00
ta264
4ce4790ed2 Upgrade build agents 2020-01-25 00:25:01 -05:00
ta264
01a03e9baf Fixed: WhereBuilder exception when string variable null 2020-01-24 19:58:19 +00:00
ta264
df101258c5 New: Calculate custom formats on demand 2020-01-23 20:28:55 +00:00
Qstick
13701498ce Fixed: Fix typo in remove queue item modal
Co-Authored-By: Jayden <lukyjay@users.noreply.github.com>
2020-01-22 22:47:30 -05:00
Qstick
09f8dace9d Fixed: Remove website prefixes with dashes in URL
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-01-22 22:45:32 -05:00
Qstick
88cbeb930d New: Allow Sort by Size on Manual Import
Fixes #4097
2020-01-22 22:43:16 -05:00
Qstick
4d3a1efca3 New: Size Column in Queue
Fixes #4063
2020-01-22 22:40:12 -05:00
beyondmeat
27f7dd26ab Fixed: Episode reference in search results string (#4094) 2020-01-22 20:54:18 -05:00
ta264
ba41939c27 Test mono 6.10, drop mono 6.6 2020-01-21 16:37:15 +00:00
ta264
d5869aebc6 Fix tmdb tests
Need to resolve the mapper now that we don't blindly add images
2020-01-21 16:37:15 +00:00
Qstick
dfa3df8ea5 Fixed: Only Add Images if not Null on TMDB 2020-01-20 20:59:50 -05:00
ta264
92f7b25117 Fix build for bad azure update 2020-01-21 00:12:21 +00:00
ta264
6cb504cb08 Fixed: Use portable PDBs on net core
Enables stack trace line numbers on linux
2020-01-21 00:12:21 +00:00
Qstick
e9de53ef98 Fix MovieFileMovingService create directory error logger 2020-01-19 18:43:26 -05:00
Qstick
d89c267e62 Update Popper to 1.3.7
1.3.6 has an infinite loop issue with componentDidUpdate
2020-01-18 12:57:23 -05:00
Qstick
b59546b1ab Bump UI Linting Packages 2020-01-18 12:46:00 -05:00
Qstick
b73950c1b4 Fixed: Don't NullRef if filter parameters null 2020-01-18 11:29:55 -05:00
Qstick
3287ce6f90 Fixed: FilterSettings not mapping due to no setter (System.Json) 2020-01-16 22:40:29 -05:00
ta264
9cf353b423 Fix typo and rename duplicate ListType property 2020-01-16 22:40:29 -05:00
ta264
377d788223 Fixed: Migrate the old TMDb list definitions to new type 2020-01-16 22:40:29 -05:00
ta264
7255cb49cb Fix .editorconfig for omnisharp 2020-01-16 22:40:29 -05:00
Qstick
86b8dd4856 Fixed: Not deleting movie files during upgrade when root folder is missing
Fixes #4066

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-01-16 22:38:07 -05:00
Qstick
16c03444ab Fixed: Removed NotifyMyAndroid and Pushalot
Fixes #4033
Tack onto migration 164
2020-01-15 23:12:39 -05:00
Qstick
ccc77bfcfe New: Add Collection and Cast data to Kodi NFO
Fixes #3421
2020-01-15 23:12:39 -05:00
Qstick
b3caa87b78 New: Add and Edit People Lists from Movie Details Page 2020-01-15 23:12:39 -05:00
ta264
8021381de2 Fix mapper exception 2020-01-15 23:12:39 -05:00
Qstick
65287ec4f3 New: TMDb List Rework 2020-01-15 23:12:39 -05:00
Qstick
bdc1adb2ed New: Cast/Crew Tabs on Movie Details Page 2020-01-15 23:12:39 -05:00
Qstick
f2fffe5304 New: Collection Column/Filter Movie Index 2020-01-15 23:12:39 -05:00
Qstick
1c91c9939f Fixed: Cleanup NetImport Implementation 2020-01-15 23:12:39 -05:00
Qstick
ba83c01b6c New: NetImport Lists Grouped by Type
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2020-01-15 23:12:39 -05:00
Qstick
d76423a305 New: Scrape Cast/Crew/Collection Data on Movie Refresh 2020-01-15 23:12:39 -05:00
Qstick
dec0e3eec3 Dedupe JS events to prevent 1000s repeated hitting Sentry 2020-01-12 14:59:14 -05:00
Qstick
1fab973c67 Update Sentry-JS from 5.10.1 to 5.11.0 2020-01-12 14:58:15 -05:00
Qstick
70d7b3b70a Fixed: 4 digit year for log lines
#4053
2020-01-12 10:40:14 -05:00
Qstick
c8095faa1f New: Size on Disk in Index and Editor
Fixes #977
2020-01-11 17:06:02 -05:00
Qstick
d5e6cc542f Fixed: Sort by Status on MovieIndex
Fixes #4018
2020-01-11 16:44:30 -05:00
Fossil
3c1113260d Fixed: NZB Finder categories (#4054)
As discussed here https://github.com/Radarr/Radarr/pull/3568
2020-01-10 13:37:29 -05:00
Qstick
06b56db67c Squash Pre-Fork Sonarr Migrations (#4029) 2020-01-09 20:14:17 -05:00
Qstick
b3553e93ab Fixed: Broken Title Sort on Activity Pages 2020-01-09 20:03:08 -05:00
Qstick
7f7226e466 Fixed: Search results shown for different movie if navigate during request 2020-01-08 22:36:25 -05:00
Qstick
c060f9fd4d Fixed: Prevent error on MovieFile Delete if no movie references movieFile
Fixes #4042
2020-01-08 22:08:26 -05:00
Qstick
e70be7cf9e New: Added help text for qualities in groups
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2020-01-08 21:42:19 -05:00
Mark McDowall
822035056a Fix proptype warning for id of EnhancedSelectInputOption 2020-01-08 21:40:40 -05:00
Mark McDowall
cf6e993a4d New: Limit recent folders in Manual import to 10 and descending order
Closes #3491
2020-01-08 21:39:51 -05:00
ta264
6f115d2db3 New: Update MonoTorrent from nuget 2020-01-08 20:53:36 -05:00
Qstick
0845a4bf4c Fixed: Handle 3 digit audio channels 2020-01-07 09:48:03 -05:00
Qstick
e0f591ebe3 Fixed: Re-Enable Indexer Flags for Torrent Indexers 2020-01-07 09:47:29 -05:00
Qstick
68ea6fbb4f Fixed: Broken SeedConfigOptions due to System.Text.Json req. for public setters 2020-01-07 09:47:29 -05:00
Qstick
7ad2e7fbdb Update config.yml 2020-01-06 21:21:42 -05:00
Qstick
fd3c703e2e Update config.yml 2020-01-06 21:21:28 -05:00
Qstick
8d021ba7e1 Update issue templates 2020-01-06 21:03:33 -05:00
EnorMOZ
c77fd1a6fc New: Add Radarr_Download_Client to OnDownload (#4034)
* Add Radarr_Download_Client to OnDownload

* Add Radarr_Download_Client to OnDownload
2020-01-06 07:00:40 -05:00
ta264
4025005251 Fixed: Regression setting file date 2020-01-05 18:05:27 -05:00
Qstick
3a8920a1e9 Fixed: Always full build on branch builds 2020-01-05 00:56:28 -05:00
Qstick
c94606dccd Fixed: MediaCover Test Broken in #3982 2020-01-05 00:47:38 -05:00
Qstick
0957bdda20 New: Correct default caps for nzbfinder and omg
Co-Authored-By: Fossil <fossil01@users.noreply.github.com>
2020-01-04 21:16:59 -05:00
Qstick
f75b404387 Fixed: Remove PFMonkey.com from Presets
Co-Authored-By: Fossil <fossil01@users.noreply.github.com>
2020-01-04 20:53:44 -05:00
ta264
959b8ed83e Fixed: Speed up UI during refresh
Don't update state if we know items are equal to avoid reselections.
Don't pass LastInfoUpdate to frontend to prevent useless updates (the
field isn't used)
2020-01-04 11:25:26 -05:00
ta264
5b07046396 Fixed: Trigger fewer signalr broadcasts 2020-01-04 11:25:26 -05:00
ta264
8e256462bf Use MediaCoverService from Sonarr 2020-01-04 11:25:26 -05:00
Qstick
80673b572a Fixed: Full Build on Backend, Not Don’t Build If any Non Backend (#4026)
* Fixed: Build on Backend, Not Don’t Build If any Non Backend

* fixup! Quit pushing from 5 inch screen!!
2020-01-03 15:34:28 -05:00
Qstick
f3677a49bf Fixed: Use User Selected Languages during Manual Import 2020-01-02 22:55:20 -05:00
Qstick
c22c7eff60 Fixed: Don't crash due to null Formats on Quality edit 2020-01-02 22:55:20 -05:00
Qstick
51af4011a3 Fixed: Remove unused Manage Files button 2020-01-02 22:55:20 -05:00
Qstick
02c35f963e New: Select Multiple Languages on Manual Import 2020-01-02 22:55:20 -05:00
geogolem
4385acef99 Fixed: Reverted a change that caused SQL error on NetImport
c300af8241 (diff-4199a537105793b9a05a6232cb0531bb)

that caused SQL error when doing netimport search

update tests

update tests

revert tests then remove

revert tests changes --> comment out the tests
2020-01-02 22:28:11 -05:00
Qstick
bf0c716aa5 Disable blank GitHub issues, redirect support to Discord 2020-01-02 20:20:43 -05:00
Qstick
503f7286b9 Fixed: Treat any CF over Cutoff as Cutoff Met 2020-01-02 06:36:11 -05:00
Qstick
0f9c6038ca Fixed: Namespace for CustomFormats Tests 2020-01-02 06:36:11 -05:00
Qstick
c6cae162be Fixed: Format Cutoff Selection searches Qualities not Formats 2020-01-02 00:29:57 -05:00
Qstick
5c7d20df54 Fixed: Cutoff Unmet Search fails due to SQL query 2020-01-01 16:46:33 -05:00
Qstick
2e5c7e0073 Fixed: Fallback to Title and Year for PTP if IMDB doesn't exist
Fixes #3509
2019-12-30 22:30:17 -05:00
Qstick
151bf5b49f Fixed: React error displaying a search result for an existing movie
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2019-12-30 21:48:43 -05:00
Qstick
1b7f52e013 Fixed: Trying to add a movie when root folders hadn't populated
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2019-12-30 21:43:07 -05:00
Qstick
00921ed839 Add Test Fixture for List Sync 2019-12-30 12:07:37 -05:00
Qstick
c300af8241 New: Don't clean moves if IMDB Match 2019-12-30 12:07:37 -05:00
ta264
b1b6a91db8 Fixed: Correctly add parameters to migrations 36 and 154 2019-12-30 16:12:05 +00:00
Qstick
dbb24108f1 Don't hardcode branch in backend only check 2019-12-29 02:25:52 -05:00
Qstick
60b9496162 New: Fallback to tmdb search on Rarbg if IMDb is null 2019-12-28 20:26:56 -05:00
Qstick
2eff7b95dd Fixed: Catch NullRef On HDBits request if IMDB empty 2019-12-28 20:26:07 -05:00
ta264
89fec7841c Fixed: Cutoff Status and Filter on MovieIndex 2019-12-28 11:38:34 -05:00
ta264
f83ccb6ca4 Swap to dapper Mk. 2 2019-12-28 11:38:34 -05:00
ta264
47f45a6275 Revert "Revert "Remove Marr.Data""
This reverts commit d2d2020573.
2019-12-28 11:38:34 -05:00
Qstick
a39991a9ca New: Don't Run Unit/Integration/Analyze Back if no backend changes 2019-12-28 10:45:24 -05:00
Qstick
daee348795 Fixed: Video format exception using split string object 2019-12-28 02:42:56 -05:00
Qstick
fa2c4725be New: Show IndexerFlags on Interactive Search 2019-12-28 00:45:59 -05:00
ta264
f02fa629cc Reformat and apply Stylecop rules 2019-12-27 20:40:13 -05:00
ta264
d4fa9b7345 Remove trailing whitespace 2019-12-27 20:40:13 -05:00
ta264
8d27111f7b Remove all unnecessary usings 2019-12-27 20:40:13 -05:00
ta264
c6ae0bb509 Add missing new lines at end of files 2019-12-27 20:40:13 -05:00
ta264
997ff74fb9 Replace tabs with 4 spaces 2019-12-27 20:40:13 -05:00
Qstick
8476e36122 New: Turn MediaInfo Popover into Modal, Add AudioFeatures 2019-12-26 21:52:05 -05:00
Qstick
5e7f0f9d78 Fixed: Tmdb Rename Tokens
Fixes #4004
2019-12-26 21:11:44 -05:00
ta264
10fc0b071f Fixed: NET Core doing copy/delete instead of rename 2019-12-25 16:36:07 +00:00
Qstick
38b6bb3952 Fixed: Legacy API not excluded from coverage 2019-12-24 16:43:47 -05:00
ta264
921771d41b Fix sentry project names 2019-12-23 16:57:20 -05:00
ta264
c53aed4cbf Update sentry DSN to self hosted 2019-12-23 16:03:36 -05:00
ta264
415006badc Slim down mono test suite
Run oldest supported (5.10), current recommended (5.20), latest
stable (6.6) and preview (6.8)
2019-12-22 22:13:02 +00:00
Qstick
089c9657f9 Fixed: Don't throw error IMDB mapped movie not found 2019-12-21 14:18:38 -05:00
ta264
0ca72bf444 Fixed: Null exception on EnhanceMovieInfo
Fixes SENTRY Radarr-3KM
2019-12-19 18:01:12 -05:00
ta264
6057b27dc8 Fixed: Error in epic fail handler if console input redirected
Fixes Sentry Radarr-3AK
2019-12-19 17:58:00 -05:00
EnorMOZ
a5d695ec92 Fixed: Language debug log in parser (#3971) 2019-12-18 22:26:39 -05:00
Qstick
f7163451e1 New: Keep DB Migration to fix 147
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2019-12-17 21:59:03 -05:00
Qstick
d2d2020573 Revert "Remove Marr.Data"
This reverts commit 7b17c3e36c.
2019-12-17 21:59:03 -05:00
Qstick
e937d74b11 Revert "Swap to dapper and system.text.json for database backend"
This reverts commit d2065bfa1b.
2019-12-17 21:59:03 -05:00
Qstick
d778085ba5 Revert "Fixed: Serialize flag enum as string also"
This reverts commit b0ae4e9a60.
2019-12-17 21:59:03 -05:00
ta264
b0ae4e9a60 Fixed: Serialize flag enum as string also 2019-12-17 18:38:33 +00:00
Qstick
fcb31ac51b Fixed: Don't crap on bad searches 2019-12-16 21:44:59 -05:00
Qstick
5d2ac0b86b Fixed: Custom Format Compare not using Id value
Fixes #3954
2019-12-16 20:58:49 -05:00
Qstick
d4422e8901 Fixed: Change Refresh to Use StartTime 2019-12-16 20:20:34 -05:00
Qstick
da50b49e01 New: Store Task StartTime, Show Duration in UI 2019-12-16 20:20:34 -05:00
Qstick
edcc0ba7ce New: Only Refresh on TMDB Refersh 2019-12-16 20:20:34 -05:00
ta264
d2065bfa1b Swap to dapper and system.text.json for database backend 2019-12-16 20:22:58 +00:00
ta264
7b17c3e36c Remove Marr.Data 2019-12-16 20:22:58 +00:00
Qstick
acac33c217 New: Change Automation timeout to 3min (#3951)
* New: Change Automation timeout to 3min

* Fixed: Workaround netcore/selenium HTTP bug

* try without timespan override

* Update AutomationTest.cs
2019-12-15 18:55:14 -05:00
Qstick
5d7804478b New: Trakt Auth per List 2019-12-15 00:39:16 -05:00
Qstick
5e52a12287 Fixed: Add back Indexer Options 2019-12-14 21:40:28 -05:00
Qstick
a23e57d9f7 Fixed: Typo in RescanMovie log statement 2019-12-14 21:15:04 -05:00
EnorMOZ
2f902d412c Fixed: History fails due to languages property (#3944)
* Fix languages property

* fix language
2019-12-14 20:33:09 -05:00
Qstick
e9ed08c8be New: Shrink Test Images (Remove Mono 5.12, 5.14, 5.16) 2019-12-10 21:04:40 -05:00
ta264
a931ac1022 Fixed: Webpack worker loading with UrlBase 2019-12-10 21:00:40 -05:00
Qstick
24f93ec3ef Fixed: Regenerate Yarn.lock for update (serialize-javascript@^2.1.1) 2019-12-09 23:09:01 -05:00
DavidSpek
a9f95109f6 New: Add EAC3 Atmos to Mediainfo Formatting (#3900)
* Added a EAC3 Atmos option

Added a second if statement under "if (audioFormat.ContainsIgnoreCase("E-AC-3"))" to look for "JOC" in splitAdditionalFeatures to be able to identify EAC3 tracks that contain atmos. I used the audioFormat "MLP FBA" with "TrueHD Atmos" as a reference.
2019-12-09 22:52:46 -05:00
Qstick
803b44280f Fixed: Sonar failure on external forks 2019-12-09 22:48:24 -05:00
ta264
318e05ddba Fixed: Poster/Overview checkbox in Movie Editor mode 2019-12-08 17:39:20 +00:00
Qstick
000a4ec822 Fixed: Revert react-virtualized update due to issues with JumpBar 2019-12-08 01:06:06 -05:00
telans
ed46ff3445 Fixed: Client strings reference episodes (#3929) 2019-12-08 00:34:59 -05:00
Qstick
7a95fb55bd Fixed: Versioned Backups Not Recognized by BackupFileRegex 2019-12-08 00:31:00 -05:00
Qstick
eaf7999d70 Update DEVELOPMENT.md 2019-12-07 18:33:22 -05:00
Qstick
2633c82a01 New: Hookup SonarCloud 2019-12-07 13:27:18 -05:00
Qstick
12245d0956 Fixed: Paging on Day and Week Cal View 2019-12-07 12:19:01 -05:00
Qstick
6d87b5dfec Fixed: Show Physical Releases on Calendar 2019-12-07 02:11:29 -05:00
Qstick
bbd065940e Fixed: Calendar Ledgend not being shown 2019-12-07 02:04:38 -05:00
Qstick
61450a5ca4 New: Update Radarr.ico 2019-12-07 01:33:20 -05:00
Qstick
05f0156661 New: TMDB Link on Search Results 2019-12-07 01:25:03 -05:00
Qstick
14c943bd48 Fixed: ImportDecsionMaker Fixture Failures 2019-12-07 01:17:01 -05:00
Qstick
a03f6605ce Fixed: History Rename and Delete Filter Using Wrong Id 2019-12-06 23:26:58 -05:00
Qstick
a7e066fc11 Fixed: Logging file release group for repack
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2019-12-06 23:22:28 -05:00
Qstick
7cd270d534 Fixed: Rename ProcessProviderTests to Fixture 2019-12-06 23:21:07 -05:00
Qstick
b14157797e New: Show relative file name when selecting movie in Manual Import 2019-12-06 23:17:24 -05:00
Taloth Saldono
0cff6c1fdf Tiny fix in test, left-over from my on-windows test. 2019-12-06 23:08:41 -05:00
Qstick
ca61ca5c40 Fixed: All Files Filter on Manual Import in MovieDetails 2019-12-06 23:06:58 -05:00
Qstick
aa7ebe4168 New: UI Package Updates 2019-12-06 22:42:15 -05:00
Taloth Saldono
c34dc0be13 Cleanse getnzb url 2019-12-06 22:28:40 -05:00
Taloth Saldono
d5c2308587 Fixed: File imports on cloud drives slow due to transaction logic 2019-12-06 22:22:36 -05:00
Qstick
7f0581018b New: Enforce Indent after Logical for UI 2019-12-06 21:38:58 -05:00
ta264
6235225f7d New: Bump to .NET Core 3.1 2019-12-06 21:12:47 -05:00
ta264
ea9f622db2 Fixed: UI Search
Inline the worker until we come up with a better solution
2019-12-05 22:06:03 -05:00
Qstick
64d949fc96 Fixed: Ensure Fuse Worker is Loaded if Refresh on another page 2019-12-04 22:22:38 -05:00
Qstick
386315ad27 Fixed: Return null if no height on discover/list grid 2019-12-04 22:06:01 -05:00
Qstick
2b518ded37 New: Added version number to backup filename
Co-Authored-By: taloth <taloth@users.noreply.github.com>
2019-12-04 21:30:11 -05:00
Qstick
ecd4cc7b72 Fixed: Handle qBit ForcedDL State
Fixes #3870
2019-12-04 21:16:48 -05:00
Jef LeCompte
86a53141ad Fixed: Handle qBittorrent "moving" state 2019-12-04 21:09:29 -05:00
Qstick
0aa8ac5d39 New: Bump Version to V3 to please the masses 2019-12-04 19:28:34 -05:00
Qstick
29011cac5e New: Combine Solutions via Configurations 2019-12-04 19:28:34 -05:00
geogolem
9f36665d6d Fixed: Add back minimumAvailability for netimport lists (#3916) 2019-12-03 20:56:49 -05:00
ta264
abe7a85a39 Fix: Aphrodite UI enhancements
* New: Display UI before movies have loaded

* Revised webpack bundling

* New: Option for production build with profiling

* Fixed: Faster hasDifferentItems and specialized OrOrder version

* Fixed: Faster movie selector

* Fixed: Speed up release processing, add indices (migration 161)

* Fixed: Use a worker for UI fuzzy search

* Fixed: Don't loop over all movies if we know none selected

* Fixed: Strip UrlBase from UI events before sending to sentry

Should mean that source maps are picked up correctly.

* Better selection of jump bar items

Show first, last and most common items

* Fixed: Don't repeatedly re-render cells

* Rework Movie Index and virtualTable

* Corresponding improvements for AddListMovie and ImportMovie
2019-11-27 09:19:35 -05:00
Qstick
95e5e3132b Fixed: Add filterPredicates for InCinemas and PhysicalRelease
Fixes #3885
2019-11-26 23:02:04 -05:00
Jayden
99bf3cf3ba Fix: Typo in UI dropdown for time format (#3886)
The time format was incorrectly showing the D/M format as DD/MM (25/03 instead of 25/3).
2019-11-24 00:32:16 -05:00
FuNK3Y
fedf2326f0 New: Add TMDB/IMDB url in Kodi metadata 2019-11-17 11:14:31 -05:00
hotio
e8b658646a Update README.md
- updated downloads table
- fixed a few markdown warnings
2019-11-16 07:28:00 -05:00
geogolem
1875391a3a Fix: Movie file count in footer and update movie legend colors 2019-11-15 19:23:33 -05:00
geogolem
15b63778e5 Fix: Net import optimization 2019-11-15 19:20:13 -05:00
geogolem
a06b044342 Fix: use isAvailable to determine if a movie is available. 2019-11-15 19:17:19 -05:00
devbrian
c5d7cf4eeb Fixed: TVDB references in RefreshMovieService.cs 2019-11-12 10:38:59 -05:00
aPinat
8bbec88b6f Fixed: SSL certificate import 2019-11-07 11:17:03 -05:00
Devin Buhl
fc5ab2fd59 New: URL Base support for NZBVortex, Hadouken, qBittorrent and uTorrent 2019-11-07 11:08:32 -05:00
Devin Buhl
003ef8747c Fixed: Updated some strings to Radarr in Download Clients 2019-11-07 10:55:27 -05:00
Devin Buhl
4e07e3bd68 New: Option to send notification when a Health Check warning occurs 2019-11-04 19:50:11 -06:00
Devin Buhl
e0b6bde525 Fixed: Default id for MenuContent 2019-11-04 14:55:06 -05:00
Devin Buhl
ee91cb99ce Fixed: Actually run Recycle Bin cleanup 2019-11-04 14:52:08 -05:00
Devin Buhl
7440ca9ca8 Fixed: Remove parens around year, move path below movie summary 2019-11-03 14:01:24 -05:00
Devin Buhl
238f99c8ca Fixed: Ignore gecko, vscode and Jetbrains files/folders 2019-11-03 12:00:13 -05:00
Devin Buhl
604f45bea4 Fixed: Set id in MenuContent to not required 2019-11-03 11:26:24 -05:00
Devin Buhl
d1a066f601 Fixed: Set year to number instead of string 2019-11-03 11:17:05 -05:00
Devin Buhl
99509e61d3 Fixed: Add Path on Movie Details Page 2019-11-03 11:00:15 -05:00
Devin Buhl
1fe3c81b8d Fixed: Add Year next to Title on Movie Details Page 2019-11-03 10:52:52 -05:00
Devin Buhl
5d7166662c Fixed: Remove extra ; in QualityIndex 2019-11-03 10:00:30 -05:00
Qstick
0d2660ee6c Fixed: Issues with Migration 159, Bad Index, Duplicated WEBDLs 2019-11-02 22:54:44 -04:00
Qstick
f489b6b506 Fixed: Disable some flaky tests on MacOS
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2019-11-02 17:59:36 -04:00
Qstick
c80a492d76 Fixed: Queue Barfs on Null RemoteMovie 2019-11-02 14:11:52 -04:00
Qstick
bbadf3c7e6 Fixed: Quality Parser and Augmenter Picks Wrong Quality 2019-11-02 14:11:52 -04:00
Qstick
5c3fda48f7 New: Custom Formats on Movie Details File Tab 2019-11-01 23:16:52 -04:00
Qstick
2329ec25b9 Fixed: Move Search Tab Filter Menu Up to TabPanel 2019-11-01 23:08:07 -04:00
Qstick
c08ae534c5 Fixed: List Tags and Prevent Delete of Tag if on List 2019-11-01 21:31:47 -04:00
Qstick
816905a506 New: Add Availability Delay to Indexer Options UI 2019-11-01 21:01:02 -04:00
Qstick
3598d6623a Fixed: Update Icon for Windows Tray 2019-11-01 20:56:09 -04:00
Qstick
ae6a95bad8 Fixed: Sort by Monitor-Status Column 2019-10-28 22:58:52 -04:00
Qstick
634697af2d New: Add digits to Deluge's category validator
Co-Authored-By: rbraunschweig <rbraunschweig@users.noreply.github.com>
2019-10-28 22:40:36 -04:00
Qstick
d320f8a713 Updated: XBMC notification strings to Kodi
Co-Authored-By: sirloinofbeef <sirloinofbeef@users.noreply.github.com>
2019-10-28 22:38:03 -04:00
Qstick
b1e3638b34 Fixed: Legend Colors Backward for Missing
Fixes #3846
2019-10-28 22:14:45 -04:00
Qstick
947b9e75db Fixed: Show Cutoff Status on History Items 2019-10-28 22:07:19 -04:00
Qstick
8ad995e56f Fixed: Set Default Sort Key for Blacklist Endpoint 2019-10-28 21:40:52 -04:00
Devin Buhl
96fe74760f Fixed: Instance where Sonarr was used in logging message 2019-10-26 19:58:30 +00:00
Qstick
83eeb747dc Fixed: Status Filter using Series Filter Options 2019-10-26 12:56:00 -04:00
Qstick
bba5b425b3 Fixed: Delete MovieFile from MovieDetails gives 405 2019-10-26 12:29:07 -04:00
Devin Buhl
f6eb6666c2 Fixed: Trakt link for movies instead of series 2019-10-26 15:57:09 +00:00
Qstick
ee7e507cde Fixed: History should reload on MovieDetail Movie Change 2019-10-24 22:51:30 -04:00
Qstick
162980ccaf Fixed: Remove Series Related Cal Setting 2019-10-24 22:33:47 -04:00
Qstick
8e54809c79 Fixed: Audio and Video Columns Switched for MovieFileTable 2019-10-24 19:28:54 -04:00
Qstick
abc6e28401 Fixed: Poster placeholder to new logo 2019-10-22 23:48:21 -04:00
Qstick
567824ebec New: Show Custom Formats on Queue Page 2019-10-22 21:07:11 -04:00
Qstick
e827a965ad New: Show Custom Formats on Blacklist Page 2019-10-22 21:02:50 -04:00
Qstick
215d5069a9 New: Show Custom Formats on History Page 2019-10-22 21:00:55 -04:00
Qstick
fb4aa58a75 Fixed: Add Delete Button to Custom Formats 2019-10-22 20:51:57 -04:00
Qstick
dd00c9b53e Fixed: Remove Plist Fix to prevent Linux Core update failures 2019-10-21 19:34:26 -04:00
Qstick
3c380954ec Fixed: Missing Movie Search from Index Null Ref 2019-10-21 09:43:39 -04:00
Qstick
136432d098 Fixed: No newline on MediaInfoPopover 2019-10-19 19:07:41 -04:00
Qstick
1920bd53b6 New: Mediainfo Popover for Movie Files 2019-10-18 22:57:11 -04:00
Qstick
ac8a7a9254 Fixed: Match Filter Indicator to Theme Color 2019-10-18 21:34:44 -04:00
Qstick
0039c1c393 New: Show CustomFormats on Interactive Search Results 2019-10-18 21:11:55 -04:00
Qstick
02efc655f9 Fixed: Remove Not-So-Great Parser Case 2019-10-17 23:37:34 -04:00
Qstick
f43210d3d0 Fixed: Default RequireFlags Value (AKA Give torrent guys back their indexers) 2019-10-17 23:06:01 -04:00
Qstick
67dffcdc69 Fixed: 4K and Remux Parser Tweaks 2019-10-16 22:19:39 -04:00
ta264
36ab3ecf71 Fixed: Removed unused references to System.Drawing 2019-10-16 15:25:35 -04:00
ta264
e1b0dd00bb Fixed: Don't publish self contained tests 2019-10-16 15:25:35 -04:00
ta264
37a39d1624 Fixed: Make ProcessProvider tests more reliable 2019-10-16 15:25:35 -04:00
ta264
9fe978319e Fixed: Don't load Radarr.Core.dll as part of Radarr.Update 2019-10-16 15:25:35 -04:00
ta264
2a15113a74 Fixed: MultiLanguages definition 2019-10-15 20:22:50 -04:00
ta264
b5b43b8b3f Changed: Align GetValueOrDefault extension with netcore3.0 version
- netcore3.0 implements the extenion on IReadOnlyDictionary.
 - Dictionary implements both IReadonlyDictionary and IDictionary and
   so defining the extenion on both interfaces creates an ambiguous
   reference
 - IDictionary doesn't inherit from IReadOnlyDictionary

Either we have to add 'using NzbDrone.Common.Extenions;'
separately to resolve the ambiguity or we have to standardaize on only
having the extension on IReadOnlyDictionary.
2019-10-15 20:22:50 -04:00
ta264
057829c3b0 New: Multi target net framework 4.6.2 and net core 3.0 2019-10-15 20:22:50 -04:00
ta264
d0f13e16d5 Fixed: All compiler warnings 2019-10-15 20:22:50 -04:00
ta264
abde842bf0 Fixed: Remove obsolete HttpProvider 2019-10-15 20:22:50 -04:00
ta264
cf33e40e70 Fixed: Remove obsolete Plex HomeTheater/Client notifcations 2019-10-15 20:22:50 -04:00
ta264
1b34780b7e Fixed: Remove obsolete XBMC HTTP notification API 2019-10-15 20:22:50 -04:00
ta264
53ffc9867c New: Update Unity 2019-10-15 20:22:50 -04:00
ta264
8b9d64b15a Changed: Remove growl and prowl 2019-10-15 20:22:50 -04:00
ta264
350dfeabba New: Make Twitter NetStandard compatible 2019-10-15 20:22:50 -04:00
ta264
b0cbd6c6bf Net standard XMLRPC 2019-10-15 20:22:50 -04:00
ta264
70c1722ef2 New: Upgrade Ical.Net to 4.1.11 2019-10-15 20:22:50 -04:00
Qstick
225430162b Fixed: ImageResizer Tweaks
Co-Authored-By: taloth <taloth@users.noreply.github.com>
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2019-10-15 20:22:50 -04:00
ta264
bc0cc2bfa9 New: Use ImageSharp for resizing 2019-10-15 20:22:50 -04:00
ta264
c85d3119f9 Convert Interop.NetFwTypeLib to AnyCPU 2019-10-15 20:22:50 -04:00
ta264
5c07b39b04 Fixed: Convert MonoOnly to PosixOnly 2019-10-15 20:22:50 -04:00
ta264
2b39865251 Update FluentMigrator to v4 2019-10-15 20:22:50 -04:00
ta264
ca9d9f093c Fixed: Remove bad binding redirects in csproj 2019-10-15 20:22:50 -04:00
ta264
0b7c00bfe6 Improve pipeline and build 2019-10-15 20:22:50 -04:00
ta264
6ef388e258 Run integration tests for various mono versions 2019-10-15 20:22:50 -04:00
ta264
fb5b9c445b New: Switch to ASPNetCore Kestrel and SignalR 2019-10-15 20:22:50 -04:00
ta264
fdbed91a4e New: Use sqlite package from Lidarr 2019-10-15 20:22:50 -04:00
ta264
0b0d0a7353 New: Use dotnet tooling, produce 64bit build on windows 2019-10-15 20:22:50 -04:00
ta264
304382f406 Fixed: Integration tests on Mono 5.12 and 5.14
Mono 5.12 and 5.14 has a bug that means RestSharp can't handle non-200
responses.  Fix status api call so tests start and disable the tests
that use non-200 responses on these mono versions
2019-10-15 20:22:50 -04:00
Taloth Saldono
97de1b4622 Moved Platform version determination to static 2019-10-15 20:22:50 -04:00
ta264
24f1b5c0a7 Fixed: CommandExecutorFixture flakiness 2019-10-15 20:22:50 -04:00
ta264
532190ef4b Fix integration tests on linux with debug build 2019-10-15 20:22:50 -04:00
ta264
779809b78b Fixed: Normalize all line endings to LF in repo 2019-10-15 20:22:50 -04:00
ta264
9f07b65877 Fix .gitattributes 2019-10-15 20:22:50 -04:00
Qstick
1514613f61 New: Added MinAvailability Option to UI 2019-10-10 23:20:48 -04:00
Qstick
5eb7fe958f Fixed: Calendar Missing Search Not Functional, Other Tweaks 2019-10-10 21:45:27 -04:00
Qstick
24fa77e7b2 Fixed: Queue Selector Looking for Episodes not Movies 2019-10-10 21:45:00 -04:00
Qstick
9ae411802d Fixed: Hide Profile Delete if Used by List 2019-10-10 21:42:56 -04:00
Qstick
1a3e0a3163 New: Indicator when Filter is applied 2019-10-09 22:48:43 -04:00
Qstick
6e601ede37 Fixed: Custom Format Edit Modal Huge Size 2019-10-09 22:20:43 -04:00
Qstick
9bbd314452 Fixed: PageHeader Action Hover Color 2019-10-09 22:11:39 -04:00
Qstick
b40c63dcfe Fixed: Logo Changes 2019-10-09 22:11:08 -04:00
Qstick
21ed073f29 New: Add List and Discovery Pages (#3803) 2019-10-05 23:21:55 -04:00
Qstick
5f396a53c3 New: Parse VFI as French 2019-10-05 18:45:35 -04:00
Qstick
a368cbd265 Fixed: Hookup BulkMovieMovieCommand 2019-10-05 18:27:22 -04:00
Qstick
a2cad761b9 Fixed: Status Cell Working 2019-10-03 21:42:22 -04:00
Qstick
2af273a4a1 Fixed: Update Test Fails Due to Throw Elimination 2019-10-03 20:48:34 -04:00
Qstick
01f2f754ea New: First Pass Movie Index Status Cell 2019-10-01 22:16:16 -04:00
Qstick
1b6e6f80b6 Fixed: Index Table Status shows Correct Icons 2019-10-01 21:12:15 -04:00
Qstick
de7d6c68b8 Fixed: Log, Don't throw when trying update in docker 2019-09-30 20:46:47 -04:00
Qstick
31c73fe448 Changed: Add ChannelPositionText to SentryWarn 2019-09-30 20:46:22 -04:00
Qstick
526e091d22 Fixed: Provider HealthChecks persist after add until next scheduled check. 2019-09-30 19:44:23 -04:00
Taloth Saldono
40736336db Fixed: Root Folder display when free diskspace cannot be determined (FreeBSD)
closes #3275
2019-09-30 19:33:57 -04:00
Qstick
f2200f793d Fixed: Quality Finder Tweaks 2019-09-29 16:27:54 -04:00
Qstick
7fd391259c Fixed: Movie Path UI Warning, Duplicate Import Fixes 2019-09-29 16:27:30 -04:00
Qstick
b225435164 Fixed: Language Column not shown in Queue 2019-09-29 15:11:08 -04:00
Leonardo Galli
be3152e630 Fixed: When refreshing info about a movie, the alt titles should now correctly be deleted / updated, even from TMDB. (#3603)
* Fixed: When refreshing info about a movie, the alt titles should now correctly be deleted / updated, even from TMDB.
Fixes #3542

* Fixed: Small things fixup.
2019-09-28 22:59:51 -04:00
Qstick
bd374825f1 Fixed: Logging Statements and Tests 2019-09-28 22:39:09 -04:00
Qstick
f395117885 Fixed: More Sentry Filtering 2019-09-26 21:41:52 -04:00
Qstick
ae9c2dd830 New: Log Sentry Warn if AudioChannelPositions Error 2019-09-26 21:31:46 -04:00
Qstick
923db77751 Fixed: Show Year in Manual Import List 2019-09-23 22:25:49 -04:00
Qstick
78cac9fcfa Fixed: Use Modifier in Quality Aggregation 2019-09-23 22:10:51 -04:00
Qstick
5fe8884471 Fixed: Prevent NRE in MovieSearchService
Fixes #3728
2019-09-21 16:10:09 -04:00
Qstick
fb8143bb49 Fixed: MigrationVersion not passed to UI 2019-09-21 15:42:32 -04:00
Qstick
90e58e5a22 Fixed: Add List Exclusion from Movie Editor
Fixes #3775
2019-09-21 15:40:26 -04:00
Qstick
254561aeb1 Fixed: Register Null Target for Sentry logs in Tests 2019-09-21 14:54:13 -04:00
Taloth Saldono
9a25878104 And a bunch of video codecs. Also fixed the dual-video channel issue. 2019-09-21 14:39:23 -04:00
Taloth Saldono
54cfabec5c New: Additional Atmos detection in MediaInfo
ref Radarr/Radarr#3712
2019-09-21 14:38:27 -04:00
Qstick
7dc629a647 Fixed: Rework Multiple Logging Statements 2019-09-21 14:35:07 -04:00
Qstick
cbb2802383 Fixed: TrackedDownload Logging Statement 2019-09-14 18:49:32 -04:00
Qstick
fd2399d589 Fixed: Update Movie Libraries in Plex not Series Libraries 2019-09-10 19:22:13 -04:00
Qstick
33d012cfc0 Fixed: Quality Definitions Don't Allow Save 2019-09-08 23:27:33 -04:00
Qstick
066bf1220f Fixed: Flaky IndexerStatusTimes Test 2019-09-08 22:29:57 -04:00
Qstick
fd87be6d1e New: FutureDownloadClient Housekeeper Tests 2019-09-08 22:17:56 -04:00
Qstick
fe591816bb Fixed: Remove TitleSlugRoute 2019-09-08 22:00:15 -04:00
ta264
98d987869c Changed: Point at lidarr hosted update server 2019-09-08 21:42:18 -04:00
ta264
e10e5802f4 Fixed: Don't delete folder if indeterminate sample detected 2019-09-08 21:42:03 -04:00
ta264
fd5113744f Fixed: Various tests 2019-09-08 21:41:24 -04:00
Taloth Saldono
a22c946276 Fixed third-party clients calling api without Accept header 2019-09-08 20:53:37 -04:00
Taloth Saldono
a862337ead Removed obsolete code. 2019-09-08 20:53:37 -04:00
ta264
79cf3079c3 Updated Nancy to 2.0 2019-09-08 20:53:37 -04:00
Taloth Saldono
6c4e3b1fd5 New: Added Auth-* log entries for fail2ban purposes 2019-09-08 20:53:37 -04:00
ta264
1368c7c6e3 Emacs gitignore 2019-09-08 20:53:37 -04:00
Qstick
cb158028df Fixed: Old API use with Ombi causing NREs 2019-09-07 21:58:45 -04:00
Qstick
8f72bd5e69 Fixed: Sentry SourceMaps for Aphrodite 2019-09-04 00:28:53 -04:00
Qstick
793b723942 New: Update SQLite to 3.28.0 and System.Data.SQLite to 1.0.111.0 2019-09-03 23:21:15 -04:00
Qstick
7f221c7834 Fixed: Automation/Integration/Unit Tests 2019-09-03 23:21:15 -04:00
Qstick
944f420270 New: Build on Azure Pipeline
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2019-09-03 23:21:15 -04:00
Qstick
b89c7b8675 New: Convert to New CSProj Format
Co-Authored-By: taloth <taloth@users.noreply.github.com>
2019-09-03 23:21:15 -04:00
Qstick
a3525252b7 Fixed: Log statement in movie rename service 2019-09-02 11:55:02 -04:00
Qstick
b42004b32c Fixed: Another Log Statement duplicating on Sentry 2019-09-01 10:52:01 -04:00
Qstick
b2268c7452 New: Get Custom Formats Working in Aphrodite 2019-08-31 15:54:33 -04:00
Qstick
86dde88fe6 Fixed: Re-DSN after log fix 2019-08-31 14:36:34 -04:00
Qstick
ab7083d263 Fixed: Spec Logging Statement Causing Sentry Duplicates 2019-08-30 23:37:05 -04:00
Qstick
9ad17a04ff Fixed: Null Ref in UpgradeSpecification 2019-08-30 23:29:04 -04:00
Qstick
23670bca12 New: Upstream Updates
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2019-08-30 22:50:03 -04:00
Qstick
bfc467dd96 New: Use MediaInfo on File Parsing 2019-08-25 15:08:25 -04:00
Qstick
ada9b944dc Fixed: QueueSpecificationFixture Test 2019-08-06 22:44:36 -04:00
Qstick
f6b4a463b1 New: Remove Unused TinyTwitter Nuget Package 2019-08-06 22:27:47 -04:00
Qstick
d53320779c New: Update NLog to 4.6.6 2019-08-06 22:25:21 -04:00
Qstick
71c398f0fc New: Enable Sentry Analytics (#3669) 2019-08-06 22:20:47 -04:00
Qstick
64ec751938 Fixed: Theme color for poster control background 2019-08-05 22:35:31 -04:00
Qstick
08b642575f Fixed: Rejoin MovieFiles to Movies to fix Cutoff short term 2019-08-05 22:13:03 -04:00
Qstick
fee8244a74 Fixed: MovieDetails Files Table not reflecting cutoff status 2019-08-05 21:01:03 -04:00
Qstick
328477a1c6 New: Required/Ignored restrictions now support /pattern/ regular expressions
Co-Authored-By: taloth <taloth@users.noreply.github.com>
2019-08-05 20:47:46 -04:00
Qstick
a771871cf8 Fixed: Protect Queue Specification from NRE
Fixes #3665
2019-08-05 20:40:05 -04:00
Qstick
1cde85bba8 New: Update Frontend Packages 2019-07-27 01:33:33 -04:00
Qstick
6288936fe2 Fixed: Calendar Items Show on Correct Day 2019-07-27 00:56:07 -04:00
Qstick
582402d45e Fixed: MediaInfo Improvements, Tests 2019-07-27 00:33:04 -04:00
Qstick
5657a4df9c Revert "Fixed: Additional FileNameBuilder Tests, {MediaInfo SubtitleLanguagesAll} Token"
This reverts commit 865b587bdd.
2019-07-26 23:54:49 -04:00
Taloth Saldono
865b587bdd Fixed: Additional FileNameBuilder Tests, {MediaInfo SubtitleLanguagesAll} Token 2019-07-26 23:22:10 -04:00
Taloth Saldono
b179be78db Fixed: Heavy qbit api load when CDH Remove is disabled
Co-Authored-By: taloth <taloth@users.noreply.github.com>
2019-07-26 22:44:22 -04:00
Qstick
5f7c7ee809 Fixed: Include HDR is naming examples
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2019-07-26 22:41:32 -04:00
Qstick
fb604483ce Changed: Default to System Tray for Windows installer
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2019-07-26 22:38:00 -04:00
Qstick
6510e2c898 Fixed: Parsing BD release group as Bluray quality
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2019-07-26 22:34:07 -04:00
Qstick
e3040ad2e1 Fixed: stylelint errors 2019-07-26 22:30:17 -04:00
Qstick
032b1e7a03 New: Add warning to remove from queue dialog
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2019-07-26 22:27:55 -04:00
Mark McDowall
7189719e6f Darker border for calendar 2019-07-26 22:25:01 -04:00
Mark McDowall
6a68e5ca92 New: Wider and taller scroll bar for the click to scrollers out there 2019-07-26 22:22:43 -04:00
Mark McDowall
a3e312b368 Fixed: Custom Filter improvements 2019-07-26 22:21:47 -04:00
Taloth Saldono
895abe8c3b Fixed: Workaround for mono 5.16+ bug preventing the closure of sockets on timeouts (Jackett connections)
ref #2802
2019-07-26 22:16:48 -04:00
Taloth Saldono
ae47ee817f Fixed: Executing powershell and python scripts directly in Connect->Custom Scripts 2019-07-26 22:13:02 -04:00
Qstick
6c84518b40 New: Improve logging when checking if release is an upgrade
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2019-07-26 22:09:46 -04:00
Qstick
3ba72fd33b New: Treat WEBMux as WebRip
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2019-07-26 22:05:04 -04:00
Qstick
c4e01c2020 New: Improve help text for extra file importing
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2019-07-26 21:59:27 -04:00
Mark McDowall
80715f5e58 Fixed: oAuth actions in UI
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2019-07-26 21:57:58 -04:00
Mark McDowall
f868e8b964 Fixed: Add Tests for FirstCharTo 2019-07-26 21:49:49 -04:00
Qstick
4af18f7d4a Fixed: Some History Events don't Save Due to Languages 2019-07-25 22:52:33 -04:00
Qstick
2758adcc8c Fixed: Queue/History take two clicks to load, We don't wait on Episode Fetch 2019-07-25 22:52:03 -04:00
Qstick
b6c1c81152 New: Add Release Date and Cinema Date to Custom Script 2019-07-25 22:40:52 -04:00
Qstick
d263ff9a6b Fixed: Wanted/Cutoff Search from Index Page 2019-07-25 22:34:24 -04:00
Qstick
6705b59b23 Fixed: Renaming Files Command Doesn't Resolve 2019-07-25 21:11:12 -04:00
Qstick
fbc2566f70 New: Smart Filter Options for Studios in MovieIndex 2019-07-16 22:58:01 -04:00
Qstick
ed24cd5b52 Fixed: Movie Editor RootFolders, SelectedState persisting editor toggle 2019-07-16 22:23:10 -04:00
Qstick
a6eb89e24b Fixed: Manual Search on Works with Auto Search is Enabled 2019-07-15 22:41:43 -04:00
Qstick
242d530bb4 Fixed: Unit Test Fixes 2019-07-14 21:18:03 -04:00
Qstick
3bf5476922 Fixed: Correctly handle Repacks, restrict to same group 2019-07-12 23:56:58 -04:00
Qstick
7698ae00dd Fixed: Misc UI/Test Fixes 2019-07-12 23:15:13 -04:00
Qstick
a20222fbef New: Movie Editor in Movie Index (#3606)
* Fixed: Movie Editor in Movie Index

* Fixed: CSS Style Issues

* Fixed: Ensure only items shown are selected

* Fixed: Cleanup and Rename from Editor
2019-07-12 20:40:37 -04:00
Qstick
b8f7ca0749 Fixed: DiskScanService Updates 2019-07-09 23:14:53 -04:00
Qstick
612d948eba Fixed: Some Tests and Added New Ones 2019-07-09 22:05:32 -04:00
Qstick
a3f72bd4a0 Fixed: Ambiguous Id in Movies SQL call 2019-07-06 17:36:58 -04:00
Qstick
2d15b8b78a Fixed: Remove redundant checks from list sync 2019-07-06 17:36:58 -04:00
devbrian
12fba024f0 Fixed: Movie Details Tab (#3564)
* History Added

* History Cleanup

* History Mark Failed Fix

* History Lint Fix

* Search Tab Initial

* Interactive Search Cleanup

* Files Tab + Small Backend change to MovieFile api

* Reverse Movie History Items

* Grabbed files are not grabbable again.

* Partial movie title outline + Search not updating fix

* Lint Fix + InteractiveSearch refactor

* Rename movieLanguage.js to MovieLanguage.js

* Fixes for qstick's comments

* Rename language selector to allow for const languages

* Qstick comment changes.

* Activity Tabs - Language Column fixed

* Movie Details - MoveStatusLabel fixed

* Spaces + Lower Case added

* fixed DownloadAllowed

* Added padding to history and file tables

* Fix class =>  className

* Updated search to not refresh unless switching movie

* lint fix

* File Tab Converted to Inline Editting

* FIles tab fix + Alt Titles tab implemented

* lint fix

* Cleanup via qstick request
2019-07-06 09:47:11 -04:00
Qstick
06b1c03053 Fixed: List Exclusions, List Processing Tweaks 2019-07-05 22:26:16 -04:00
Qstick
ed0e69de53 Fixed: Return all movie categories for RARBG
Co-Authored-By: FuNK3Y <funk3y@users.noreply.github.com>
2019-07-05 16:01:07 -04:00
Qstick
d86c811543 Fixed: Alt Titles on Main Load, Alt Titles API updates 2019-07-02 21:45:55 -04:00
Qstick
ac59b7060e New: Store Genre in DB for use in UI 2019-06-30 22:45:31 -04:00
Qstick
b1d69e3949 Fixed: Queue Error on Unknown Items 2019-06-30 22:11:15 -04:00
Qstick
91ab518dfb Fixed: Backend Updates from Sonarr
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Co-Authored-By: taloth <taloth@users.noreply.github.com>
2019-06-30 21:50:01 -04:00
Qstick
d178dce0d3 Fixed: Backend/Frontend Cleanup 2019-06-30 00:58:54 -04:00
Qstick
286f73f38d Fixed: Refresh Indicator always spinning after refresh 2019-06-29 22:26:02 -04:00
Qstick
7760248e6b Fixed: Adjust how often info is refreshed for old movies 2019-06-29 21:44:43 -04:00
Qstick
4ddadd9a0d Fixed: Delete and Restore of Backups from UI 2019-06-29 21:38:11 -04:00
Qstick
722a996ad3 Fixed: Import not working due to Language constraint 2019-06-18 23:02:26 -04:00
Qstick
9350f6a04c Fixed: Changes to Profiles, Languages, Manual Import 2019-06-18 22:50:17 -04:00
Qstick
c76364a891 Fixed: Update Unit Tests for Indexers/Clients 2019-06-16 22:18:32 -04:00
Qstick
8a9e2dc90d New: Loads of Backend Updates to Clients and Indexers 2019-06-16 16:04:38 -04:00
Qstick
c48838e5b6 Fixed: Linting errors and Appveyor not triggering on frontend changes 2019-06-12 20:34:30 -04:00
Qstick
16ff1176f7 Fixed: Quality Groups and Profiles 2019-06-11 22:07:34 -04:00
Qstick
6275737ced New: Many UI Updates and Performance Tweaks 2019-06-11 22:07:34 -04:00
Taloth Saldono
b24a40797f Fixed: SignalR requiring a home directory to function properly. 2019-06-11 22:07:34 -04:00
Qstick
5f2af81dda New: Bump gulp-livereload to avoid event-stream issue 2019-06-11 22:07:34 -04:00
Leonardo Galli
b35d0b3f6a Added: Development Description. 2019-06-11 22:07:34 -04:00
Qstick
9ba2c8e53d New: Bump UglifyJS to 1.3.0 to fix production build 2019-06-11 22:07:34 -04:00
Qstick
4d3bfe3cf2 New: Remove old UI 2019-06-11 22:07:33 -04:00
Qstick
ac0d1c92c3 New: Tooling changes for UI 2019-06-11 22:06:43 -04:00
Qstick
8430cb40ab New: Project Aphrodite 2019-06-11 22:06:43 -04:00
Qstick
65efa15551 New: Backend changes for new UI 2019-06-11 22:06:19 -04:00
Qstick
e9eebd3ce6 New: Update SignalR, Nancy, Owin. Enable Websockets 2019-06-11 22:06:19 -04:00
Qstick
aef89160e2 Added: Platform Detection Improvements 2019-06-11 22:06:19 -04:00
Qstick
ea5ad24944 New: Re-target to .net 4.6.1 2019-06-11 22:06:19 -04:00
Daniel Dammermann
61066cb6cf Fixed: Library shown as empty after filter returns no movies and page is refreshed (#3515)
Fixes #3514
2019-05-30 20:31:31 +02:00
Leonardo Galli
2f76f3c6b6 Create FUNDING.yml 2019-05-30 00:34:57 +02:00
Leonardo Galli
7756b03555 Fixed: a after a shortened word is not removed correctly for matching. Fixes ##3487 2019-05-02 13:18:28 +02:00
Leonardo Galli
5faaffc9c6 @cosmetic updated changelog 2019-05-02 13:05:35 +02:00
Ricardo Amaral
7a43bf3f60 Added: Tags support to NetImport (Lists) (#3127)
* Add tags support to NetImport (Lists)

* Keep indentation consistent with current code

* Initialize set of empty tags

* Add tags from list to movie

* Prevent tags used by lists from being removed
2019-05-02 12:57:40 +02:00
RhinoRhys
84fab25af7 Changed: Improved templates for h264 & h265 custom formats (#3432)
* Update CustomFormatService.cs

resolves #3419

* Update CustomFormatService.cs

* Update CustomFormatService.cs
2019-05-02 12:55:48 +02:00
jwildman16
52520e356d Changed: Logo-256.png to a transparent version so it looks better in Android notifications. (#3479) 2019-05-02 12:55:01 +02:00
Logan
cc44d022b3 Added: Radarr_Download_Id and Radarr_Download_Client to the environment (#3276)
Fixes #3232
2019-05-02 12:52:33 +02:00
Steven Crouchman
f411903e90 New: Allow CheckForFinishedDownloadInterval to be set from the UI (#3233)
* Adding CheckForFinishedDownloadInterval to config service
Changed TaskManager to use a configurable interval for CheckForFinishedDownloadCommand

* Adding new CheckForFinishedDownloadInterval to UI

Fixes #840
2019-05-02 12:51:21 +02:00
stephanrenggli
9985554dcb New: Added support for Gotify notifications (#3474)
* Added support for Gotify notifications

* Use string interpolation to build url

* Adapt changes by markus101 over at Sonarr

* Remove blank line

Fixes #3472
2019-05-02 12:49:21 +02:00
Viserius
f8c009a348 Fixed: Solve ambiguous naming (#3417) 2019-05-02 12:40:51 +02:00
Michael Poutre
da012eb6b5 Fixed: Copy to clipboard not working with calendar feed (#3495)
* Replace flash clipboard implementation with document.execute("copy")

Fixes #3486

* Replace flash clipboard implementation with document.execCommand("copy")

Resolves Radarr/Radarr#3486
2019-05-02 12:38:00 +02:00
RobinQ124274
c79578e99f Added: Remote poster and fanart references to Kodi metadata file (#2837) (#3302)
* Added: Remote poster and fanart references to Kodi metadata file (#2837)

* Added: Null checks to Remote poster and fanart references to Kodi metadata file (#2837)
2019-04-27 19:33:06 -04:00
Leonardo Galli
961fe70cb8 @cosmetic Hopefully fixed nunit randomly failing. (updated nunit and mono) 2019-03-19 11:34:03 +01:00
Qstick
65267af512 Fixed: Edition Tags Not Showing in UI (#3389) 2019-03-19 11:08:15 +01:00
Qstick
ac387f208a Fixed: Support new feed url format IPTorrents (#573) (#3390) 2019-03-19 11:03:40 +01:00
Qstick
80304d8804 New: Support Krypton Kodi Unique Ids (#3388) 2019-03-19 11:03:20 +01:00
Qstick
cafb1a5a45 Changed: Adjust Max Slider Value for Qualities (#3393) 2019-03-19 10:59:57 +01:00
hotio
feef9b1b8d Update README.md (#3409)
Update outdated suitarr info.
2019-03-19 10:56:26 +01:00
Leonardo Galli
4aec27890c Fixed: MediaCovers Race condition which leads to fanart not being downloaded
Fixes #3350
2019-02-24 19:54:02 +01:00
Qstick
58ae4417df Fixed: Cannot Add ITA or ITALIAN custom format (#3385)
Fixes #3253
2019-02-24 18:26:20 +01:00
Qstick
6287bfd9d9 New: Nzb Validation and Nzbget/SAB URLBase (#3380) 2019-02-24 18:16:12 +01:00
Leonardo Galli
5f139c0cb6 Fixed: OsInfo for real this time. 2019-02-24 18:11:42 +01:00
Qstick
6cf257ac01 Fixed: Error in unicode cleanup code removing most non-latin characters instead of just invalid ones. (#3383) 2019-02-24 18:08:28 +01:00
Qstick
5cb5faa8a3 Fixed: Forced Subs not parsed by SubtitleLanguageRegex (#3384)
Fixes #2908
2019-02-24 18:07:48 +01:00
Leonardo Galli
a28f2fd21d Fixed: OsInfo being renamed to PlatformInfo 2019-02-24 18:06:48 +01:00
Qstick
dbf12e1fa4 Fixed: Word Boundary on Edition (#3382) 2019-02-24 18:03:42 +01:00
Václav Slavík
264629cfa5 Fixed: Mis-classification of releases as being Czech (#3378)
After the changes from PR #2948, the regex was too eager to match any
substring contain "SK", such as in "MASK". Fix by requiring word
separation around it, as was already the case with the "CZ" token.
2019-02-24 18:00:04 +01:00
Pieter Janssens
53f49f3b07 Fixed: Match MBluray releases (#3358) 2019-02-24 17:59:25 +01:00
Leonardo Galli
a26016fc08 Fixed: Mono bug causing memory leakage when http connections use gzip compression.
The bug is registered upstream, but this commit works around the problem by doing the gzip decompression separately from the http stack.

Ref #2296
2019-02-24 17:58:19 +01:00
Leonardo Galli
bd969e0bc3 Fixed: Build errors due to dotnet library. 2019-02-24 00:34:23 +01:00
hatharry
3e96fe4a72 Fixed: Emby library update (#3318)
Fixes: #3158
2019-02-18 11:12:34 +01:00
tobsen987
19299ad47f Fixed: Prevent NullRef in CustomScript on Grab for Indexer (#3323)
fixes #3313
2019-02-18 11:10:22 +01:00
Leonardo Galli
8902a3ca44 @cosmetic removed deploy 2019-02-18 11:07:51 +01:00
Leonardo Galli
4015ff08a6 @cosmetic Added Parsing Library: A dotnet library that "exports" our parsing interface. 2019-02-18 00:09:41 +01:00
Leonardo Galli
9bc50749ae Update README.md 2019-01-31 11:41:07 +01:00
Leonardo Galli
34271605c3 @cosmetic Merge pull request #3339 from hotio/patch-2
Update docker link in README
2019-01-31 11:31:26 +01:00
hotio
8272a160d2 Update docker link in README 2019-01-28 10:20:42 +01:00
Leonardo Galli
e7ad09cf62 Fixed: Hopefully fixed sqlite errors when finding by title. 2019-01-10 16:07:41 +01:00
Leonardo Galli
420cbf6dd0 @cosmetic updated changelog. 2019-01-10 08:39:13 +01:00
Leonardo Galli
02eb30b8ee Fixed: A lot of memory issues, such as IDisposable leakage and leaking all the media covers. (#3227)
Thanks again to @Taloth
2019-01-10 08:36:34 +01:00
Leonardo Galli
49b1f2a67d New: Use APIKey & APIUser for authenticating to PassThePopcorn. (#3264) 2018-12-30 14:17:26 +01:00
Swizzy
7c90667965 Added: Support for forcedUP status (#3277)
Also added a warning message upon hitting new unknown states so that they can be handled properly at some point
2018-12-30 14:17:03 +01:00
Leonardo Galli
6d3cff85ae Fixed: Unable to parse movies from 1800s.
Fixes #3271
2018-12-30 13:55:45 +01:00
Leonardo Galli
b9aba5f424 @cosmetic Updated readme to include roadmap. 2018-12-30 13:32:56 +01:00
Leonardo Galli
47b481e797 Fixed: OSX Packages not getting correct version info
Fixes #3274
2018-12-30 13:29:44 +01:00
Taloth Saldono
3ef224ed1d Fixed: Another IDisposable leak when lazy loading properties. 2018-12-26 15:50:06 +01:00
Leonardo Galli
44b1252ecc Fixed: npm start not working with node 10
Fixes #3258
2018-12-24 15:56:53 +01:00
Leonardo Galli
44842a4e6b Fixed: Hopefully fixed issue where a null downloadId or title would cause no downloads to be tracked.
Fixes #3260
2018-12-24 14:49:33 +01:00
Leonardo Galli
cd520b0341 Fixed: MediaCoverService tests and stupidly forgetting to open the database connection for logging. 2018-12-14 18:48:36 +01:00
Leonardo Galli
fed4a0aebe Fixed: MediaCovers resizing potentially leaking memory when concurrently executing. 2018-12-14 09:55:14 +01:00
lps-rocks
ff894d5210 New: rTorrent - Don't start download automatically (#3222) 2018-12-07 11:26:26 +01:00
Qstick
92b5822a39 New: Remove Pre, postbot, xpost suffixes from release groups (#3220) 2018-12-07 11:22:06 +01:00
Qstick
cbdea30a6e New: Secure URLs for Links and Services (#3219) 2018-12-07 11:21:43 +01:00
Qstick
969ef5c515 Fixed: Bump default version to prevent update running from source (#3199) 2018-12-07 11:20:54 +01:00
Qstick
5b52115d68 Fixed: MediaInfo Unit Test Failing due to AudioAdditionalFeatures (#3221) 2018-12-06 12:59:02 +01:00
Leonardo Galli
899bd086ec Fixed: Stream leakage inside CurlHttpDispatcher 2018-12-02 19:24:16 +01:00
Leonardo Galli
d02d71c336 Fixed: Apparently Microsoft thinks that you should cast to IDisposable first. 2018-12-02 19:04:28 +01:00
Leonardo Galli
d4061bd13c Fixed: Invalid SQLite cache size. 2018-12-02 18:22:18 +01:00
Leonardo Galli
c83995adc1 Fixed: Resource leakage inside HttpClient. 2018-12-02 18:16:05 +01:00
Leonardo Galli
df18c34878 Fixed: Typo that could probably lead to an infinite loop. 2018-12-02 18:14:52 +01:00
Leonardo Galli
eb077b043e Fixed: Resource leakage inside ManagedHttpDispatcher. 2018-12-02 18:14:21 +01:00
Leonardo Galli
42015d5d95 Fixed: Leaking of objects when logging something to the database. 2018-12-02 18:12:03 +01:00
Leonardo Galli
09899fcf6c Fixed: DataMapper potentially leaking stuff when being disposed. 2018-12-02 18:10:57 +01:00
Leonardo Galli
8e7b718209 Fixed: DataMapper not being disposed, leading to resource leakage. 2018-12-02 18:10:14 +01:00
Leonardo Galli
d38562664d Fixed: Memory leak due to unmanaged Bitmaps leaking. 2018-12-02 17:59:15 +01:00
Leonardo Galli
77950645af @cosmetic add yarn to circleci image 2018-11-25 01:03:50 +01:00
Leonardo Galli
60a9be71bc @cosmetic fix deploy 2018-11-24 19:54:36 +01:00
Leonardo Galli
49ee288dae @cosmetic forgot this 2018-11-24 19:47:37 +01:00
Leonardo Galli
443995cd93 Merge branch 'develop' of https://github.com/Radarr/Radarr into develop 2018-11-24 19:20:02 +01:00
Leonardo Galli
1456200717 @cosmetic added auto deploy for prs and branch builds 2018-11-24 19:19:53 +01:00
Leonardo Galli
28155b09a0 @cosmetic Hopefully made circle ci artifacts compatible with hotios docker 2018-11-24 16:31:53 +01:00
Leonardo Galli
9ba1d26f05 @cosmetic updated release changelog templates. 2018-11-20 11:18:55 +01:00
Leonardo Galli
e0e531c287 @cosmetic Updated changelog. 2018-11-07 20:59:37 +01:00
Ricardo Amaral
5d0effa591 Fixed: Fallback to 'VideoCodec' if 'VideoFormat' is unavailable (#3142) 2018-11-07 20:57:49 +01:00
Ricardo Amaral
e62b6d1ddb Fixed: Read video 'BitRate_Nominal' if 'BitRate' is empty (#3144) 2018-11-07 20:55:47 +01:00
Leonardo Galli
34c838fdd5 Fixed: UpdateMovieQualityService Tests. 2018-11-07 20:50:00 +01:00
geogolem
4283de1e9e change 64bit mediainfo.dll to 32bit to resolve
issue: https://github.com/Radarr/Radarr/issues/3138
2018-10-31 00:43:01 -04:00
Ricardo Amaral
821653b941 Fixed: Ignore "special drives" from System » Disk Space (#3050)
Fixes #3045, fixes #3122.
2018-10-30 22:07:51 +01:00
Ricardo Amaral
2da1d9f105 Fixed: Tweak style of movie path template on "add movies" screen (#3108) 2018-10-30 22:06:32 +01:00
Ricardo Amaral
97f111bec8 New: Refactor MediaInfo tokens (fixes old tokens adds new stuff) (#3058)
* Rename all 'episodeFile' variables to 'movieFile'

* Improve media info extraction with more fields

* Improve media info tokens extraction

* Add missing fields to MediaInfoModel

* Restore to previous implementation of null handling

* Forgot to add MediaInfoFormatter to project

* Add missing EqualsIgnoreCase extension method

* Simplify Logger.Debug() invocations

* Add missing StartsWithIgnoreCase extension method

* This '.Value' shouldn't be required

* Remove TODO comment

* Upgrade MediaInfo from 17.10 to 18.08.1

* Use correct media info field for files listing

* Replace media info "VideoCodec" (deprecated) with "VideoFormat"

* Fix 'Formatiting' typos

* Add support for media info Format_AdditionalFeatures' field

* Add proper support for all DTS and TrueHD flavors

* Add support for '3D' media info token

* Remove deprecated media info video/audio profile fields

* Add support for 'HDR' media info token

* Add new video parameters to anime file name sample

* Adapt tests for new media info fields

* Revert "Remove deprecated media info video/audio profile fields"

* Include missing test files in core test project

* Fix small regression issue

* Allow sample movie to be detected as HDR

* Do not parse audio channel positions if there are no channels

* Clean up extra blank line

* Reuse already declared variable

* Fix wrong audio channels detection on DTS:X streams

* Fix all failing unit tests

* Fix remaining failing unit tests
2018-10-30 21:44:59 +01:00
Leonardo Galli
4009852c35 Changed: Don't hide custom formats behind advanced settings when editing quality.
Didn't work very well.
2018-10-30 13:20:36 +01:00
Leonardo Galli
a50b74c177 Fixed: Unable to update custom formats for releases with bad Source Titles. 2018-10-30 13:18:46 +01:00
Leonardo Galli
9ea739f6cb @cosmetic Updated Changelog 2018-10-30 11:52:55 +01:00
Leonardo Galli
ad3c01e986 Changed: Upped rate at which we scan the download client. Should reduce cpu and ram usage as well as decrease pressure on download clients.
Also stopped warning about unable to parse a file after warning once. Should decrease ram usage as well and help with bloated log files.
2018-10-30 11:47:54 +01:00
Ricardo Amaral
173b6847e5 Fixed: Do not search movie if unmonitored (#3131) 2018-10-30 11:09:54 +01:00
Ricardo Amaral
07cb844ce6 Changed: Improve model and UI handling for lists. Should finally fix root folder errors. (#3133)
Fixes #3036 (supposedly)
2018-10-30 11:07:35 +01:00
Ricardo Amaral
0783402470 Fixed: Quality badges not being shown on bulk import. (#3121)
Fixes #3106
2018-10-30 11:05:03 +01:00
Leonardo Galli
46e728caf1 @cosmetic Disable failing tests and not used deploy 2018-10-30 11:04:07 +01:00
Lawrence
3b896e9011 Fixed: Trim filename from Kodi movie path before sending library scan request. (#3097) 2018-10-30 11:02:30 +01:00
Justin Kromlinger
623da76d16 Changed: Don't return unmapped folders on rootfolder API call. Massively improves loading time. (#3116) 2018-10-23 11:25:40 +02:00
Jeff Byrnes
95fdf38662 Added: Support for Homebrew-installed mono (#3090) 2018-10-20 19:38:32 +02:00
Leonardo Galli
6c45c7db1b Fixed: Hopefully fixed bulk import not showing files. 2018-10-15 10:03:15 +02:00
Leonardo Galli
e01900628f @cosmetic Updated Changelog 2018-10-15 09:54:53 +02:00
Leonardo Galli
4f4e6c494d Fixed: MPEG-2 remuxes being detected as "Raw-HD" quality
Fixes #2986
2018-10-15 09:54:27 +02:00
Ricardo Amaral
0c542eeb13 Fixed: Allow directory to be parsed similar to past implementation (#3057)
Fixes #3051
2018-10-15 09:43:23 +02:00
Ricardo Amaral
27032a8db3 Fixed: Class names on the 'add movies screen' (#3047) 2018-09-24 16:44:02 +02:00
Ricardo Amaral
31c357fdde Fixed: Use proper cursor for text and linked labels (#3041) 2018-09-24 16:43:43 +02:00
Qstick
ab0bf64273 New: mk3d file format (#2795)
Fixes #1324
2018-09-18 17:25:42 +02:00
cookandy
75b486c6c8 Added: "Add Paused" option to Deluge and Transmission (#3038) 2018-09-18 17:24:55 +02:00
Ricardo Amaral
c566c6e18a Changed: All-around small improvements (#3032) 2018-09-18 17:23:47 +02:00
Leonardo Galli
3767bbec18 Fixed: Donate button requiring two clicks to actually work.
Fixes #2958
2018-09-12 17:18:24 +02:00
Leonardo Galli
e4ba48eb61 @cosmetic Updated Changelog. 2018-09-12 16:50:35 +02:00
halali
057086a630 Added: Czech Language (#2948) 2018-09-12 16:46:57 +02:00
Qstick
2b373f2006 Added: Fallback to Bitrate_Nominal for MediaInfo (#2886)
Fixes #2860
2018-09-12 16:45:54 +02:00
Leonardo Galli
df6f32f6c3 Fixed: Templates for custom format using wrong modifiers. 2018-09-12 16:44:38 +02:00
Leonardo Galli
617c7bae83 Fixed: Profiles always failing validation. 2018-09-11 23:52:07 +02:00
Leonardo Galli
64e8fde0e1 Fixed: ImdbIds not being padded with zeroes, which messes up matching. 2018-09-11 23:47:00 +02:00
Leonardo Galli
0903269b7c Merge remote-tracking branch 'origin/develop' into develop 2018-09-11 23:33:31 +02:00
Leonardo Galli
b2d6ef589f Fixed: Migration would add double underscores for format tags without modifiers. Also fixed Radarr misparsing those tags and added migration to correct this. 2018-09-11 23:33:28 +02:00
Leonardo Galli
354105cf08 Fixed: Issue with custom formats when profile was saved with non existing formats. Also you now don't have to refresh your browser for them to appear / disappear. 2018-09-11 14:35:15 +02:00
Leonardo Galli
bf7689688d Added: All new custom formats 9000! (Rescan old files, delete formats, polish UI, etc. See discord for full changes):
- Rescan old movie files to apply new custom formats!
- Delete poorly thought out life choi..., I mean custom formats.
- Rename R (regex) to RX and RE (required) to RQ, which of course makes way more sense
- Remove unwanted UI code
- Actually implemented idea that was supposed to be there from the beginning (I blame git) (Reject releases if custom format is not wanted by profile)
- Remember file names? Radarr intermittently forgot about them too! (Fixed Radarr not using filenames for parsing)
- Your custom format does not work??? Well now you at least know a bit more about that.
- When editing / creating a custom format, it will now be highlighted in the testing area, so you actually know if you are making it worse.
- You prefer large or small? Radarr doesn't judge! Create custom formats tailored to your preferences with the new size format tag! (G_)
- Want to manually edit your qualities since you are paranoid? Now Radarr has a unified quality editing UI for both manual import and files! (Also you can now manually set the custom formats for a file)
- Scared of change? Custom formats are completely hidden unless you enable advanced settings!  - Rescan old movie files to apply new custom formats! - Delete poorly thought out life choi..., I mean custom formats. - Rename R (regex) to RX and RE (required) to RQ, which of course makes way more sense - Remove unwanted UI code - Actually implemented idea that was supposed to be there from the beginning (I blame git) (Reject releases if custom format is not wanted by profile) - Remember file names? Radarr intermittently forgot about them too! (Fixed Radarr not using filenames for parsing) - Your custom format does not work??? Well now you at least know a bit more about that. - When editing / creating a custom format, it will now be highlighted in the testing area, so you actually know if you are making it worse. - You prefer large or small? Radarr doesn't judge! Create custom formats tailored to your preferences with the new size format tag! (G_) - Want to manually edit your qualities since you are paranoid? Now Radarr has a unified quality editing UI for both
2018-09-10 21:46:18 +02:00
Leonardo Galli
b4f456d5f0 [WIP] Additions to custom formats, such as rescanning old files. (#2949) 2018-09-10 21:25:10 +02:00
Leonardo Galli
1059e145c3 @cosmetic Updated changelog. 2018-08-26 22:41:47 +02:00
Leonardo Galli
5751c3f5f5 Merge remote-tracking branch 'origin/develop' into develop 2018-08-26 22:30:31 +02:00
Leonardo Galli
a458cdc0a5 Fixed: Annoying [renamemoviesfolder] Completed popup for no reason. 2018-08-26 22:27:26 +02:00
Leonardo Galli
ed631142c4 Fixed: Unnecessary housekeeping commands consuming a lot of memory.
Fixes #2962
2018-08-26 19:08:55 +02:00
Leonardo Galli
091bcc2333 Fixed: Concurrent manual imports silently failing
Fixes #2965
2018-08-23 23:05:20 +02:00
Leonardo Galli
e15225f4fc Fixed: Files that cannot be parsed, kill bulk import.
Fixes #2979
2018-08-23 22:58:48 +02:00
Leonardo Galli
79e570e571 Fixed: Absolutely Required Format Tag modifier being ignored when multiple modifiers were present
Fixes #2971
2018-08-21 21:56:49 +02:00
Mark McDowall
d99e520baa New: Upgrade MediaInfo to 17.10 (Windows/macOS) 2018-08-18 18:24:04 +02:00
Leonardo Galli
3d1cbd1613 Fixed: Error when valid movie file id is around, but movie file is not loaded. 2018-08-16 21:37:17 +02:00
Leonardo Galli
2cfc77abc3 @cosmetic updated readme 2018-08-12 19:49:59 +02:00
Leonardo Galli
b7012192b3 @cosmetic updated readme 2018-08-12 19:48:24 +02:00
Leonardo Galli
a24ea4feee @cosmetic Fixed changelog 2018-08-12 17:55:56 +02:00
Leonardo Galli
43d9aa8627 @cosmetic Updated changelog 2018-08-12 17:55:22 +02:00
Leonardo Galli
ad94a4a603 Fixed: Movies not being unmonitored when using clean library and lists.
Fixes #2584, Fixes #2906
2018-08-12 17:49:58 +02:00
Leonardo Galli
efb4127c35 Fixed: Also scan media info when file is being imported (i.e. not an existing file)
Fixes #2956
2018-08-12 17:29:29 +02:00
Leonardo Galli
253546ded0 Fixed: Invalid qualities messing up the release module and other stuff. 2018-08-09 18:08:47 +02:00
Leonardo Galli
587b49aaba Added: The ability to set the number of threads (NOT SUPPORTED!) to use for tasks using THREAD_LIMIT environment variable. 2018-08-07 23:20:58 +02:00
Leonardo Galli
b865103871 Fixed: Languages not showing up correctly. 2018-08-07 17:36:50 +02:00
Leonardo Galli
b7e35fada8 Fixed: Null exception due to resharper refactoring
Fixes #2947
2018-08-07 17:29:03 +02:00
Leonardo Galli
409be45a19 Fixed: No media info causing an error when importing files
Fixes #2945
2018-08-06 19:42:33 +02:00
Leonardo Galli
b553d8aef6 Fixed: Saving IndexerSettings into DB which confuses the datamapper.
Fixes #2945
2018-08-06 19:35:26 +02:00
Leonardo Galli
c4ca2f12bb Fixed: Not using correct info for determining state! 2018-08-05 18:12:49 +02:00
Leonardo Galli
77f146b262 Added: Ability to add custom formats, working similar to qualities. (#2669)
Originally called project metis, this feature allows you to do a lot of cool stuff, such as upgrading to a x265 encode, downloading releases with multiple languages, etc. Check out the wiki page at: https://github.com/Radarr/Radarr/wiki/Custom-Formats to learn more! Note: This feature is currently in "beta" and will get more tags and features in the future. Please let me know, if you have any issues and I hope this will allow for a lot of customization!
2018-08-05 16:28:05 +02:00
Leonardo Galli
d046a73f78 Create reaction.yml 2018-08-02 21:44:30 +02:00
Qstick
728a50c68f Fixed: .vtt files treated as subtitles (#2885) 2018-07-18 22:17:14 +02:00
Qstick
5470378af4 Fixed: Debug log Series reference in QualityAllowedByProfile spec (#2899) 2018-07-18 22:16:05 +02:00
Qstick
304b3ef560 Fixed: Multiple UI Fixes and Additions (#2894)
* Fixed: Misc UI Style Fixes and Cleanup

* Fixed: Change Icon names from Sonarr to Radarr

* Added: Search from Movies Index
2018-07-15 17:35:14 -04:00
hotio
5e35b43e48 Fixed: Multiline in table view on two lines (#2870)
Fixed: multiline in table view
2018-07-14 22:30:58 -04:00
Qstick
52ce836d5c Added: Adds unmonitored filter option in index and editor (#2888)
https://feathub.com/Radarr/Radarr/+40
2018-07-14 16:50:57 -04:00
Qstick
fe7bf8ec9e Added: Monitor Toggle on Movies Editor Page (#2887)
#610
2018-07-14 14:24:16 -04:00
Travis Boss
0db74fa583 Changed "importing an episode" to "importing a movie file" (#2829) 2018-07-08 23:26:47 +02:00
Leonardo Galli
806ba7e59d Fixed: AwesomeHD failing on an empty imdbid.
Fixes #2810
2018-05-27 22:38:09 +02:00
Leonardo Galli
111ed93853 @cosmetic Added release changelog config. 2018-05-27 12:44:53 +02:00
Leonardo Galli
9dd0a1d7ea @cosmetic Update Changelog 2018-05-27 12:21:10 +02:00
Leonardo Galli
b60ddf62e8 Added: AHD_Internal and G_Scene indexer flags. Also linked a wiki page with more information about indexer flags.
Fixes #203 Fixes #1519
2018-05-27 11:05:23 +02:00
bobbintb
d05fb8ee33 Added indexer flags to the list of environmental variable for customs scripts (on grab) (#2801)
Fixes #1282
2018-05-24 23:51:55 +02:00
Qstick
009abaf9be Fixed: Rare timing issue on first-use causing duplicate naming config (#2790)
Fixes #2773
2018-05-24 23:51:05 +02:00
Leonardo Galli
0d5c71d205 @cosmetic Changelog fixed images. 2018-05-21 11:41:18 +02:00
Leonardo Galli
cbdfc14755 @cosmetic Fixed Large changelog. 2018-05-21 11:39:33 +02:00
Leonardo Galli
396373068e @cosmetic Update Changelog 2018-05-21 11:32:35 +02:00
Qstick
c736df8116 Fixed: Qbittorrent state and eta fixes (#2789)
Fixes #2785
2018-05-21 10:43:06 +02:00
Qstick
f246fa87dd Fixed: Purge alt titles on movie delete (#2796)
Fixes #2542
2018-05-21 10:41:59 +02:00
Qstick
f058b8f364 Fixed: Don’t allow profiles in use by lists to be deleted (#2797) 2018-05-21 10:32:20 +02:00
Leonardo Galli
c1d2ea44b3 Update issue templates 2018-05-19 20:42:16 +02:00
Leonardo Galli
2dc848ca31 Fixed: Throwing error when indexer doesn't support a category. Now only warns the user. 2018-05-11 21:25:07 +02:00
Leonardo Galli
93ee849118 Fixed: Broken Newznab testing. 2018-05-11 19:29:19 +02:00
Leonardo Galli
8dcde96f3f @cosmetic Updated Changelog 2018-05-08 22:20:49 +02:00
Leonardo Galli
17bdc54586 Merge remote-tracking branch 'origin/develop' into develop 2018-05-08 22:19:41 +02:00
Leonardo Galli
d1c2569aa6 Fixed: Indexers that do not support movie search should give better error messages. Radarr now also complains if an indexer does not support certain categories. 2018-05-08 22:19:36 +02:00
Leonardo Galli
d6425a868b @cosmetic Updated issue template. 2018-05-08 22:23:13 +04:00
jusher00
9306249204 Fixed: Omgwtfnzbs API categories (UHD, Full BR and Other) (#2764)
Fixes #2724
2018-05-07 21:10:36 +02:00
Leonardo Galli
58044e0104 Fixed: RSS Feeds with no description failing to be added.
Fixes #1231
2018-05-07 18:57:35 +02:00
Leonardo Galli
40d6089a56 @cosmetic 2018-05-07 19:55:43 +04:00
Leonardo Galli
30796388b0 Fixed: Radarr not loading with an invalid sort key. 2018-04-17 22:06:14 +02:00
Leonardo Galli
b593c9272e @cosmetic Updated Changelog 2018-04-17 01:21:37 +02:00
Leonardo Galli
2782d19191 Added: More logging for strange PTP errors. Please report them immediately when you see them. 2018-04-17 01:21:14 +02:00
Qstick
c592fbf6c8 Fixed: Register as Radarr to avoid issues with Sonarr (#2715)
Fixes #1232
2018-04-16 23:24:10 +01:00
Qstick
210902ecb6 Added: Setting for Colon Replacement Format (#2711)
Fixes #2140
Fixes #2657
2018-04-16 23:22:54 +01:00
Qstick
38932d82db Added: Enable Download Client Priorities (#2699)
Fixes #229
2018-04-15 05:03:32 +02:00
Leonardo Galli
17c100a7e7 @cosmetic Added todo config. 2018-04-13 00:42:14 +01:00
Marcelo Castagna
ed4add85b8 Fixed: Handling of unknown status types in DownloadStation and Import from torrent Download Station should move since DS maintains an internal copy for seeding. (#2420)
Fixes #2000
2018-04-05 21:24:21 +02:00
Qstick
39346b6127 Fixed: Misc Extra File Improvements (This changes mapping of backdrop images to Fanart instead of Banner) (#2642)
Fixes #2556
Fixes #2639
Fixes #2547
2018-04-01 21:48:22 +02:00
Leonardo Galli
0f6c5533f1 @cosmetic Updated Changelog 2018-04-01 20:24:42 +02:00
Leonardo Galli
6eb678cd92 Added: Radarr now stores cookies for PTP beyond restarts. Should limit active sessions correctly. (#2643)
Fixes #2626
2018-04-01 20:21:24 +02:00
Qstick
a2fa8c4594 Fixed: Multiple Calendar Issues, Other UI Fixes (#2685)
Fixes #2683 Fixes #1172 Fixes #563
2018-03-28 18:54:50 +02:00
Leonardo Galli
00877ad361 Fixed: Cutoff Unmet Sorting by Downloaded Quality not working.
Fixes #2678
2018-03-26 18:59:24 +02:00
Qstick
802768bd24 Fixed: Add form param before submitting request (#2674)
Co-Authored-By: taloth <taloth@users.noreply.github.com>
2018-03-26 12:03:12 +02:00
Qstick
8ee71fd0fa New: Setting for absolute maximum size for a release (#2662)
* New: Setting for absolute maximum size for a release

* Change to Advanced Setting
2018-03-26 09:03:43 +02:00
Qstick
80b698a749 Fixed: Don't add category when removing torrent from qBittorrent (#2661)
Fixes #2655
2018-03-22 23:56:47 +01:00
mueslo
9db7bd09e1 Add underscore to host part of URI regex (#2633)
Fixes #2632
2018-03-22 23:56:23 +01:00
Leonardo Galli
c13ab1388e @cosmetic update readme 2018-03-19 23:37:24 +01:00
Leonardo Galli
0ff1908b06 @cosmetic Update Readme 2018-03-19 18:21:04 +01:00
Leonardo Galli
9b2ae8dd1f @cosmetic updated readme 2018-03-19 18:19:31 +01:00
Leonardo Galli
37c1db9c49 @cosmetic Updated changelog. 2018-03-19 12:35:51 +01:00
Leonardo Galli
b91906b530 Fixed: ICS malformed in a lot of cases. Also events are now all day.
Additionally, theatrical and physical release are shown. Fixes #2581
2018-03-19 12:11:19 +01:00
themagicbullet
2088f5e92d Fixed: Set category when adding torrent to qBittorrent (#2649)
Hopefully fixes: #2200
2018-03-19 11:44:35 +01:00
Qstick
25e10e26e3 Added: A Huge Cleanup of old Series Code. (Let's pray nothing breaks :P) (#2589) 2018-03-14 21:41:36 +01:00
AeonLucid
8a6d67a6d7 Update stale.yml 2018-03-13 00:54:33 +01:00
Leonardo Galli
b4823ea228 @cosmetic Updated readme 2018-03-12 19:37:32 +01:00
Leonardo Galli
6196679732 @cosmetic stale bot config 2018-03-11 15:36:19 +01:00
Leonardo Galli
862eb66843 Create support.yml 2018-03-11 15:30:02 +01:00
Leonardo Galli
2e94951506 Merge remote-tracking branch 'origin/develop' into develop 2018-03-07 21:38:06 +01:00
Leonardo Galli
d2b6b603a8 Fixed: Sort by Downloaded not working.
Fixes #2195
2018-03-07 21:37:57 +01:00
Leonardo Galli
fa40005222 @cosmetic 2018-03-07 19:30:13 +01:00
Qstick
eeb5e94f06 Fixed: Incorrect Kodi nfo date format (#2605)
Fixes #2582
2018-03-05 10:07:26 +01:00
Leonardo Galli
56acf751c5 @cosmetic Updated Changelog 2018-03-04 16:10:45 +01:00
Leonardo Galli
a48793edd2 Fixed: Changes in http redirect logic causing failed grabs and >25% cpu usage. 2018-03-04 16:01:40 +01:00
Leonardo Galli
799a448544 Fixed: http->https redirects do not use the tls1.2 curl fallback.
fixes #1862
2018-03-04 15:57:02 +01:00
Leonardo Galli
57adf0e3a5 Fixed: Dates before 1970 causing an exception.
Fixes #1913
2018-03-04 15:42:15 +01:00
Leonardo Galli
61ee8edb5a Fixed: Browser not updating on Movie File Imported.
Fixes #657
2018-03-04 15:35:12 +01:00
Leonardo Galli
ed1154ec3c @cosmetic Updated Changelog 2018-03-04 15:25:52 +01:00
Paul Kozlovitch
2d99f9268a Added: Copy & Paste now triggers search (#2587) 2018-03-04 15:24:49 +01:00
Simon Chapman
55dde613c2 Fixed: Movies not getting unmonitored when folder gets deleted (#2588)
Fixes #1191, fixes #1590
2018-03-04 15:24:07 +01:00
Leonardo Galli
b83f2ca0ee Merge remote-tracking branch 'origin/develop' into develop 2018-03-04 15:23:15 +01:00
Leonardo Galli
fc61f84522 @cosmetic Updated Changelog 2018-03-04 15:23:09 +01:00
Leonardo Galli
c1692ff84c Merge remote-tracking branch 'origin/develop' into develop 2018-03-03 17:08:31 +01:00
Leonardo Galli
65c3704ff0 Fixed: NLog causing a crash under mono 5.10
Fixes #2585
Merge remote-tracking branch 'origin/develop' into develop


Revert "Fixed: NLog causing a crash under mono 5.10"

This reverts commit d11b565eda.

Added console logging in case NLog fails to initialize.

Fixed: Updated NLog to 4.5 RC6 to handle mono 5.10
Fixed: Messed up merge from Cherry pick


Fixed: Appveyor build.


Revert "Fixed: Appveyor build."

This reverts commit 99282359c4.

Revert "Fixed: Messed up merge from Cherry pick"

This reverts commit 450d90586d.

Revert "Fixed: Updated NLog to 4.5 RC6 to handle mono 5.10"

This reverts commit 1b20cbb5e3.

Fixed: NLog causing issues with mono 5.10
2018-03-03 17:07:50 +01:00
Leonardo Galli
0ab7c19e54 Revert "Fixed: Updated NLog to 4.5 RC6 to handle mono 5.10"
This reverts commit 1b20cbb5e3.
2018-03-03 00:40:31 +01:00
Leonardo Galli
f70c769070 Revert "Fixed: Messed up merge from Cherry pick"
This reverts commit 450d90586d.
2018-03-03 00:40:23 +01:00
Leonardo Galli
702f61213c Revert "Fixed: Appveyor build."
This reverts commit 99282359c4.
2018-03-03 00:40:16 +01:00
Leonardo Galli
99282359c4 Fixed: Appveyor build. 2018-03-03 00:13:28 +01:00
Leonardo Galli
450d90586d Fixed: Messed up merge from Cherry pick 2018-03-02 20:04:16 +01:00
Leonardo Galli
1b20cbb5e3 Fixed: Updated NLog to 4.5 RC6 to handle mono 5.10 2018-03-02 20:00:28 +01:00
Taloth Saldono
400cf0e073 Added console logging in case NLog fails to initialize. 2018-03-02 19:56:48 +01:00
Leonardo Galli
79b3682b0f Revert "Fixed: NLog causing a crash under mono 5.10"
This reverts commit d11b565eda.
2018-03-02 19:55:47 +01:00
Leonardo Galli
cbf8106672 Merge remote-tracking branch 'origin/develop' into develop 2018-03-01 22:37:35 +01:00
Leonardo Galli
d11b565eda Fixed: NLog causing a crash under mono 5.10
Fixes #2585
2018-03-01 22:37:30 +01:00
Leonardo Galli
2ba1af5874 Merge pull request #2590 from Qstick/patch-1
Fixed: Pin Cake and Addin Versions
2018-03-01 08:55:59 +01:00
Qstick
731c9acd94 Fixed: Pin cake and addin versions 2018-02-28 23:08:18 -05:00
Qstick
59a176f03b Fixed: Temp Workaround for Appveyor Cake Issue 2018-02-27 22:43:16 -05:00
Qstick
6482024dc5 Fixed: Poster sliding issues (#2570)
Fixes #2568
2018-02-26 16:08:57 +01:00
Qstick
9e7e8cff11 Fixed: Multiple History Issues (#2571) 2018-02-26 16:08:44 +01:00
Leonardo Galli
15fe7a844c @cosmetic Updated Changelog 2018-02-21 11:04:23 +01:00
thezoggy
68d32e4d31 Fixed: Another Delete modal is fixed. (#2560)
Fixes #2537
2018-02-21 11:02:48 +01:00
thezoggy
29f540c4f2 Changed: Metadata links are now better readable. Also fixed links in the poster view. (#2562)
Fixes #2561
2018-02-21 11:02:04 +01:00
thezoggy
31eed11d1b Fixed: Messed up movie deletion modal (#2552)
Fixes #2537
2018-02-20 14:41:35 +01:00
thezoggy
ba0bbddce9 Fixed: Remove sorting on Monitor/Profile columns to prevent unexpected results until sorting can properly be handled. Quick Fix for #2540 (#2553)
Fixes #2540
2018-02-20 14:41:01 +01:00
thezoggy
a243a886f5 Fixed: OSX app has bundle name of Sonarr (#2555) 2018-02-20 14:40:35 +01:00
Leonardo Galli
033bc24984 @cosmetic update changelog 2018-02-19 16:16:04 +01:00
Leonardo Galli
e071850d4c Fixed: Alt Titles from TMDB not getting added when mappings server throws 404
Fixes #2535
2018-02-19 13:02:55 +01:00
Leonardo Galli
fa212872ab Added: Handle ctrl-c more gracefully.
Finally fixes #2218
2018-02-19 12:48:56 +01:00
Leonardo Galli
c34137c423 Merge remote-tracking branch 'origin/develop' into develop 2018-02-19 08:38:40 +01:00
Leonardo Galli
67848ebff5 Fixed: Omgwtfnbs parsing being too greedy.
Fixes #608
2018-02-19 08:37:47 +01:00
Qstick
d0406ced40 Fixed: Unable to execute custom scripts if IMDB ID is null (#2543)
fixes #1460
2018-02-19 08:19:14 +01:00
Qstick
ae88645180 Added: Device names for Join notifications (#2544)
Closes #2364
2018-02-19 08:18:36 +01:00
Qstick
8519b64947 Cleanup TV related code in API (#2530) 2018-02-19 08:18:14 +01:00
Leonardo Galli
d67d89f54a Merge remote-tracking branch 'origin/develop' into develop 2018-02-19 00:01:11 +01:00
Leonardo Galli
2b2bd16d4d Updated NLog to version 4.4.12. Should fix #2218 2018-02-19 00:00:59 +01:00
Qstick
0c23511b7a Added: Same File Size MediaFile Specification (#2532) 2018-02-18 17:29:41 +01:00
Qstick
4dc3612347 Fixed: Help icon not centered (#2531)
Fixes #2528
2018-02-18 15:06:53 +01:00
Qstick
2139246c4a Fixed: Radarr Changes every file due to timezones (#2533)
Fixes #1741
2018-02-18 15:06:26 +01:00
Leonardo Galli
c1a5e8e759 Fixed: Filters not working. Fuck you backbone. 2018-02-16 17:12:34 +01:00
Qstick
e70e76adcb Cleanup Series Code from UI (#2525) 2018-02-16 10:53:41 +01:00
Leonardo Galli
1dbb856ced Fixed: Apostrophe getting replaced by an empty string causing no search results.
Fixes #1505
2018-02-15 15:21:15 +01:00
Leonardo Galli
74396a7abb @cosmetic Updated changelog 2018-02-15 15:03:33 +01:00
Qstick
e7e9e2b154 Added: Importing extra files from downloaded movies and generate metadata such as .nfo (#2506)
Fixes #121, Fixes #167, Fixes #2262 and Fixes #1104
2018-02-15 13:39:01 +01:00
Qstick
b40423f3a3 Added: Quotes around alternative titles (#2522)
Fixes #2511
2018-02-15 11:16:59 +01:00
Qstick
b3e46d02c6 Fixed: Integration Unit Tests (#2500) 2018-02-13 19:10:49 +01:00
Qstick
081d8a8e53 Added: Backup improvements from Sonarr (#2513)
Fixes #2440
2018-02-13 19:07:26 +01:00
Leonardo Galli
2f271635f9 @cosmetic fixed build 2018-02-12 17:37:11 +01:00
Leonardo Galli
c460153e66 @cosmetic fixed indentation error. 2018-02-12 17:33:14 +01:00
Leonardo Galli
8a674181be @cosmetic Staged builds & upload artifacts. 2018-02-12 17:31:18 +01:00
Leonardo Galli
7537cef93c @cosmetic Fixed junit transformer. 2018-02-12 17:18:25 +01:00
Leonardo Galli
808b6d16e9 @cosmetic added junit transformer 2018-02-12 17:15:14 +01:00
Leonardo Galli
d1189e62c5 @cosmetic custom docker image for circleci 2018-02-12 17:10:44 +01:00
Leonardo Galli
ef86c83799 @cosmetic changed config again. 2018-02-12 16:37:33 +01:00
Leonardo Galli
aeb45e5f7e @cosmetic update test.sh 2018-02-12 16:27:48 +01:00
Leonardo Galli
149c7c534c @cosmetic update config. 2018-02-12 16:21:21 +01:00
Leonardo Galli
74ae66ba14 @cosmetic Wrong filename. 2018-02-12 16:10:53 +01:00
Leonardo Galli
f94e7b562a @cosmetic Testing CircleCI for tests. 2018-02-12 16:06:31 +01:00
Leonardo Galli
f5a7a2f29a @cosmetic 2018-02-11 22:59:11 +01:00
Qstick
1514a00b8f Updated: NzbDrone references in FirewallAdapter.cs (#2504) 2018-02-11 17:22:31 +01:00
Scott
3ed0652feb Fixed: XSS vulnerability in the navbar search. (#2505)
Fixes #2503
2018-02-11 17:20:55 +01:00
Qstick
f4e2a510f2 Fixed: StartNzbDroneService.cs unit test (#2499) 2018-02-10 00:04:22 +01:00
geogolem
8edd15b5f8 Merge pull request #2497 from geogolem/selectAllMovieEditor
selectAll and deselectAll MovieEditor buttons
2018-02-09 11:59:31 -05:00
geogolem
2fdfd0fba5 selectAll and deselectAll MovieEditor buttons 2018-02-09 11:41:31 -05:00
geogolem
8b201af053 Merge pull request #2493 from geogolem/develop
fix build problem on windows
2018-02-08 09:35:41 -05:00
geogolem
976bc1a6a5 fix build problem on windows 2018-02-08 09:22:58 -05:00
Leonardo Galli
16ba7194a9 Merge branch 'develop' of https://github.com/Radarr/Radarr into develop 2018-02-08 11:26:58 +01:00
Leonardo Galli
a151fbbcbe Revert "Fixed: Removed hebrew ISO, since english movies are still in english. (#1922)" 2018-02-08 11:26:43 +01:00
Leonardo Galli
71db67af2c @cosmetic 2018-02-07 17:27:04 +01:00
Leonardo Galli
1d2231a96d @cosmetic 2018-02-07 17:26:43 +01:00
Leonardo Galli
0837d3a8a0 @cosmetic 2018-02-07 17:26:23 +01:00
Leonardo Galli
05e5d610a3 @cosmetic 2018-02-07 17:11:51 +01:00
Leonardo Galli
d2f99f1330 Fixed: Error with deluge when it doesn’t report a Hash.
Fixes #2329
2018-02-07 15:59:14 +01:00
Leonardo Galli
27001b48f6 Fixed: Logging error when accessing mount point
Fixes #2305
2018-02-07 15:26:25 +01:00
Leonardo Galli
97ab4cbcbd Fixed: Invalid runtime from CP causing issues importing.
Fixes #2081
2018-02-07 12:04:27 +01:00
Leonardo Galli
8b3a71a537 Fixed: Typo in TMDB Settings.
Fixes #2077
2018-02-07 11:57:49 +01:00
Leonardo Galli
e22141e2ed Fixed: Hopefully fixed errors with Delay Profiles.
Fixes #1817
2018-02-07 11:24:58 +01:00
Leonardo Galli
11211dc2ed Fixed: Error when importing files and old folder doesn’t exist.
Fixes #2485
2018-02-07 11:08:05 +01:00
Leonardo Galli
e71e518d30 Fixed: Zooqle torrents not getting added, since their torrent file is messed up.
Fixes #1516
2018-02-07 00:10:33 +01:00
Leonardo Galli
f9049566c1 Fixed: No Physical Release Date causing exception when setting last write time.
Fixes #390
2018-02-06 16:51:19 +01:00
Leonardo Galli
0bc61bea38 Fixed: Movies not getting unmonitored when folder gets deleted.
Fixes #1191, Fixes #1590
2018-02-03 16:44:35 +01:00
Leonardo Galli
032fc68892 Added: Include total space with root folders
Closes #2468
2018-02-02 23:13:26 +01:00
Leonardo Galli
33cc228ac1 Fixed: Rare case of null quality causing issues with manual import.
Fixes #2227
2018-02-02 15:01:02 +01:00
Leonardo Galli
d5832a6a07 Added: Manual Import now adds year after movie title for filtering. This should help finding movies such as IT.
By searching e.g. It 2017, movies with short titles should be easily filterable now. Also displays more results (50 instead of 20)
2018-02-02 14:53:03 +01:00
Leonardo Galli
5f8aeeac17 Fixed: Manual Import not automatically choosing right movie.
Fixes #2458, Fixes #2061
Generally improved Manual Import UI
2018-02-02 14:51:18 +01:00
Leonardo Galli
54e57bf16a Merge remote-tracking branch 'origin/develop' into develop 2018-02-02 13:23:36 +01:00
Leonardo Galli
b1f76082b2 Added: Dynamic paths cleanup old folders now!
Old folder is now only left behind if extra files are also present in new dir and cannot be overwritten. Generally Dynamic Paths should be more stable now. Fixes #2048
2018-02-02 13:23:29 +01:00
Leonardo Galli
73fed04228 Fixed: Rare case of RequiredIndexerFlags failing with old Newznab indexers. 2018-02-01 16:00:55 +01:00
Leonardo Galli
ca3d5c184e Merge branch 'develop' of https://github.com/Radarr/Radarr into develop 2018-02-01 14:20:01 +01:00
Leonardo Galli
861962d06c Added: Option to require indexer flags per indexer. (e.g. only download freeleech torrents from a private tracker) (#2460) 2018-02-01 14:18:52 +01:00
Leonardo Galli
5057fcc40f Fixed: Folder name getting messed up when adding movies via a list.
Fixes #2465
2018-02-01 14:14:45 +01:00
Leonardo Galli
78e5fdf3bc Added: Files downloaded with different quality than grabbed will get rejected.
Fixes #1779, Fixes #2087, Fixes #1321
2018-01-31 20:09:04 +01:00
Leonardo Galli
aab14d02f9 Fixed: Error when adding an already excluded movie to the exclusion list.
Fixes #2462
2018-01-31 15:03:29 +01:00
Leonardo Galli
eb1c3c8b82 Fixed: Last commit still not compiling (whoops squared) 2018-01-30 18:33:30 +01:00
Leonardo Galli
4025af7895 Fixed: Last commit not compiling (whoops) 2018-01-30 18:31:07 +01:00
Leonardo Galli
95ca863697 Fixed: Clean Library being to agressive when lists are having failures.
Fixes #2455
2018-01-30 18:29:07 +01:00
Leonardo Galli
74e0db2829 @cosmetic Fixed all erroring tests. 2018-01-30 15:09:19 +01:00
Leonardo Galli
2459ddb6f4 Fixed: Error when nno quality was associated with a movie file.
Fixes #1991
2018-01-30 13:16:06 +01:00
Leonardo Galli
3e2e085b6b Fixed: Allowing in use Profiles to be Deleted.
Fixes #2030
2018-01-30 13:11:16 +01:00
Leonardo Galli
931cdacf66 Fixed: Error when Movie has no imdbid when searching Rargb
Fixes #2090
2018-01-30 12:59:45 +01:00
Leonardo Galli
18c622de40 Fixed: Rargb failing when imdbid is not found
Fixes #1845, Fixes #2319
2018-01-30 12:56:14 +01:00
Leonardo Galli
53e6fa7cf1 Fixed: {Original Filename} not allowed in Movie Filename
Fixes #1248
2018-01-30 12:42:06 +01:00
Qstick
4afd3f3bfe Fixed: Look for changes to package.json before using old build cache (#2445) 2018-01-26 08:54:59 +01:00
crhammock
da425b04b1 Updated: TMDbSettings.cs to allow pipe for or for genre ids (#2389) 2018-01-11 17:06:26 +01:00
Pieter Janssens
663ac972cd Fixed: HistoryDetailsLayoutTemplate.hbs (#2361) 2017-12-21 13:42:02 +01:00
Taloth Saldono
efbb587290 Fixed MediaCover endpoint. 2017-12-13 21:28:42 +01:00
Mark McDowall
72a12a73af Fixed: Don't handle content requests in IndexHtmlMapper 2017-12-13 21:28:21 +01:00
fhscholl
95bc93042c Added: Separate naming tags for AudioLanguage and SubtitleLanguage (#2261) (Fixes #2257) 2017-12-12 23:53:11 +01:00
Leonardo Galli
172cf4d06e Fixed: Movies parsed from lists with no year and only title getting added mutliple times. 2017-12-12 23:26:16 +01:00
Taloth Saldono
5ac0f28fff Fixed: Security Vulnerabilities allowing authentication to be bypassed (discovered by Kyle Neideck) 2017-12-12 23:15:46 +01:00
Leonardo Galli
948af901da Added: Include APFS disks in disk space calculation. 2017-12-12 22:46:00 +01:00
Leonardo Galli
f36716135b Added: Upgrade MediaInfo to 17.10 (Windows/macOS) 2017-12-12 22:44:14 +01:00
kriegalex
b70016d082 Added: Support for VF2 french tag. (#2291) (Fixes #2290) 2017-12-12 22:28:36 +01:00
grokdesigns
6a1b099117 Added: Customize Slack Channel (#2308) (Fixes #2298) 2017-12-04 09:07:42 +01:00
Leonardo Galli
ffb098357d Fixed: Movie Editor Path screwed up. Might also fix some other movie editor issues. (Fixes #2170) 2017-11-19 15:11:53 +01:00
Leonardo Galli
1a22486aba Fixed: Tags disappearing (Fixes #2204) 2017-11-19 14:57:15 +01:00
Fish2
72631eab8f Fixed: moment.js deprecated zone and add functions (Fixes #2232) (Fixes #2231) (#2264) 2017-11-16 20:20:41 +01:00
Mike
e4a3e63c44 Fixed: CPU locking at a 100% in certain instances. (#2258) (Fixes #2218) 2017-11-12 12:25:46 +01:00
Fish2
5dc2df3d49 Revert "Fixed: moment.js deprecated zone and Added: and lossless compression of images (#2232) (Fixes #2231)"
This reverts commit 32b1f75eb3.
2017-11-10 17:11:42 +01:00
fhscholl
01f0c6d85f Added: SceneName to MovieFile API output (#2250) (Fixes #2245) 2017-11-10 16:13:14 +01:00
fhscholl
c7c423b13d Added: Functionality to XBMC and Plex to update indivdual titles. Also: Notification Cleanup (#2240) 2017-11-10 16:11:09 +01:00
Fish2
32b1f75eb3 Fixed: moment.js deprecated zone and Added: and lossless compression of images (#2232) (Fixes #2231) 2017-11-10 16:08:02 +01:00
adnanklink
29909db604 Added: FolderPath to the Movie Webhook (#2230) 2017-11-10 16:06:45 +01:00
Mike
ec3f094d12 Fixes #2218. (#2254)
* Fixed: Raise ApplicationStartupEvent after Owin is running.

* Actually inject the container.
2017-11-08 19:39:50 +01:00
adnanklink
cb857934c4 Added: Download_Id to On Download/On Upgrade (#2229) 2017-10-29 19:19:30 +01:00
Leonardo Galli
d0174c7b7b Merge remote-tracking branch 'origin/develop' into develop 2017-10-29 12:24:41 +01:00
Leonardo Galli
9d19c4ec21 Fixed: Manual Import. Fixes #2160 2017-10-29 12:24:35 +01:00
fhscholl
0a030386f2 Added: Movie_Quality to onGrab (#2221) (Fixes #1833) 2017-10-28 17:19:49 +02:00
fhscholl
5e121c78e1 Updated: Webhook Improvements (#2220) (Fixes #1751) 2017-10-28 17:18:52 +02:00
James White
b521ffb588 Added: Message about adblockers preventing the log table from loading (#2213) (Fixes #2209) 2017-10-23 21:50:03 +02:00
James White
386a434aeb Changed: Sabnzbd Update test cases and rename to MovieCategory (#2212) 2017-10-23 21:49:02 +02:00
James White
5674d8ad60 Changed: Nzbget Rename TvCategory references to MovieCategory (#2211) 2017-10-23 21:47:49 +02:00
Oliver Rivett-Carnac
b313dd1845 Minor error message tweak (#1778)
* Added: some tips to how to build. Gave some info to Windows developers.

* Fixed: Alignment of validation errors in labels

* Fixed: error message mentioning 'series'
2017-10-22 20:58:25 -04:00
James White
dffa50a82f uTorrent initial state feature (#2192)
* New: Initial state for torrents added to UTorrent

Closes #409

(cherry picked from commit 19a4d3536b)

* Change default port

* Rename TvCategory to MovieCategory
2017-10-22 20:51:07 -04:00
James White
5337f79281 Change default port of qBittorrent download client config (#2187) 2017-10-22 20:49:54 -04:00
fhscholl
8861c8d8a4 Add IsUpgrade and related deleted file paths for CustomScript (#2205)
* Add IsUpgrade flag and deleted file paths for updates

* use OldMovieFiles instead of OldFiles
2017-10-22 20:49:37 -04:00
James White
4574ff5f6d Fixed: typo on margin-bottom (#2182) 2017-10-15 16:11:27 +02:00
James White
dd53e51468 @cosmetic Fix jshint warnings on MoviesCollection.js (#2180) 2017-10-15 13:37:19 +02:00
James White
7ae2d455c3 Fixed: Remove unit on zero values (#2178) 2017-10-15 13:29:32 +02:00
James White
e2e6630b69 Added: Initial state for torrents added to qBittorrent (#2176) 2017-10-15 12:35:53 +02:00
James White
ed744b5702 Fixed: Jackett apikey cleaned from log again. (#2177) 2017-10-15 12:35:04 +02:00
Leonardo Galli
5ffa27ec29 @cosmetic changed title 2017-10-14 12:05:17 +02:00
Leonardo Galli
53bfe61eb6 @cosmetic Added status images for websites and update api. 2017-10-14 12:04:22 +02:00
Leonardo Galli
a4a8e4547f Merge remote-tracking branch 'origin/develop' into develop 2017-10-11 23:09:36 +02:00
Leonardo Galli
e2bda29737 Fixed: Manual Movie Page Filtering. 2017-10-11 23:09:29 +02:00
James White
ab117082ed @cosmetic Stop commented out code appearing in HTML source (#2158) 2017-10-11 22:55:33 +02:00
Leonardo Galli
c708c3f5a1 Merge remote-tracking branch 'origin/develop' into develop 2017-10-11 22:54:51 +02:00
Leonardo Galli
a98494ab63 Fixed: MediaInfo not getting read when quality isn't Bluray, Web-dl or HDTV. Fixes #1465. Fixes #1572. 2017-10-11 22:54:45 +02:00
James White
779a722175 Changed: Adjust ambiguous date options (#2165)
(cherry picked from commit 00c3074216)
2017-10-11 22:45:15 +02:00
James White
805927205c @cosmetic Simplify ical ProductId code since adding properties (#2164) 2017-10-11 21:11:16 +02:00
James White
1d8eec42ef Added: a default name for Radarr.ics (#2163) 2017-10-11 19:19:57 +02:00
Leonardo Galli
a951ad811d @cosmetic Updated changelog. 2017-10-09 21:51:21 +02:00
James White
27c58f6151 Fixed: Alignment and buttons position of Trakt Auth (#2153) 2017-10-09 21:39:14 +02:00
Leonardo Galli
a5dd426dd7 Fixed: SUBBED in release name not recognized as hardcoded subs. Fixes #1520 2017-10-07 23:54:24 +02:00
Leonardo Galli
c30a681aea Fixed: 1080i not correctly recognized as 1080p. Fixes #1622 2017-10-07 23:47:22 +02:00
Leonardo Galli
4d712d7760 Fixed: Releases with UHD not getting correct resolution label. Fixes #2134 2017-10-07 20:24:50 +02:00
Leonardo Galli
63645c81bb Fixed: WebDL gets marked as Remux. Fixes #1954 2017-10-07 20:21:59 +02:00
Leonardo Galli
dc55eba74f Merge remote-tracking branch 'origin/develop' into develop 2017-10-07 20:20:47 +02:00
Leonardo Galli
b6be297093 Fixed: Parsing of TSRip and HDTSRip. Fixes #1998 2017-10-07 20:16:21 +02:00
Leonardo Galli
5ff9dc3500 Added: Option to omit year from indexer searches when searching by title. Also added option to force a movie search by title instead of imdb id. Fixes #1912 2017-10-07 20:09:22 +02:00
Wyall
4789f80df2 Added new codec HEVC with ID=5 for HDBits (#2146)
According to LSL1337 on Discord there's a new codec option HEVC with ID=5
2017-10-07 19:57:09 +02:00
Leonardo Galli
e77d9ce848 Added: Last round of optimisation. Large libraries should load around 2x faster again compared to the last version. 2017-10-07 18:16:15 +02:00
Leonardo Galli
a9b244bf75 Added: Improved load times of very large libraries again (around x5) 2017-10-05 23:31:12 +02:00
Leonardo Galli
628c044c46 Added: Movie files are now eager loaded. This should speed up the loading process a lot as well as RSS Sync and other tasks. It should also prevent some other bugs. 2017-10-01 18:41:19 +02:00
Leonardo Galli
ecd25dddf1 Merge remote-tracking branch 'origin/develop' into develop 2017-09-24 16:17:52 +02:00
Leonardo Galli
25b0a52ba6 Fixed: Alternative Titles appearing multiple times. Duplicate alt titles will be deleted. Fixes #2040 2017-09-24 16:17:43 +02:00
James White
321ba98e49 Fixed: unclosed <span> tag on BulkImportView (#2110) 2017-09-24 13:19:39 +02:00
James White
9178a0aa1b @cosmetic Convert backticks (#2112) 2017-09-24 13:16:05 +02:00
James White
6942fb892d Fixed: Change to correct provider of search results (#2113) 2017-09-24 13:15:35 +02:00
James White
f64d349119 Fixed: Icon not being hidden on Discover New Movies button in X-Small breakpoint (#2114) 2017-09-24 13:14:44 +02:00
James White
926dbdf2cd Fixed: Font folder case fix (#2066) 2017-09-21 22:37:10 +02:00
Adam Dangoor
645a3dca64 Fixed: Add space in confirmation message (#2101) 2017-09-20 07:55:44 +02:00
Leonardo Galli
2b2a1265ad Create LICENSE 2017-09-10 16:10:48 +02:00
Leonardo Galli
e7c9217dc0 Merge remote-tracking branch 'origin/develop' into develop 2017-09-10 15:58:47 +02:00
Leonardo Galli
8caf648a0b Fixed: Alt titles with less than 4 votes being used. 2017-09-10 15:58:31 +02:00
Leonardo Galli
349be2c454 Fixed: Cleanup of unused alt titles. 2017-09-10 15:56:45 +02:00
James White
ba0c5bc5f4 Fixed: Scripts should be included before closing body tag (#1995) 2017-09-10 15:55:36 +02:00
James White
1c1723b4f7 Fixed: Allow toolbar buttons to be full width on x-small and small breakpoints (#1972) 2017-09-10 15:55:03 +02:00
James White
c4957fffee Added: WOFF2 fonts for better performance in supported browsers (#1994) 2017-09-10 15:54:39 +02:00
James White
e6fee32cf2 Changed: Tweak NavbarLayoutTemplate.hbs (#1996) 2017-09-10 15:54:16 +02:00
Leonardo Galli
fc805e5078 Fixed: Refresh movie failing. 2017-08-27 18:55:55 +02:00
Leonardo Galli
ba531fff4d Added: Ability to force download movies that could not be mapped correctly. This also shares these mappings with other users, so everyone can profit :)
(This is just for the automatic changelog, hacky I know)
2017-08-27 18:12:09 +02:00
Leonardo Galli
1d7ce68431 Fixed: Refresh movie failing for most movies. (Fixes #2007)
Fixed: Invisible download button if no release name was found.
2017-08-27 18:05:28 +02:00
Leonardo Galli
09d51dca0f Fixed: A few issues with the new alternative titles feature. (#2008) (Fixes #1919, #1927 and #1917)
Added: Ability to force download movies that could not be mapped correctly. This also shares these mappings with other users, so everyone can profit :)
2017-08-27 16:42:11 +02:00
James White
efe49ef3c4 @cosmetic Make file name match naming format (#1997) 2017-08-25 08:37:24 +02:00
Leonardo Galli
a5823bb15f Fixed: A lot of small ui errors (e.g. More not showing) (Revert of #1959) 2017-08-24 07:57:31 +02:00
James White
38af8edd59 Fixed: Adjust Sonarr references to Radarr (#1977) 2017-08-21 21:48:45 +02:00
Leonardo Galli
685c5daf36 Fixed: Rename movie not working (#1970) (Fixes #1908) 2017-08-20 22:12:02 +02:00
Leonardo Galli
4d5a5ed2c1 Merge remote-tracking branch 'origin/develop' into develop 2017-08-20 20:13:48 +02:00
Leonardo Galli
d44de777c1 Fixed: Error with CP Import when no info is present. Fixes #1792 2017-08-20 20:13:42 +02:00
James White
dc2740aeb7 Added: Display breakpoint name in browser window in debug mode (#1968) 2017-08-20 20:00:37 +02:00
Leonardo Galli
fb53fc68a9 Added: Ability to delete multiple movies at once via the movie editor. 2017-08-20 18:58:29 +02:00
Tom
8de87bb516 Fixed: Movie files & folders will actually get deleted now (#1966) (Fixes #694) 2017-08-20 14:40:02 +02:00
James White
0c8e264668 Fixed: Bulk UI cleanup, fixes and consistency improvements (#1959) 2017-08-20 14:38:24 +02:00
MangaValk
4d8a270170 Fixed: Parser error when using (year) name folder (#1956) (Fixes #1951) 2017-08-19 00:24:41 +02:00
hotio
f184fc2827 @cosmetic Indicate proper release types for docker image (#1953) 2017-08-17 19:24:39 +02:00
hotio
4e48e6ea21 @cosmetic Update appveyor builds url to exclude pull requests (#1946) 2017-08-15 23:23:38 +02:00
Leonardo Galli
b1e75ffc57 Merge remote-tracking branch 'origin/develop' into develop 2017-08-15 23:22:43 +02:00
Leonardo Galli
285ffb19d8 Fixed: Non-Freeleech torrents showing as freeleech for AHD. 2017-08-15 23:22:00 +02:00
hotio
aea7a3f48f @cosmetic Update docker nightly image reference (#1945) 2017-08-15 23:07:34 +02:00
James White
edbf1cb4e4 Fixed: Missing icon preventing detailed explanation validation errors explanations from appearing. (#1944) 2017-08-15 22:54:59 +02:00
Leonardo Galli
2154c48304 @cosmetic Removed Tests from AppVeyor 2017-08-15 20:23:02 +02:00
James White
7a95f040c9 Added: Deprecation warning about Drone Factory to front end (#1938) 2017-08-15 20:22:17 +02:00
James White
cc1966230a Added: Package-lock.json for npm 5 (#1939) 2017-08-15 20:21:59 +02:00
James White
e97fe7b3a7 Fixed: Mask-icon and other resources when UrlBase is in use (#1933) 2017-08-13 22:56:56 +02:00
James White
6500edbd14 Fixed: Slack/Mattermost notifications improvements from Sonarr (#1930) 2017-08-13 19:42:00 +02:00
James White
e155585198 Fixed: fontawesome path (Icons disappearing) (#1929) 2017-08-13 14:18:54 +02:00
James White
d9da32173f Fixed: Charset and meta in index.html and login.html (#1926) 2017-08-13 12:57:10 +02:00
Rotem
9db46ba154 Fixed: Removed hebrew ISO, since english movies are still in english. (#1922) 2017-08-13 12:55:25 +02:00
James White
eff6e33a0b Fixed: Adjust column sizes relative to size of dropdown values (#1923) 2017-08-13 12:54:44 +02:00
James White
724097d276 Updated FontAwesome to 4.7.0 (#1928) 2017-08-13 12:54:16 +02:00
James White
7a06ead806 Fixed: Additional jshint warnings (#1921) 2017-08-12 17:11:34 +02:00
James White
d773da60e8 Fixed: Minor issues on MoreInfoViewTemplate.hbs (#1916) 2017-08-12 15:16:31 +02:00
James White
1f7b03d321 Fixed: gulp jshint warnings (#1873) 2017-08-12 15:16:12 +02:00
James White
a07ef20410 Fixed: Replace GitHub wiki references to Radarr's wiki URL (#1914) 2017-08-12 15:15:23 +02:00
Rotem
7c4c6ccd5c Added: Hebrew language (#1909) 2017-08-12 00:48:57 +02:00
James White
c754edc4b8 Fixed: Hanging form-group div (#1911) 2017-08-12 00:29:31 +02:00
Mike
7f3ab36c4f New: Run tests through powershell. (#1903) 2017-08-10 20:11:12 +02:00
Leonardo Galli
17387c8b50 Fixed: Migration failing and thus making Radarr unable to start. 2017-08-10 18:51:05 +02:00
Leonardo Galli
0d40ed7ec0 Added: Alternative Titles are now also pulled from mappings.radarr.video.
Added: A secondary year will also be pulled from mappings.radarr.video.
Added: An option to force download a movie with wrong year / title. Radarr then adds the year / title to mappings.radarr.video.
2017-08-09 22:18:04 +02:00
Leonardo Galli
cfcb66fba1 Changed: Alternative Titles were reworked greatly. This should speed up RSS Sync massively, especially for large libraries (up to 4x). 2017-08-09 22:14:01 +02:00
James White
8927e7c2c6 Fixed: Task name of PreDB Sync task (#1875) 2017-08-06 17:47:23 +02:00
Qstick
4e9a931537 Fixed: Check that Quality Profile is not in use before deleting it. 2017-08-06 12:10:17 +02:00
James White
17feedaf53 Fixed: Category not setting with qBitTorrent 3.3.14 and other api errors. (upstream from Sonarr) 2017-08-06 12:09:16 +02:00
Leonardo Galli
b06108fb45 Fixed: Older movies (released more than 30 days ago) are now not refreshed as often anymore (every 30 days) 2017-07-28 16:59:06 +02:00
Leonardo Galli
67dd498576 Fixed: (Hopefully) Bug where movie file was not correctly linked to movie. 2017-07-28 16:57:26 +02:00
Leonardo Galli
3fb356ddb6 Fixed: No API Key required with SignalR connections. 2017-07-26 23:24:28 +02:00
Leonardo Galli
605b8f9645 Fixed: Guard agains null reference exception with newznab capabilities. 2017-07-26 23:23:36 +02:00
Marc Runkel
668ef336fb Fixed: Update Info.plist to avoid conflict with Sonarr (#1783) 2017-07-16 14:09:03 +01:00
Richard Schwab
b82f2376a7 Fixed: Relax SingleInstancePolicy when using a custom data directory Fixes #1765 (#1782) 2017-07-16 14:08:16 +01:00
Leonardo Galli
964c18b236 Fixed: Lists are fetched much more efficiently. (Up to 40x loading time improvement with large lists!) 2017-07-08 16:13:28 +02:00
Taloth Saldono
fb4f510909 Revert "Fixed: Support for Mono 5.x with the newer BoringTLS provider."
This reverts commit 5b722a3a48.
2017-07-06 21:45:37 +02:00
Taloth Saldono
5b722a3a48 Fixed: Support for Mono 5.x with the newer BoringTLS provider. 2017-07-06 21:43:34 +02:00
Sandro Stikić
0892f20298 Fixed: Old Plex ValidationFailure message (#1770) 2017-07-06 18:48:46 +02:00
Leonardo Galli
ac5732536d Fixed: BDRemux not recognized as such and BDRips without resolution recognized as DVD. Fixes #1755 2017-07-01 14:01:38 +02:00
Leonardo Galli
1f4c2ad946 Fixed: A as part of an acronym being removed from clean title. Fixes #1747 2017-07-01 11:01:48 +02:00
Leonardo Galli
7712aa62da Fixed: Folder in List settings appearing blank in some browsers. Fixes #1711 2017-06-27 12:53:50 +02:00
Leonardo Galli
58b9c9d3d1 Fixed: Minimum Seeders not saving for Torznab indexer. Fixes #1736 2017-06-27 12:36:24 +02:00
Leonardo Galli
b2115e2066 Removed most of changelog. Generate changelog using gitchangelog v0.2.0.18..HEAD. @cosmetic 2017-06-20 14:29:32 +02:00
Leonardo Galli
4e4873271b Added Changelog, just for fun :D @cosmetic 2017-06-20 14:21:19 +02:00
Leonardo Galli
f2e5d9e996 Updated: Radarr API url now points to new v2 version. 2017-06-20 10:23:26 +02:00
Leonardo Galli
bae3a48aa1 Changed Name of Radarr Lists 2017-06-19 15:22:03 +02:00
Leonardo Galli
6d033c57f4 Added: More detailed descriptions why a movie was not able to be mapped. (#1696)
Added: Option to make mapping more lenient. This should practically allow all movies to be correctly mapped. Though it also opens the path for movies being wrongly mapped! (So it is a toggable option)

Added: Improved edition parsing. Now almost all releases should have the correct edition, even ones with no year, etc.
2017-06-18 23:12:14 +02:00
Leonardo Galli
d6cf53e12c Added: Options to make parsing more lenient. (Adds support for some german and french releasegroups) (#1692)
Fixes #1676. Fixes #1632.
2017-06-17 15:02:58 +02:00
Leonardo Galli
5238b78813 Merge remote-tracking branch 'origin/develop' into develop 2017-06-13 16:10:17 +02:00
Leonardo Galli
705b233819 Fix migration.
Fixes #1678
2017-06-13 16:09:12 +02:00
Mitchell Cash
295536ae30 Updated: Bootstrap Tags Input (#1674) 2017-06-13 13:15:43 +02:00
Leonardo Galli
42c980c905 Merge remote-tracking branch 'origin/develop' into develop 2017-06-13 13:09:09 +02:00
Leonardo Galli
0a71aac56c Fixed: Urls missing from multiple indexers after latest nightly update. 2017-06-13 13:09:02 +02:00
Mitchell Cash
c312ffd7db Fixed: Redirect calls missing URL Base (#1668) 2017-06-13 08:42:49 +02:00
Mitchell Cash
5c5f06a92c Fixed: Twitter oAuth callback URL (#1669) 2017-06-13 08:42:07 +02:00
Mitchell Cash
3eab8248e6 Fixed: Error when processing manual import decisions (#1670) 2017-06-13 08:40:51 +02:00
Mitchell Cash
c33d9727a0 Added: Include css files in minification (#1672) 2017-06-13 08:39:42 +02:00
Mitchell Cash
ca6784f7b5 Added: Upgrade to Bootstrap 3.3.7 (#1673) 2017-06-13 08:38:39 +02:00
Leonardo Galli
ca00d0d6cc Create README.md 2017-06-12 19:17:56 +02:00
Leonardo Galli
756fc7556c Add license 2017-06-12 19:11:11 +02:00
Leonardo Galli
9f4ce50dd6 Added: Allow minimum seeders to be set on a per indexer basis. Pulled from Sonarr Upstream (#1624) 2017-06-12 14:47:05 +02:00
Leonardo Galli
a460e89a8d Merge remote-tracking branch 'origin/develop' into develop 2017-06-12 14:10:18 +02:00
Leonardo Galli
edda8786ad Minimum availability is now working similarely to profile when adding a movie. 2017-06-12 14:10:07 +02:00
Mitchell Cash
b1c5dd8167 Changed: Remove redundant IE meta tag as we use http header instead (#1655) 2017-06-11 09:32:12 +02:00
Mitchell Cash
a620c4b5d8 Changed: Use cleancss for minification (#1654) 2017-06-11 09:31:27 +02:00
Mitchell Cash
28b523b504 Fixed: Follow 301 redirects when fetching torrents (#1653)
Closes #1564
2017-06-11 09:30:51 +02:00
Mitchell Cash
7af88037bb Fixed: Ensure an API Key is set when starting Radarr (#1652) 2017-06-11 09:30:00 +02:00
Leonardo Galli
43446ee3d0 Fixed: Forgot to include some js files in the last commit 2017-06-07 13:37:20 +02:00
Leonardo Galli
accf8a9efa Added: Ability to see TMDB and lists going through the Radarr API on the discovery page.
Added: More lists (specifically presets for IMDB Top 250 and IMDB Popular)
Added: Ability to set Radarr API endpoint as list.
2017-06-06 22:40:44 +02:00
Leonardo Galli
b70ed720c5 Fix error when we get invalid datetime from our api. 2017-06-06 20:03:52 +02:00
Leonardo Galli
cff4578c66 Merge remote-tracking branch 'origin/develop' into develop 2017-06-06 19:51:00 +02:00
Leonardo Galli
7bbebe53a3 Added: Custom Class for Radarr API requests. Also implements new error handling present on staging server. 2017-06-06 19:50:53 +02:00
Leonardo Galli
d81e3a79cf Added: Search 5 alternative titles as well. This should help with french as well as movies with very different titles. 2017-06-05 17:48:04 +02:00
Jason Costomiris
09c86013b0 Added: [Radarr] tag for Twitter Notifications (#1558) 2017-06-05 12:06:20 +02:00
Fish2
f1873a9684 lossless compression of images saved 92KB (#1620) 2017-06-04 13:11:52 +02:00
randellhodges
3d48da2111 Added HDBits Category, Codec, and Medium Filtering Capability (#1458)
* Added advanced configuration options to support filtering Categories, Codecs, and Medium to the HDBits indexer.

* Changes to use the existing tags with a controlled vocabulary.

* 1) Sorting select options by name
2) Moved the autocomplete tag code into taginput as requested

* removed commented out line

* require cleanups
2017-05-29 17:56:16 +02:00
Leonardo Galli
86634006e5 update radarr api url 2017-05-29 15:49:42 +02:00
Leonardo Galli
234827d5fd Mostly fixes UI glitches for list settings.
Fixes #679
2017-05-26 18:31:11 +02:00
Leonardo Galli
10bceaf370 Merge remote-tracking branch 'origin/develop' into develop 2017-05-26 11:12:14 +02:00
Leonardo Galli
b7f6ff7b2e Fixed PTP indexer being disabled if no results are found for a movie.
Fixes #1573
2017-05-26 11:12:07 +02:00
Sentir101
6767f602fb Refresh IsDuplicate in bulk import when the tmdbId changes (#1570) 2017-05-25 15:44:43 +02:00
flightlevel
e43e7d2b8d Encourage Torznab use with Jackett (#1559) 2017-05-23 17:30:59 +02:00
Leonardo Galli
811a4bf117 Fix basic naming settings.
Fixes #376
2017-05-21 18:10:46 +02:00
Leonardo Galli
9dee1d6fad Discovery of upcoming movies points to our server now.
Discovery results now show physical release date (if present).
All physical release dates now should show a note (if available) detailing what kind of release date it is (e.g. Netflix, DVD, Streaming, etc.)
2017-05-20 14:31:38 +02:00
Mike
390e4c3014 Most likely fixed #745 now 2017-05-18 01:08:13 +02:00
Mike
aace29e1e1 Chmod osx file as executable. (#1539) 2017-05-17 11:20:32 +02:00
tsubus
8fb257d5b7 Add IMDB URL to notifications (#1531) 2017-05-15 14:47:22 +02:00
Levi Wilcox
28e0f85e88 Fixed design calendar css bug (#1527)
Fixes #983
2017-05-15 09:40:00 +02:00
Luke Anderson
41d3f6d7ea Correct Program Name (#1524) 2017-05-14 12:19:20 +02:00
Luke Anderson
b19fbcbb71 Correct Program Name (#1523) 2017-05-14 12:19:10 +02:00
Leonardo Galli
5200758200 Osx updater now updates plist file to point to the correct executable binary. 2017-05-14 11:08:33 +02:00
Leonardo Galli
6210c5b8f8 Merge remote-tracking branch 'origin/develop' into develop 2017-05-14 11:03:28 +02:00
Leonardo Galli
6e31f7220c Fix osx updater failing. 2017-05-14 11:03:20 +02:00
Leonardo Galli
797a9acff5 Update TaskManager.cs 2017-05-13 21:22:55 +02:00
Leonardo Galli
b36053e1f4 Update LogEntries token again :) 2017-05-13 20:32:55 +02:00
Leonardo Galli
212bcebdaf Fixed: Using our own logentries token now.
Fixes #1517
2017-05-13 13:11:54 +02:00
Leonardo Galli
3c8162f1d6 Fix test. 2017-05-12 16:52:38 +02:00
Leonardo Galli
096d24ed91 Merge branch 'feature/better-mapping-info' into develop 2017-05-12 16:09:35 +02:00
Leonardo Galli
63e3361fb5 Movies with same name but different year being downloaded regardlessly is now fixed! 2017-05-12 16:09:23 +02:00
Leonardo Galli
51854ef73b Update TaskManager.cs 2017-05-11 23:05:12 +02:00
Levi Wilcox
a0486b54a6 Fixed design issue when deleting css bug (#1480) Fixes #1475 2017-05-11 22:05:34 +02:00
Leonardo Galli
7ed0db10cb 10 Movies are now shown on discover as well as search results.
Show more should also be more consistent now.
2017-05-09 22:28:15 +02:00
Leonardo Galli
e94591a290 Hotfix for when ignored movies would appear again after clicking on show more. 2017-05-09 21:28:22 +02:00
Leonardo Galli
fccd02a0ca Merge remote-tracking branch 'origin/develop' into develop 2017-05-09 20:44:43 +02:00
Leonardo Galli
b49f0e70ed Merge branch 'feature/better-import-exclusions' into develop 2017-05-09 20:44:17 +02:00
Leonardo Galli
fc1585e900 Completely overhauled how import exclusions work.
Currently new exclusions can only be added when adding new movies or deleting old ones. Not manually in the settings menu.
Movies can now be hidden in the new discover feature by using the new import exclusions!
2017-05-09 20:44:07 +02:00
Leonardo Galli
b36ac091fc Fix appveyor build 2017-05-09 19:49:30 +02:00
Leonardo Galli
ab28bfead2 Merge branch 'develop' into feature/better-import-exclusions 2017-05-09 16:55:19 +02:00
Leonardo Galli
3ab3fbfd57 Added ability to discover new movies based on upcoming blurays as well as popular movies (borrowed from steven lu :)) 2017-05-09 16:46:19 +02:00
Leonardo Galli
d133ee3143 Hopefully more logging to catch errors better. 2017-05-08 18:46:03 +02:00
Leonardo Galli
98b6932ffe Merge remote-tracking branch 'origin/develop' into develop 2017-05-08 18:07:38 +02:00
Leonardo Galli
58e81a916c Fixed error when language is present in title, but has dots instead of spaces. For example The.Danish.Girl.2015 2017-05-06 15:26:35 +02:00
PatrickGHanna
817f48448c Fix: A small bug fix for items loading as undefined in organize modal. Movie titles should now show up correctly. (#1424) 2017-05-06 12:31:41 +02:00
hotio
1eca179b4e Update Kodi icon, fixes #1464 (#1492) 2017-05-06 12:30:36 +02:00
Leonardo Galli
b05d505bce Fixed Final in titles parsing as an edition. 2017-05-02 22:15:03 +02:00
Leonardo Galli
ace426e69f Added initial migration. 2017-04-30 14:05:41 +02:00
Mitchell Cash
a57c9917cc Fixed: Radarr not importing torrents in Vuze if the torrent already finished seeding and was stopped (#1471) 2017-04-30 13:14:49 +02:00
Mitchell Cash
9e84b4a782 Fixed: Incorrect imports with Vuze when torrent contains a single file. (#1470) 2017-04-30 10:37:51 +02:00
Mitchell Cash
494ef16735 Fixed: Sonarr UI Authentication cookie should be placed on path (UrlBase) instead of domain alone. Fixes ##1451 2017-04-30 10:30:59 +02:00
Leonardo Galli
5a0f02007f Added trailer links to the discovery page. 2017-04-28 14:14:02 +02:00
Leonardo Galli
b1025e7229 Use Post for tmdbids request, to avoid too long URIs. 2017-04-28 13:14:00 +02:00
Leonardo Galli
446d661345 Added discovery tab based on tmdb recommendations based on your existing movies. (#1450)
Keep scroll position on more in search result view.
Added TMDB score to search results.
2017-04-28 11:04:30 +02:00
David Pooley
3eb351823e Tidy up layout of buttons on the Add Movies page for mobile/tablet (#1454) 2017-04-28 10:59:55 +02:00
morberg
835a7cffa1 Rename Sonarr to Radarr for OSX App 2017-04-26 18:44:57 +02:00
Leonardo Galli
e728330ce4 Minor text fixes. 2017-04-26 15:45:06 +02:00
Leonardo Galli
6f3118c142 Merge remote-tracking branch 'origin/develop' into develop 2017-04-26 15:17:49 +02:00
Leonardo Galli
b568072140 Change default page size to 250. Should help with safari timeouts. 2017-04-26 15:17:42 +02:00
Leonardo Galli
7db92c6bcf Enable automatic renaming, according to naming scheme, of movie folder after creation of the movie. (#1349)
Please test everything you can about this and report back if everything still works correctly.
2017-04-26 13:31:55 +02:00
Leonardo Galli
f1e8a9acfc Fix for error when clicking Rescan Drone Folder 2017-04-19 22:04:34 +02:00
Leonardo Galli
dae389ce64 Fix for error when trying to manually import. 2017-04-19 22:03:52 +02:00
Leonardo Galli
7c3d8c8ff9 Added multiple new editions such as FanEdit, Anniversary and 2in1. 2017-04-19 21:02:01 +02:00
Donald Webster
8ca66fb61a Change smtp.google.com to smtp.gmail.com (#1410) 2017-04-18 19:28:15 +02:00
Leonardo Galli
064844ac0c Fix PTP_Approved turning into HDBits Internal. 2017-04-18 16:41:40 +02:00
Leonardo Galli
5540594ecf Fix ptp tests. 2017-04-17 22:30:51 +02:00
Leonardo Galli
433ae019de AHD, PTP and HDB support the new indexer flags too now! Indexer flags can be preferred over other releases. 2017-04-17 17:12:09 +02:00
Leonardo Galli
10091b9454 Movies with Umlauts are now correctly matched and have correct CleanTitles.
An update library is recommended. Fixes #1338
2017-04-17 13:08:47 +02:00
Leonardo Galli
475851775f Minor Text fixes. 2017-04-17 12:11:35 +02:00
Leonardo Galli
0fff862fd2 Updated debug movie title to include Year. 2017-04-17 12:09:24 +02:00
Leonardo Galli
23754c49dc Fix error when MinimumAvailability was Announced and Delay was negative. 2017-04-17 12:08:03 +02:00
Leonardo Galli
fbf790e9fd Disable PreDB sync for now. 2017-04-17 12:04:54 +02:00
Leonardo Galli
6d00bd0f7a Stats are now sent to our server instead of Sonarr's :) 2017-04-17 12:01:56 +02:00
hotio
5bf95e0d9e Update Series reference to Movies, should fix #1399 (#1402) 2017-04-16 23:20:42 +02:00
Leonardo Galli
8bb4b02be7 Fix for sql error. Did not think everything through exactly.
Fixes #1390.
2017-04-16 00:48:39 +02:00
Leonardo Galli
b26a036eed Fix when MovieTitle is the empty string (should not occur, but what evs)
Fixes #1389
2017-04-16 00:26:16 +02:00
Leonardo Galli
ef57882291 Fixes Movie Size not showing correctly.
Fixes #1379
2017-04-15 15:47:40 +02:00
Leonardo Galli
32a2407ad1 Fixed an issue where movies which were labelled with an alternative title could not be found.
Fixes #557 Fixes #1387 Probably fixes #1372, probably fixes #555
2017-04-15 14:50:34 +02:00
Leonardo Galli
33b48eec95 Indexer flags implementation. (#1377) Will be further finalized over the next few weeks with Freelech, preferring of certain flags, etc 2017-04-14 22:27:48 +02:00
Leonardo Galli
3790dc9109 Added test for fix in last commit. 2017-04-13 14:18:48 +02:00
Leonardo Galli
343d849536 Add default runtime when runtime info of tmdb says 0.
Fixes #1371
2017-04-13 14:04:38 +02:00
Leonardo Galli
c36b259fa9 Fixes an issue where the semicolon and space afterwards was replaced.
This caused issues with cleaning the title afterwards. Fixes #1185
2017-04-13 10:27:00 +02:00
Leonardo Galli
6463913f22 Final tweak for package.sh 2017-04-12 22:31:49 +02:00
Leonardo Galli
e39deb4bdc Update branch. 2017-04-12 21:57:59 +02:00
Leonardo Galli
9ca2c21547 This should finally fix all packaging stuff. 2017-04-12 21:46:33 +02:00
Leonardo Galli
f376360611 Update packages.sh some more. 2017-04-12 21:23:02 +02:00
Leonardo Galli
3e966d4d58 Update package.sh script 2017-04-12 21:20:33 +02:00
Leonardo Galli
e036267c33 Test fixes. 2017-04-12 18:23:04 +02:00
Leonardo Galli
7d4378ca7a More test debugging. 2017-04-12 18:12:47 +02:00
Leonardo Galli
ee1ebfd893 Remote Test debugging yey! 2017-04-12 17:58:52 +02:00
Leonardo Galli
403fd0f0c0 Remove unecessary test. 2017-04-12 17:17:22 +02:00
Leonardo Galli
fc5ac8219f Using NUnit.Runners so that teamcity build works. 2017-04-12 17:03:53 +02:00
Leonardo Galli
600a433faa Merge remote-tracking branch 'origin/develop' into develop 2017-04-12 16:45:23 +02:00
Leonardo Galli
5609facd9d Fixed package script for Teamcity. 2017-04-12 16:45:13 +02:00
Leonardo Galli
36ea6c6b99 Turn installer back on. 2017-04-12 12:23:07 +02:00
Leonardo Galli
56ac87c760 Disabled installer being picked up, causes error with update api. 2017-04-11 21:19:31 +02:00
Leonardo Galli
47753c47a5 Now artifacts get pushed even if tests fail 2017-04-11 19:40:13 +02:00
Leonardo Galli
712c0eb84a Log if ParsedMovieInfo is NULL. 2017-04-11 19:31:33 +02:00
Leonardo Galli
8765155223 Merge remote-tracking branch 'origin/develop' into develop 2017-04-11 12:16:14 +02:00
Leonardo Galli
63d7596e98 Catching predb.me errors hopefully. 2017-04-11 12:15:52 +02:00
5617 changed files with 232040 additions and 232646 deletions

View File

@@ -2,14 +2,256 @@
# editorconfig.org
root = true
[*.{cs,html,js,hbs}]
# NOTE: Requires **VS2019 16.3** or later
# Stylecop.ruleset
# Description: Rules for Radarr
# Code files
[*.cs]
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 4
[*.less]
# Sort using and Import directives with System.* appearing first
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
# Indentation preferences
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
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 = _
# Prefer "var" everywhere
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = true:suggestion
# Stylecop Rules
dotnet_diagnostic.SA0001.severity = none
dotnet_diagnostic.SA1005.severity = none
dotnet_diagnostic.SA1025.severity = none
dotnet_diagnostic.SA1101.severity = none
dotnet_diagnostic.SA1116.severity = none
dotnet_diagnostic.SA1118.severity = none
dotnet_diagnostic.SA1122.severity = none
dotnet_diagnostic.SA1201.severity = suggestion
dotnet_diagnostic.SA1202.severity = suggestion
dotnet_diagnostic.SA1204.severity = suggestion
dotnet_diagnostic.SA1300.severity = none
dotnet_diagnostic.SA1303.severity = none
dotnet_diagnostic.SA1304.severity = none
dotnet_diagnostic.SA1306.severity = none
dotnet_diagnostic.SA1309.severity = none
dotnet_diagnostic.SA1310.severity = none
dotnet_diagnostic.SA1401.severity = none
dotnet_diagnostic.SA1402.severity = none
dotnet_diagnostic.SA1404.severity = suggestion
dotnet_diagnostic.SA1405.severity = suggestion
dotnet_diagnostic.SA1406.severity = suggestion
dotnet_diagnostic.SA1410.severity = suggestion
dotnet_diagnostic.SA1411.severity = suggestion
dotnet_diagnostic.SA1413.severity = none
dotnet_diagnostic.SA1516.severity = none
dotnet_diagnostic.SA1600.severity = none
dotnet_diagnostic.SA1601.severity = none
dotnet_diagnostic.SA1602.severity = none
dotnet_diagnostic.SA1604.severity = none
dotnet_diagnostic.SA1605.severity = none
dotnet_diagnostic.SA1606.severity = none
dotnet_diagnostic.SA1607.severity = none
dotnet_diagnostic.SA1608.severity = none
dotnet_diagnostic.SA1610.severity = none
dotnet_diagnostic.SA1611.severity = none
dotnet_diagnostic.SA1612.severity = none
dotnet_diagnostic.SA1613.severity = none
dotnet_diagnostic.SA1614.severity = none
dotnet_diagnostic.SA1615.severity = none
dotnet_diagnostic.SA1616.severity = none
dotnet_diagnostic.SA1617.severity = none
dotnet_diagnostic.SA1618.severity = none
dotnet_diagnostic.SA1619.severity = none
dotnet_diagnostic.SA1620.severity = none
dotnet_diagnostic.SA1621.severity = none
dotnet_diagnostic.SA1622.severity = none
dotnet_diagnostic.SA1623.severity = none
dotnet_diagnostic.SA1624.severity = none
dotnet_diagnostic.SA1625.severity = none
dotnet_diagnostic.SA1626.severity = none
dotnet_diagnostic.SA1627.severity = none
dotnet_diagnostic.SA1629.severity = none
dotnet_diagnostic.SA1633.severity = none
dotnet_diagnostic.SA1634.severity = none
dotnet_diagnostic.SA1635.severity = none
dotnet_diagnostic.SA1636.severity = none
dotnet_diagnostic.SA1637.severity = none
dotnet_diagnostic.SA1638.severity = none
dotnet_diagnostic.SA1640.severity = none
dotnet_diagnostic.SA1641.severity = none
dotnet_diagnostic.SA1642.severity = none
dotnet_diagnostic.SA1643.severity = none
dotnet_diagnostic.SA1648.severity = none
dotnet_diagnostic.SA1649.severity = none
dotnet_diagnostic.SA1651.severity = none
dotnet_diagnostic.SX1101.severity = warning
dotnet_diagnostic.SX1309.severity = warning
# Microsoft Analyzers that fail and need to be sorted thru
dotnet_diagnostic.ASP0000.severity = suggestion
dotnet_diagnostic.CA1000.severity = suggestion
dotnet_diagnostic.CA1001.severity = suggestion
dotnet_diagnostic.CA1003.severity = suggestion
dotnet_diagnostic.CA1008.severity = suggestion
dotnet_diagnostic.CA1010.severity = suggestion
dotnet_diagnostic.CA1012.severity = suggestion
dotnet_diagnostic.CA1014.severity = suggestion
dotnet_diagnostic.CA1016.severity = suggestion
dotnet_diagnostic.CA1017.severity = suggestion
dotnet_diagnostic.CA1018.severity = suggestion
dotnet_diagnostic.CA1019.severity = suggestion
dotnet_diagnostic.CA1021.severity = suggestion
dotnet_diagnostic.CA1024.severity = suggestion
dotnet_diagnostic.CA1027.severity = suggestion
dotnet_diagnostic.CA1028.severity = suggestion
dotnet_diagnostic.CA1030.severity = suggestion
dotnet_diagnostic.CA1031.severity = suggestion
dotnet_diagnostic.CA1032.severity = suggestion
dotnet_diagnostic.CA1033.severity = suggestion
dotnet_diagnostic.CA1034.severity = suggestion
dotnet_diagnostic.CA1036.severity = suggestion
dotnet_diagnostic.CA1040.severity = suggestion
dotnet_diagnostic.CA1041.severity = suggestion
dotnet_diagnostic.CA1043.severity = suggestion
dotnet_diagnostic.CA1044.severity = suggestion
dotnet_diagnostic.CA1050.severity = suggestion
dotnet_diagnostic.CA1051.severity = suggestion
dotnet_diagnostic.CA1052.severity = suggestion
dotnet_diagnostic.CA1054.severity = suggestion
dotnet_diagnostic.CA1055.severity = suggestion
dotnet_diagnostic.CA1056.severity = suggestion
dotnet_diagnostic.CA1058.severity = suggestion
dotnet_diagnostic.CA1060.severity = suggestion
dotnet_diagnostic.CA1061.severity = suggestion
dotnet_diagnostic.CA1062.severity = suggestion
dotnet_diagnostic.CA1063.severity = suggestion
dotnet_diagnostic.CA1064.severity = suggestion
dotnet_diagnostic.CA1065.severity = suggestion
dotnet_diagnostic.CA1066.severity = suggestion
dotnet_diagnostic.CA1067.severity = suggestion
dotnet_diagnostic.CA1068.severity = suggestion
dotnet_diagnostic.CA1069.severity = suggestion
dotnet_diagnostic.CA1200.severity = suggestion
dotnet_diagnostic.CA1303.severity = suggestion
dotnet_diagnostic.CA1304.severity = suggestion
dotnet_diagnostic.CA1305.severity = suggestion
dotnet_diagnostic.CA1307.severity = suggestion
dotnet_diagnostic.CA1308.severity = suggestion
dotnet_diagnostic.CA1401.severity = suggestion
dotnet_diagnostic.CA1507.severity = suggestion
dotnet_diagnostic.CA1707.severity = suggestion
dotnet_diagnostic.CA1710.severity = suggestion
dotnet_diagnostic.CA1712.severity = suggestion
dotnet_diagnostic.CA1714.severity = suggestion
dotnet_diagnostic.CA1715.severity = suggestion
dotnet_diagnostic.CA1716.severity = suggestion
dotnet_diagnostic.CA1717.severity = suggestion
dotnet_diagnostic.CA1720.severity = suggestion
dotnet_diagnostic.CA1721.severity = suggestion
dotnet_diagnostic.CA1724.severity = suggestion
dotnet_diagnostic.CA1801.severity = suggestion
dotnet_diagnostic.CA1802.severity = suggestion
dotnet_diagnostic.CA1805.severity = suggestion
dotnet_diagnostic.CA1806.severity = suggestion
dotnet_diagnostic.CA1810.severity = suggestion
dotnet_diagnostic.CA1812.severity = suggestion
dotnet_diagnostic.CA1814.severity = suggestion
dotnet_diagnostic.CA1815.severity = suggestion
dotnet_diagnostic.CA1816.severity = suggestion
dotnet_diagnostic.CA1819.severity = suggestion
dotnet_diagnostic.CA1822.severity = suggestion
dotnet_diagnostic.CA1823.severity = suggestion
dotnet_diagnostic.CA1824.severity = suggestion
dotnet_diagnostic.CA2000.severity = suggestion
dotnet_diagnostic.CA2002.severity = suggestion
dotnet_diagnostic.CA2007.severity = suggestion
dotnet_diagnostic.CA2008.severity = suggestion
dotnet_diagnostic.CA2009.severity = suggestion
dotnet_diagnostic.CA2010.severity = suggestion
dotnet_diagnostic.CA2011.severity = suggestion
dotnet_diagnostic.CA2012.severity = suggestion
dotnet_diagnostic.CA2013.severity = suggestion
dotnet_diagnostic.CA2100.severity = suggestion
dotnet_diagnostic.CA2101.severity = suggestion
dotnet_diagnostic.CA2119.severity = suggestion
dotnet_diagnostic.CA2153.severity = suggestion
dotnet_diagnostic.CA2200.severity = suggestion
dotnet_diagnostic.CA2207.severity = suggestion
dotnet_diagnostic.CA2208.severity = suggestion
dotnet_diagnostic.CA2211.severity = suggestion
dotnet_diagnostic.CA2213.severity = suggestion
dotnet_diagnostic.CA2214.severity = suggestion
dotnet_diagnostic.CA2215.severity = suggestion
dotnet_diagnostic.CA2216.severity = suggestion
dotnet_diagnostic.CA2219.severity = suggestion
dotnet_diagnostic.CA2225.severity = suggestion
dotnet_diagnostic.CA2226.severity = suggestion
dotnet_diagnostic.CA2227.severity = suggestion
dotnet_diagnostic.CA2229.severity = suggestion
dotnet_diagnostic.CA2231.severity = suggestion
dotnet_diagnostic.CA2234.severity = suggestion
dotnet_diagnostic.CA2235.severity = suggestion
dotnet_diagnostic.CA2237.severity = suggestion
dotnet_diagnostic.CA2241.severity = suggestion
dotnet_diagnostic.CA2242.severity = suggestion
dotnet_diagnostic.CA2243.severity = suggestion
dotnet_diagnostic.CA2244.severity = suggestion
dotnet_diagnostic.CA2245.severity = suggestion
dotnet_diagnostic.CA2246.severity = suggestion
dotnet_diagnostic.CA3061.severity = suggestion
dotnet_diagnostic.CA3075.severity = suggestion
dotnet_diagnostic.CA3076.severity = suggestion
dotnet_diagnostic.CA3077.severity = suggestion
dotnet_diagnostic.CA3147.severity = suggestion
dotnet_diagnostic.CA5350.severity = suggestion
dotnet_diagnostic.CA5351.severity = suggestion
dotnet_diagnostic.CA5359.severity = suggestion
dotnet_diagnostic.CA5360.severity = suggestion
dotnet_diagnostic.CA5363.severity = suggestion
dotnet_diagnostic.CA5364.severity = suggestion
dotnet_diagnostic.CA5365.severity = suggestion
dotnet_diagnostic.CA5366.severity = suggestion
dotnet_diagnostic.CA5368.severity = suggestion
dotnet_diagnostic.CA5369.severity = suggestion
dotnet_diagnostic.CA5370.severity = suggestion
dotnet_diagnostic.CA5371.severity = suggestion
dotnet_diagnostic.CA5372.severity = suggestion
dotnet_diagnostic.CA5373.severity = suggestion
dotnet_diagnostic.CA5374.severity = suggestion
dotnet_diagnostic.CA5379.severity = suggestion
dotnet_diagnostic.CA5384.severity = suggestion
dotnet_diagnostic.CA5385.severity = suggestion
dotnet_diagnostic.CA5397.severity = suggestion
[*.{js,html,js,hbs,less,css}]
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

10
.esprintrc Normal file
View File

@@ -0,0 +1,10 @@
{
"paths": [
"frontend/src/**/*.js",
"src/NzbDrone.Core/Localization/Core/*.json"
],
"ignored": [
"**/node_modules/**/*"
],
"port": 5004
}

22
.gitattributes vendored
View File

@@ -1,22 +1,10 @@
# Auto detect text files and perform LF normalization
*text eol=lf
* text=auto
# Explicitly set bash scripts to have unix endings
*.sh text eol=lf
macOS/Radarr text eol=lf
# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain

8
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: radarr
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
custom: # Replace with a single custom sponsorship URL

View File

@@ -1,16 +0,0 @@
**Description:**
Check first that your problem is not listed in our wiki section:
* https://github.com/Radarr/Radarr/wiki/Common-Problems
* https://github.com/Radarr/Radarr/wiki/FAQ
Provide a description of the feature request or bug here, the more details the better.
Please also try to include the following if you are reporting a bug
**Radarr Version:**
**Logs:**
Please use the search bar and make sure you are not submitting an already submitted issue.
Visit our [Discord server](https://discord.gg/NWYch8M) for support or longer discussions.

35
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,35 @@
---
name: Bug Report
about: Support Requests will be closed immediately, if you are unsure go to our Reddit or Discord first. Exceptions do not mean you found a bug!
title: ''
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Platform Information (please complete the following information):**
- OS: [e.g. Windows 10 2004 / Ubuntu 20.10]
- Docker: [Yes/No]
- Mono or.NET Core Version: [e.g. Mono 5.8 or .Net Core 3.1.10] (found under System -> Status)
- Browser and Version [e.g. chrome 86.0.4240.198] (Only needed for UI issues)
- Radarr Version [e.g. 3.0.0.2956]
- Radarr Branch [e.g. master]
**Trace Logs**
Turn on Trace logs under Settings -> General and wait for the bug to occur again. **Upload the full log file here (or another site (e.g. pastebin) and link it). Issues will be closed, if they do not include this!**

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Support via Discord
url: https://discord.gg/r5wJPt9
about: Chat with users and devs on support and setup related topics.
- name: Support via Reddit
url: https://reddit.com/r/radarr
about: Discuss and search thru support topics.

View File

@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: feature request
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@@ -3,10 +3,13 @@ YES | NO
#### Description
#### Screenshot (if UI related)
#### Todos
- [ ] Tests
- [ ] Translation Keys
- [ ] Wiki Updates
#### Issues Fixed or Closed by this PR
* #
* Fixes #XXXX

2
.github/config.yml vendored Normal file
View File

@@ -0,0 +1,2 @@
todo:
keyword: "TODO"

1
.github/reaction.yml vendored Normal file
View File

@@ -0,0 +1 @@

21
.github/stale.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- feature request
- parser
- confirmed
- sonarr-pull
- lidarr-pull
- readarr-pull
- v3
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had recent activity. Please verify that this is still an issue with the latest version of Radarr and report back. Otherwise this issue will be closed.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
only: issues

13
.github/support.yml vendored Normal file
View File

@@ -0,0 +1,13 @@
# Configuration for support-requests - https://github.com/dessant/support-requests
# Label used to mark issues as support requests
supportLabel: support
# Comment to post on issues marked as support requests. Add a link
# to a support page, or set to `false` to disable
supportComment: >
We use the issue tracker exclusively for bug reports and feature requests.
However, this issue appears to be a support request. Please hop over onto our [Discord](https://discord.gg/r5wJPt9) or [Subreddit](https://reddit.com/r/radarr)
# Whether to close issues marked as support requests
close: true
# Whether to lock issues marked as support requests
lock: false

21
.github/workflows/lock.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: 'Lock threads'
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v2
with:
github-token: ${{ github.token }}
issue-lock-inactive-days: '90'
issue-exclude-created-before: ''
issue-exclude-labels: ''
issue-lock-labels: ''
issue-lock-comment: ''
issue-lock-reason: 'resolved'
process-only: ''

64
.gitignore vendored
View File

@@ -11,6 +11,7 @@ src/**/[Oo]bj/
*.user
*.sln.docstates
.vs/
.vscode/
# Build results
*_i.c
@@ -45,6 +46,10 @@ _dotCover*
# DevExpress CodeRush
src/.cr/
# Emacs
*~
\#*\#
# NCrunch
*.ncrunch*
.*crunch*.local.xml
@@ -80,7 +85,6 @@ TestResults
[Tt]est[Rr]esult*
*.Cache
ClientBin
[Ss]tyle[Cc]op.*
~$*
*.dbmdl
Generated_Code #added for RIA/Silverlight projects
@@ -102,40 +106,44 @@ _NCrunch_*
_TeamCity*
# Radarr
Backups/
logs/
MediaCover/
UpdateLogs/
xdg/
config.xml
logs.db*
nzbdrone.db*
nzbdrone.pid
nzbdrone.log*txt
UpdateLogs/
*workspace.xml
*.test-cache
*.userprefs
*/test-results/*
src/UI/.idea/*
*log.txt
node_modules/
_output*
_artifacts
_rawPackage/
_dotTrace*
_tests/
*.Result.xml
coverage*.xml
coverage*.json
setup/Output/
*.~is
UI.Phantom/
# VS outout folders
bin
obj
output/*
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
**/Properties/launchSettings.json
# Packages
Radarr_*/
Radarr_*.zip
Radarr_*.gz
gecko.zip
geckodriver.exe
# macOS metadata files
._*
@@ -148,5 +156,37 @@ _temp_*/**/*
Thumbs.db
# AppVeyor
/tools-cake/
/tools/cake/
/_artifacts/
# Cake
/tools/Addins/*
packages.config.md5sum
# Common IntelliJ Platform excludes
# User specific
**/.idea/**/workspace.xml
**/.idea/**/tasks.xml
**/.idea/shelf/*
**/.idea/dictionaries
**/.idea/.idea.Radarr.Posix
**/.idea/.idea.Radarr.Windows
# Sensitive or high-churn files
**/.idea/**/dataSources/
**/.idea/**/dataSources.ids
**/.idea/**/dataSources.xml
**/.idea/**/dataSources.local.xml
**/.idea/**/sqlDataSources.xml
**/.idea/**/dynamic.xml
# Rider
# Rider auto-generates .iml files, and contentModel.xml
**/.idea/**/*.iml
**/.idea/**/contentModel.xml
**/.idea/**/modules.xml
# ignore node_modules symlink
node_modules
node_modules.nosync

4
.gitmodules vendored
View File

@@ -1,4 +0,0 @@
[submodule "src/ExternalModules/CurlSharp"]
path = src/ExternalModules/CurlSharp
url = https://github.com/Sonarr/CurlSharp.git
branch = master

1
.idea/.name generated
View File

@@ -1 +0,0 @@
Sonarr

25
.idea/Sonarr.iml generated
View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.idea" />
<excludeFolder url="file://$MODULE_DIR$/Logo" />
<excludeFolder url="file://$MODULE_DIR$/_output" />
<excludeFolder url="file://$MODULE_DIR$/_output_mono" />
<excludeFolder url="file://$MODULE_DIR$/_output_osx" />
<excludeFolder url="file://$MODULE_DIR$/_output_osx_app" />
<excludeFolder url="file://$MODULE_DIR$/_start" />
<excludeFolder url="file://$MODULE_DIR$/_tests" />
<excludeFolder url="file://$MODULE_DIR$/debian" />
<excludeFolder url="file://$MODULE_DIR$/node_modules" />
<excludeFolder url="file://$MODULE_DIR$/osx" />
<excludeFolder url="file://$MODULE_DIR$/schemas" />
<excludeFolder url="file://$MODULE_DIR$/setup" />
<excludeFolder url="file://$MODULE_DIR$/src" />
<excludeFolder url="file://$MODULE_DIR$/tools" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Sonarr node_modules" level="project" />
</component>
</module>

View File

@@ -1,59 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectCodeStyleSettingsManager">
<option name="PER_PROJECT_SETTINGS">
<value>
<option name="LINE_SEPARATOR" value="&#13;&#10;" />
<option name="RIGHT_MARGIN" value="190" />
<option name="HTML_ATTRIBUTE_WRAP" value="0" />
<option name="HTML_KEEP_LINE_BREAKS" value="false" />
<option name="HTML_KEEP_BLANK_LINES" value="1" />
<option name="HTML_ALIGN_ATTRIBUTES" value="false" />
<option name="HTML_INLINE_ELEMENTS" value="" />
<option name="HTML_DONT_ADD_BREAKS_IF_INLINE_CONTENT" value="" />
<CssCodeStyleSettings>
<option name="HEX_COLOR_LOWER_CASE" value="true" />
<option name="HEX_COLOR_LONG_FORMAT" value="true" />
<option name="VALUE_ALIGNMENT" value="1" />
</CssCodeStyleSettings>
<JSCodeStyleSettings>
<option name="SPACE_BEFORE_PROPERTY_COLON" value="true" />
<option name="ALIGN_OBJECT_PROPERTIES" value="2" />
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
<option name="OBJECT_LITERAL_WRAP" value="2" />
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
</JSCodeStyleSettings>
<XML>
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
</XML>
<codeStyleSettings language="CSS">
<indentOptions>
<option name="SMART_TABS" value="true" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JavaScript">
<option name="LINE_COMMENT_AT_FIRST_COLUMN" value="true" />
<option name="KEEP_LINE_BREAKS" value="false" />
<option name="KEEP_FIRST_COLUMN_COMMENT" value="false" />
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
<option name="CATCH_ON_NEW_LINE" value="true" />
<option name="FINALLY_ON_NEW_LINE" value="true" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
<option name="SPACE_BEFORE_METHOD_PARENTHESES" value="true" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="BINARY_OPERATION_WRAP" value="1" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="ARRAY_INITIALIZER_WRAP" value="2" />
<option name="ARRAY_INITIALIZER_LBRACE_ON_NEXT_LINE" value="true" />
<option name="ARRAY_INITIALIZER_RBRACE_ON_NEXT_LINE" value="true" />
<option name="IF_BRACE_FORCE" value="3" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
</codeStyleSettings>
</value>
</option>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</component>
</project>

6
.idea/encodings.xml generated
View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptLibraryMappings">
<includedPredefinedLibrary name="ECMAScript 6" />
</component>
</project>

View File

@@ -1,14 +0,0 @@
<component name="libraryTable">
<library name="Sonarr node_modules" type="javaScript">
<properties>
<option name="frameworkName" value="node_modules" />
<sourceFilesUrls>
<item url="file://$PROJECT_DIR$/node_modules" />
</sourceFilesUrls>
</properties>
<CLASSES>
<root url="file://$PROJECT_DIR$/node_modules" />
</CLASSES>
<SOURCES />
</library>
</component>

14
.idea/misc.xml generated
View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectRootManager" version="2" />
</project>

8
.idea/modules.xml generated
View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Sonarr.iml" filepath="$PROJECT_DIR$/.idea/Sonarr.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated
View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -1,16 +0,0 @@
language: csharp
solution: src/NzbDrone.sln
addons:
apt:
packages:
- nodejs
# - npm apparently not needed anymore.
script:
- ./build.sh
- chmod +x test.sh
# - ./test.sh Linux Unit Takes far too long, maybe even crashes travis :/
after_success:
- chmod +x package.sh
- ./package.sh
notifications:
- webhooks: https://discordapp.com/api/webhooks/266910310219251712/V-QvCcnYkg3O8PMevcAJOJyCgrYkZQoF2pupLDGbaISNUECmYPd6LRwl3avKHsPyfgWP

1
.yarnrc Normal file
View File

@@ -0,0 +1 @@
save-prefix ""

BIN
7za.dll

Binary file not shown.

BIN
7za.exe

Binary file not shown.

BIN
7zxa.dll

Binary file not shown.

View File

@@ -3,36 +3,38 @@
We're always looking for people to help make Radarr even better, there are a number of ways to contribute.
## Documentation ##
Setup guides, FAQ, the more information we have on the wiki the better.
Setup guides, FAQ, the more information we have on the [wiki](https://wiki.servarr.com/Radarr) the better.
## Development ##
### Tools required ###
- Visual Studio 2015
- HTML/Javascript editor of choice (Sublime Text/Webstorm/Atom/etc)
- npm (node package manager)
- git
- Visual Studio 2019 or higher (https://www.visualstudio.com/vs/). The community version is free and works (https://www.visualstudio.com/downloads/).
- HTML/Javascript editor of choice (VS Code/Sublime Text/Webstorm/Atom/etc)
- [Git](https://git-scm.com/downloads)
- [NodeJS](https://nodejs.org/en/download/) (Node 10.X.X or higher)
- [Yarn](https://yarnpkg.com/)
- .NET Core 3.1.
### Getting started ###
1. Fork Radarr
2. Clone (develop branch) *you may need pull in submodules separately if you client doesn't clone them automatically (CurlSharp)*
3. Run `npm install`
4. Run `npm start` - Used to compile the UI components and copy them.
Leave this window open.
If you have gulp globally installed you can use `gulp watch` instead
5. Compile in Visual Studio
1. Fork Radarr
2. Clone the repository into your development machine. [*info*](https://help.github.com/articles/working-with-repositories)
3. Install the required Node Packages `yarn install`
4. Start gulp to monitor your dev environment for any changes that need post processing using `yarn start` command.
5. Build the project in Visual Studio, Setting startup project to `Radarr.Console` and framework to `netcoreapp31`
6. Debug the project in Visual Studio
7. Open http://localhost:7878
### Contributing Code ###
- If you're adding a new, already requested feature, please comment on [Github Issues](https://github.com/Radarr/Radarr/issues "Github Issues") so work is not duplicated (If you want to add something not already on there, please talk to us first)
- Rebase from Radarr's develop branch, don't merge
- Make meaningful commits, or squash them
- Feel free to make a pull request before work is complete, this will let us see where its at and make comments/suggest improvements
- Reach out to us on the forums or on IRC if you have any questions
- Reach out to us on the discord if you have any questions
- Add tests (unit/integration)
- Commit with *nix line endings for consistency (We checkout Windows and commit *nix)
- One feature/bug fix per pull request to keep things clean and easy to understand
- Use 4 spaces instead of tabs, this is the default for VS 2012 and WebStorm (to my knowledge)
- Use 4 spaces instead of tabs, this is the default for VS 2019 and WebStorm (to my knowledge)
### Pull Requesting ###
- Only make pull requests to develop, never master, if you make a PR to master we'll comment on it and close it

674
LICENSE Normal file
View File

@@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
{one line to give the program's name and a brief idea of what it does.}
Copyright (C) {year} {name of author}
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
{project} Copyright (C) {year} {fullname}
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 701 B

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 49 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

33
Logo/dottrace.svg Normal file
View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="70px" height="70px" viewBox="0 0 70 70" style="enable-background:new 0 0 70 70;" xml:space="preserve">
<g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-1.3318" y1="43.7371" x2="67.0419" y2="26.0967">
<stop offset="0.1237" style="stop-color:#7866FF"/>
<stop offset="0.5376" style="stop-color:#FE2EB6"/>
<stop offset="0.8548" style="stop-color:#FD0486"/>
</linearGradient>
<polygon style="fill:url(#SVGID_1_);" points="67.3,16 43.7,0 0,31.1 11.1,70 58.9,60.3 "/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="45.9148" y1="38.9098" x2="67.6577" y2="9.0989">
<stop offset="0.1237" style="stop-color:#FF0080"/>
<stop offset="0.2587" style="stop-color:#FE0385"/>
<stop offset="0.4109" style="stop-color:#FA0C92"/>
<stop offset="0.5713" style="stop-color:#F41BA9"/>
<stop offset="0.7363" style="stop-color:#EB2FC8"/>
<stop offset="0.8656" style="stop-color:#E343E6"/>
</linearGradient>
<polygon style="fill:url(#SVGID_2_);" points="67.3,16 43.7,0 38,15.7 38,47.8 70,47.8 "/>
</g>
<g>
<rect x="13.4" y="13.4" style="fill:#000000;" width="43.2" height="43.2"/>
<rect x="17.4" y="48.5" style="fill:#FFFFFF;" width="16.2" height="2.7"/>
<g>
<path style="fill:#FFFFFF;" d="M17.4,19.1h6.9c5.6,0,9.5,3.8,9.5,8.9V28c0,5-3.9,8.9-9.5,8.9h-6.9V19.1z M21.4,22.7v10.7h3
c3.2,0,5.4-2.2,5.4-5.3V28c0-3.2-2.2-5.4-5.4-5.4H21.4z"/>
<polygon style="fill:#FFFFFF;" points="40.3,22.7 34.9,22.7 34.9,19.1 49.6,19.1 49.6,22.7 44.2,22.7 44.2,37 40.3,37 "/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

66
Logo/jetbrains.svg Normal file
View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="120.1px" height="130.2px" viewBox="0 0 120.1 130.2" style="enable-background:new 0 0 120.1 130.2;" xml:space="preserve"
>
<g>
<linearGradient id="XMLID_2_" gradientUnits="userSpaceOnUse" x1="31.8412" y1="120.5578" x2="110.2402" y2="73.24">
<stop offset="0" style="stop-color:#FCEE39"/>
<stop offset="1" style="stop-color:#F37B3D"/>
</linearGradient>
<path id="XMLID_3041_" style="fill:url(#XMLID_2_);" d="M118.6,71.8c0.9-0.8,1.4-1.9,1.5-3.2c0.1-2.6-1.8-4.7-4.4-4.9
c-1.2-0.1-2.4,0.4-3.3,1.1l0,0l-83.8,45.9c-1.9,0.8-3.6,2.2-4.7,4.1c-2.9,4.8-1.3,11,3.6,13.9c3.4,2,7.5,1.8,10.7-0.2l0,0l0,0
c0.2-0.2,0.5-0.3,0.7-0.5l78-54.8C117.3,72.9,118.4,72.1,118.6,71.8L118.6,71.8L118.6,71.8z"/>
<linearGradient id="XMLID_3_" gradientUnits="userSpaceOnUse" x1="48.3607" y1="6.9083" x2="119.9179" y2="69.5546">
<stop offset="0" style="stop-color:#EF5A6B"/>
<stop offset="0.57" style="stop-color:#F26F4E"/>
<stop offset="1" style="stop-color:#F37B3D"/>
</linearGradient>
<path id="XMLID_3049_" style="fill:url(#XMLID_3_);" d="M118.8,65.1L118.8,65.1L55,2.5C53.6,1,51.6,0,49.3,0
c-4.3,0-7.7,3.5-7.7,7.7v0c0,2.1,0.8,3.9,2.1,5.3l0,0l0,0c0.4,0.4,0.8,0.7,1.2,1l67.4,57.7l0,0c0.8,0.7,1.8,1.2,3,1.3
c2.6,0.1,4.7-1.8,4.9-4.4C120.2,67.3,119.7,66,118.8,65.1z"/>
<linearGradient id="XMLID_4_" gradientUnits="userSpaceOnUse" x1="52.9467" y1="63.6407" x2="10.5379" y2="37.1562">
<stop offset="0" style="stop-color:#7C59A4"/>
<stop offset="0.3852" style="stop-color:#AF4C92"/>
<stop offset="0.7654" style="stop-color:#DC4183"/>
<stop offset="0.957" style="stop-color:#ED3D7D"/>
</linearGradient>
<path id="XMLID_3042_" style="fill:url(#XMLID_4_);" d="M57.1,59.5C57,59.5,17.7,28.5,16.9,28l0,0l0,0c-0.6-0.3-1.2-0.6-1.8-0.9
c-5.8-2.2-12.2,0.8-14.4,6.6c-1.9,5.1,0.2,10.7,4.6,13.4l0,0l0,0C6,47.5,6.6,47.8,7.3,48c0.4,0.2,45.4,18.8,45.4,18.8l0,0
c1.8,0.8,3.9,0.3,5.1-1.2C59.3,63.7,59,61,57.1,59.5z"/>
<linearGradient id="XMLID_5_" gradientUnits="userSpaceOnUse" x1="52.1736" y1="3.7019" x2="10.7706" y2="37.8971">
<stop offset="0" style="stop-color:#EF5A6B"/>
<stop offset="0.364" style="stop-color:#EE4E72"/>
<stop offset="1" style="stop-color:#ED3D7D"/>
</linearGradient>
<path id="XMLID_3057_" style="fill:url(#XMLID_5_);" d="M49.3,0c-1.7,0-3.3,0.6-4.6,1.5L4.9,28.3c-0.1,0.1-0.2,0.1-0.2,0.2l-0.1,0
l0,0c-1.7,1.2-3.1,3-3.9,5.1C-1.5,39.4,1.5,45.9,7.3,48c3.6,1.4,7.5,0.7,10.4-1.4l0,0l0,0c0.7-0.5,1.3-1,1.8-1.6l34.6-31.2l0,0
c1.8-1.4,3-3.6,3-6.1v0C57.1,3.5,53.6,0,49.3,0z"/>
<g id="XMLID_3008_">
<rect id="XMLID_3033_" x="34.6" y="37.4" style="fill:#000000;" width="51" height="51"/>
<rect id="XMLID_3032_" x="39" y="78.8" style="fill:#FFFFFF;" width="19.1" height="3.2"/>
<g id="XMLID_3009_">
<path id="XMLID_3030_" style="fill:#FFFFFF;" d="M38.8,50.8l1.5-1.4c0.4,0.5,0.8,0.8,1.3,0.8c0.6,0,0.9-0.4,0.9-1.2l0-5.3l2.3,0
l0,5.3c0,1-0.3,1.8-0.8,2.3c-0.5,0.5-1.3,0.8-2.3,0.8C40.2,52.2,39.4,51.6,38.8,50.8z"/>
<path id="XMLID_3028_" style="fill:#FFFFFF;" d="M45.3,43.8l6.7,0v1.9l-4.4,0V47l4,0l0,1.8l-4,0l0,1.3l4.5,0l0,2l-6.7,0
L45.3,43.8z"/>
<path id="XMLID_3026_" style="fill:#FFFFFF;" d="M55,45.8l-2.5,0l0-2l7.3,0l0,2l-2.5,0l0,6.3l-2.3,0L55,45.8z"/>
<path id="XMLID_3022_" style="fill:#FFFFFF;" d="M39,54l4.3,0c1,0,1.8,0.3,2.3,0.7c0.3,0.3,0.5,0.8,0.5,1.4v0
c0,1-0.5,1.5-1.3,1.9c1,0.3,1.6,0.9,1.6,2v0c0,1.4-1.2,2.3-3.1,2.3l-4.3,0L39,54z M43.8,56.6c0-0.5-0.4-0.7-1-0.7l-1.5,0l0,1.5
l1.4,0C43.4,57.3,43.8,57.1,43.8,56.6L43.8,56.6z M43,59l-1.8,0l0,1.5H43c0.7,0,1.1-0.3,1.1-0.8v0C44.1,59.2,43.7,59,43,59z"/>
<path id="XMLID_3019_" style="fill:#FFFFFF;" d="M46.8,54l3.9,0c1.3,0,2.1,0.3,2.7,0.9c0.5,0.5,0.7,1.1,0.7,1.9v0
c0,1.3-0.7,2.1-1.7,2.6l2,2.9l-2.6,0l-1.7-2.5h-1l0,2.5l-2.3,0L46.8,54z M50.6,58c0.8,0,1.2-0.4,1.2-1v0c0-0.7-0.5-1-1.2-1
l-1.5,0v2H50.6z"/>
<path id="XMLID_3016_" style="fill:#FFFFFF;" d="M56.8,54l2.2,0l3.5,8.4l-2.5,0l-0.6-1.5l-3.2,0l-0.6,1.5l-2.4,0L56.8,54z
M58.8,59l-0.9-2.3L57,59L58.8,59z"/>
<path id="XMLID_3014_" style="fill:#FFFFFF;" d="M62.8,54l2.3,0l0,8.3l-2.3,0L62.8,54z"/>
<path id="XMLID_3012_" style="fill:#FFFFFF;" d="M65.7,54l2.1,0l3.4,4.4l0-4.4l2.3,0l0,8.3l-2,0L68,57.8l0,4.6l-2.3,0L65.7,54z"
/>
<path id="XMLID_3010_" style="fill:#FFFFFF;" d="M73.7,61.1l1.3-1.5c0.8,0.7,1.7,1,2.7,1c0.6,0,1-0.2,1-0.6v0
c0-0.4-0.3-0.5-1.4-0.8c-1.8-0.4-3.1-0.9-3.1-2.6v0c0-1.5,1.2-2.7,3.2-2.7c1.4,0,2.5,0.4,3.4,1.1l-1.2,1.6
c-0.8-0.5-1.6-0.8-2.3-0.8c-0.6,0-0.8,0.2-0.8,0.5v0c0,0.4,0.3,0.5,1.4,0.8c1.9,0.4,3.1,1,3.1,2.6v0c0,1.7-1.3,2.7-3.4,2.7
C76.1,62.5,74.7,62,73.7,61.1z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

50
Logo/resharper.svg Normal file
View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="70px" height="70px" viewBox="0 0 70 70" style="enable-background:new 0 0 70 70;" xml:space="preserve">
<g>
<g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="22.9451" y1="75.7869" x2="74.7868" y2="20.6415">
<stop offset="1.612903e-002" style="stop-color:#B35BA3"/>
<stop offset="0.4044" style="stop-color:#C41E57"/>
<stop offset="0.4677" style="stop-color:#C41E57"/>
<stop offset="0.6505" style="stop-color:#EB8523"/>
<stop offset="0.9516" style="stop-color:#FEBD11"/>
</linearGradient>
<polygon style="fill:url(#SVGID_1_);" points="49.8,15.2 36,36.7 58.4,70 70,23.1 "/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="17.7187" y1="73.2922" x2="69.5556" y2="18.1519">
<stop offset="1.612903e-002" style="stop-color:#B35BA3"/>
<stop offset="0.4044" style="stop-color:#C41E57"/>
<stop offset="0.4677" style="stop-color:#C41E57"/>
<stop offset="0.7043" style="stop-color:#EB8523"/>
</linearGradient>
<polygon style="fill:url(#SVGID_2_);" points="51.1,15.7 49,0 18.8,33.6 27.6,42.3 20.8,70 58.4,70 "/>
</g>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="1.8281" y1="53.4275" x2="48.8245" y2="9.2255">
<stop offset="1.612903e-002" style="stop-color:#B35BA3"/>
<stop offset="0.6613" style="stop-color:#C41E57"/>
</linearGradient>
<polygon style="fill:url(#SVGID_3_);" points="49,0 11.6,0 0,47.1 55.6,47.1 "/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="49.8935" y1="-11.5569" x2="48.8588" y2="24.0352">
<stop offset="0.5" style="stop-color:#C41E57"/>
<stop offset="0.6668" style="stop-color:#D13F48"/>
<stop offset="0.7952" style="stop-color:#D94F39"/>
<stop offset="0.8656" style="stop-color:#DD5433"/>
</linearGradient>
<polygon style="fill:url(#SVGID_4_);" points="55.3,47.1 51.1,15.7 49,0 41.7,23 "/>
</g>
<g>
<rect x="13.4" y="13.5" transform="matrix(-1 2.577289e-003 -2.577289e-003 -1 70.0288 70.081)" style="fill:#000000;" width="43.2" height="43.2"/>
<rect x="17.6" y="48.6" transform="matrix(1 -2.577289e-003 2.577289e-003 1 -0.1287 6.634109e-002)" style="fill:#FFFFFF;" width="16.2" height="2.7"/>
<path style="fill:#FFFFFF;" d="M17.4,19.1l8.2,0c2.3,0,4,0.6,5.2,1.8c1,1,1.5,2.4,1.5,4.1l0,0.1c0,1.5-0.3,2.6-1.1,3.5
c-0.7,0.9-1.6,1.6-2.8,2l4.4,6.4l-4.6,0l-3.7-5.5l-3.3,0l0,5.5l-3.9,0L17.4,19.1z M25.3,27.8c1,0,1.7-0.2,2.2-0.7
c0.5-0.5,0.8-1.1,0.8-1.8l0-0.1c0-0.9-0.3-1.5-0.8-1.9c-0.5-0.4-1.3-0.6-2.3-0.6l-3.9,0l0,5.1L25.3,27.8z"/>
<path style="fill:#FFFFFF;" d="M36,33.2l-1.9,0l0-3.3l2.5,0l0.6-3.8l-2.3,0l0-3.3l2.8,0l0.6-3.7l3.4,0l-0.6,3.7l3.7,0l0.6-3.7
l3.4,0l-0.6,3.7l1.9,0l0,3.3l-2.5,0L47,29.9l2.3,0l0,3.3l-2.8,0L45.8,37l-3.4,0l0.7-3.8l-3.7,0L38.7,37l-3.4,0L36,33.2z
M43.7,29.9l0.6-3.8l-3.7,0L40,29.9L43.7,29.9z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

42
Logo/rider.svg Normal file
View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="70px" height="70px" viewBox="0 0 70 70" style="enable-background:new 0 0 70 70;" xml:space="preserve">
<defs>
<linearGradient id="linear-gradient" x1="70.22612" y1="27.79912" x2="-5.13024" y2="63.12242" gradientTransform="matrix(1, 0, 0, -1, 0, 71.27997)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#c90f5e"/>
<stop offset="0.22111" stop-color="#c90f5e"/>
<stop offset="0.2356" stop-color="#c90f5e"/>
<stop offset="0.35559" stop-color="#ca135c"/>
<stop offset="0.46633" stop-color="#ce1e57"/>
<stop offset="0.5735" stop-color="#d4314e"/>
<stop offset="0.67844" stop-color="#dc4b41"/>
<stop offset="0.78179" stop-color="#e66d31"/>
<stop offset="0.88253" stop-color="#f3961d"/>
<stop offset="0.94241" stop-color="#fcb20f"/>
</linearGradient>
<linearGradient id="linear-gradient-2" x1="24.65904" y1="61.99608" x2="46.04762" y2="2.93445" gradientTransform="matrix(1, 0, 0, -1, 0, 71.27997)" gradientUnits="userSpaceOnUse">
<stop offset="0.04188" stop-color="#077cfb"/>
<stop offset="0.44503" stop-color="#c90f5e"/>
<stop offset="0.95812" stop-color="#077cfb"/>
</linearGradient>
<linearGradient id="linear-gradient-3" x1="17.39552" y1="63.34592" x2="33.19389" y2="7.20092" gradientTransform="matrix(1, 0, 0, -1, 0, 71.27997)" gradientUnits="userSpaceOnUse">
<stop offset="0.27749" stop-color="#c90f5e"/>
<stop offset="0.97382" stop-color="#fcb20f"/>
</linearGradient>
</defs>
<title>rider</title>
<g>
<polygon points="70 27.237 63.391 23.75 20.926 0 3.827 17.921 21.619 41.068 60.537 44.397 70 27.237" fill="url(#linear-gradient)"/>
<polygon points="50.423 16.132 44.271 1.107 27.643 17.471 11.768 50.194 49.411 70 70 57.98 50.423 16.132" fill="url(#linear-gradient-2)"/>
<polygon points="20.926 0 0 14.095 7.779 62.172 27.848 69.889 53.78 48.823 20.926 0" fill="url(#linear-gradient-3)"/>
</g>
<g>
<rect x="13.30219" y="13.19311" width="43.61371" height="43.61371"/>
<g>
<path d="M17.22741,18.86293h8.39564a7.38416,7.38416,0,0,1,5.34268,1.85358,5.86989,5.86989,0,0,1,1.52648,4.1433h0A5.74339,5.74339,0,0,1,28.567,30.5296l4.47041,6.54206H28.34891L24.42368,31.1838h-3.162v5.88785H17.22741V18.86293h0ZM25.296,27.69471c1.96262,0,3.053-1.09034,3.053-2.61682h0c0-1.74455-1.19938-2.61682-3.162-2.61682H21.15265v5.23365H25.296Z" fill="#fff"/>
<path d="M36.09034,18.86293H43.2866c5.77882,0,9.70405,3.92523,9.70405,9.15888h0c0,5.12461-3.92523,9.15888-9.70405,9.15888H36.09034V18.86293Zm4.03427,3.59813V33.47352h3.162a5.23727,5.23727,0,0,0,5.56075-5.45171h0a5.26493,5.26493,0,0,0-5.56075-5.56075h-3.162Z" fill="#fff"/>
</g>
<rect x="17.22741" y="48.62925" width="16.35514" height="2.72586" fill="#fff"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 32 KiB

36
Logo/webstorm.svg Normal file
View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="70px" height="70px" viewBox="0 0 70 70" style="enable-background:new 0 0 70 70;" xml:space="preserve">
<g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="25.0676" y1="1.4599" x2="43.1829" y2="66.675">
<stop offset="0.2849" style="stop-color:#00CDD7"/>
<stop offset="0.9409" style="stop-color:#2086D7"/>
</linearGradient>
<polygon style="fill:url(#SVGID_1_);" points="9.4,63.3 0,7.3 17.5,0.1 28.6,6.7 38.8,1.2 60.1,9.4 48.1,70 "/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="30.7199" y1="9.7343" x2="61.365" y2="54.6713">
<stop offset="0.1398" style="stop-color:#FFF045"/>
<stop offset="0.3656" style="stop-color:#00CDD7"/>
</linearGradient>
<polygon style="fill:url(#SVGID_2_);" points="70,23.7 61,1.4 44.6,0 19.3,24.3 26.1,55.6 38.8,64.6 70,46 62.3,31.7 "/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="61.0819" y1="15.2899" x2="65.1065" y2="29.5436">
<stop offset="0.2849" style="stop-color:#00CDD7"/>
<stop offset="0.9409" style="stop-color:#2086D7"/>
</linearGradient>
<polygon style="fill:url(#SVGID_3_);" points="56,20.4 62.3,31.7 70,23.7 64.4,9.8 "/>
</g>
<g>
<g>
<rect x="13.4" y="13.4" style="fill:#000000;" width="43.2" height="43.2"/>
<rect x="17.5" y="48.5" style="fill:#FFFFFF;" width="16.2" height="2.7"/>
<path style="fill:#FFFFFF;" d="M38.7,34.3l2.3-2.8c1.6,1.3,3.3,2.2,5.3,2.2c1.6,0,2.5-0.6,2.5-1.7v-0.1c0-1-0.6-1.5-3.6-2.3
c-3.6-0.9-5.8-1.9-5.8-5.5v-0.1c0-3.3,2.6-5.4,6.2-5.4c2.6,0,4.8,0.8,6.6,2.3l-2,3c-1.6-1.1-3.1-1.8-4.6-1.8
c-1.5,0-2.3,0.7-2.3,1.6v0.1c0,1.2,0.8,1.6,3.8,2.4c3.6,1,5.6,2.3,5.6,5.4v0.1c0,3.6-2.7,5.6-6.5,5.6
C43.5,37.2,40.8,36.2,38.7,34.3"/>
</g>
<polygon style="fill:#FFFFFF;" points="35.2,19 32.5,29.4 29.5,19 26.5,19 23.4,29.4 20.7,19 16.6,19 21.7,36.9 25,36.9 28,26.5
30.9,36.9 34.3,36.9 39.4,19 "/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

143
README.md
View File

@@ -1,62 +1,15 @@
<p align="center">
<img src="/Logo/text256.png" alt="Radarr">
</p>
# Radarr
Radarr is an __independent__ fork of [Sonarr](https://github.com/Sonarr/Sonarr) reworked for automatically downloading movies via Usenet and BitTorrent.
[![Build Status](https://dev.azure.com/Radarr/Radarr/_apis/build/status/Radarr.Radarr?branchName=develop)](https://dev.azure.com/Radarr/Radarr/_build/latest?definitionId=1&branchName=develop)
[![Translated](https://translate.servarr.com/widgets/radarr/-/radarr/svg-badge.svg)](https://translate.servarr.com/engage/radarr/?utm_source=widget)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/radarr.svg)](https://wiki.servarr.com/Radarr_Installation#Docker)
![Github Downloads](https://img.shields.io/github/downloads/Radarr/Radarr/total.svg)
[![Backers on Open Collective](https://opencollective.com/Radarr/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/Radarr/sponsors/badge.svg)](#sponsors)
The project was inspired by other Usenet/BitTorrent movie downloaders such as CouchPotato.
Radarr is a movie collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new movies and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available.
## Getting Started
[![Installation](https://img.shields.io/badge/wiki-installation-brightgreen.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr/wiki/Installation)
[![Docker](https://img.shields.io/badge/wiki-docker-1488C6.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr/wiki/Docker)
[![Setup Guide](https://img.shields.io/badge/wiki-setup_guide-orange.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr/wiki/Setup-Guide)
[![FAQ](https://img.shields.io/badge/wiki-FAQ-BF55EC.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr/wiki/FAQ)
* [Install Radarr for your desired OS](https://github.com/Radarr/Radarr/wiki/Installation) *or* use [Docker](https://github.com/Radarr/Radarr/wiki/Docker)
* *For Linux users*, run `radarr` and *optionally* have [Radarr start automatically](https://github.com/Radarr/Radarr/wiki/Autostart-on-Linux)
* Connect to the UI through <http://localhost:7878> or <http://your-ip:7878> in your web browser
* See the [Setup Guide](https://github.com/Radarr/Radarr/wiki/Setup-Guide) for further configuration
## Downloads
[![GitHub Releases](https://img.shields.io/badge/downloads-releases-brightgreen.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr/releases)
[![AppVeyor Builds](https://img.shields.io/badge/downloads-continuous-green.svg?maxAge=60&style=flat-square)](https://ci.appveyor.com/project/galli-leo/radarr-usby1/build/artifacts)
[![Docker release](https://img.shields.io/badge/docker-release-blue.svg?colorB=1488C6&maxAge=60&style=flat-square)](https://store.docker.com/community/images/linuxserver/radarr)
[![Docker nightly](https://img.shields.io/badge/docker-nightly-blue.svg?colorB=1488C6&maxAge=60&style=flat-square)](https://store.docker.com/community/images/hotio/radarr)
[![Docker armhf](https://img.shields.io/badge/docker-armhf-blue.svg?colorB=1488C6&maxAge=60&style=flat-square)](https://store.docker.com/community/images/lsioarmhf/radarr)
[![Docker aarch64](https://img.shields.io/badge/docker-aarch64-blue.svg?colorB=1488C6&maxAge=60&style=flat-square)](https://store.docker.com/community/images/lsioarmhf/radarr-aarch64)
## Support
[![Discord](https://img.shields.io/badge/discord-chat-7289DA.svg?maxAge=60&style=flat-square)](https://discord.gg/AD3UP37)
[![Reddit](https://img.shields.io/badge/reddit-discussion-FF4500.svg?maxAge=60&style=flat-square)](https://www.reddit.com/r/radarr)
[![Feathub](https://img.shields.io/badge/feathub-requests-lightgrey.svg?maxAge=60&style=flat-square)](http://feathub.com/Radarr/Radarr)
[![GitHub](https://img.shields.io/badge/github-issues-red.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr/issues)
[![GitHub Wiki](https://img.shields.io/badge/github-wiki-181717.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr/wiki)
## Status
[![GitHub issues](https://img.shields.io/github/issues/radarr/radarr.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr/issues)
[![GitHub pull requests](https://img.shields.io/github/issues-pr/radarr/radarr.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr/pulls)
[![GNU GPL v3](https://img.shields.io/badge/license-GNU%20GPL%20v3-blue.svg?maxAge=60&style=flat-square)](http://www.gnu.org/licenses/gpl.html)
[![Copyright 2010-2017](https://img.shields.io/badge/copyright-2017-blue.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr)
[![Github Releases](https://img.shields.io/github/downloads/Radarr/Radarr/total.svg?maxAge=60&style=flat-square)](https://github.com/Radar/Radarr/releases/latest)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/radarr.svg?maxAge=60&style=flat-square)](https://hub.docker.com/r/linuxserver/radarr/)
| Service | Master | Develop |
|----------|:---------------------------:|:----------------------------:|
| AppVeyor | [![AppVeyor](https://img.shields.io/appveyor/ci/galli-leo/Radarr/master.svg?maxAge=60&style=flat-square)](https://ci.appveyor.com/project/galli-leo/Radarr) | [![AppVeyor](https://img.shields.io/appveyor/ci/galli-leo/Radarr-usby1/develop.svg?maxAge=60&style=flat-square)](https://ci.appveyor.com/project/galli-leo/Radarr-usby1) |
| Travis | [![Travis](https://img.shields.io/travis/Radarr/Radarr/master.svg?maxAge=60&style=flat-square)](https://travis-ci.org/Radarr/Radarr) | [![Travis](https://img.shields.io/travis/Radarr/Radarr/develop.svg?maxAge=60&style=flat-square)](https://travis-ci.org/Radarr/Radarr) |
**This project works independently of Sonarr and will not interfere with it.**
Radarr is currently undergoing rapid development and pull requests are actively added into the repository.
## Features
### Current Features
## Major Features Include:
* Adding new movies with lots of information, such as trailers, ratings, etc.
* Support for major platforms: Windows, Linux, macOS, Raspberry Pi, etc.
@@ -68,55 +21,57 @@ Radarr is currently undergoing rapid development and pull requests are actively
* Automatically importing downloaded movies
* Recognizing Special Editions, Director's Cut, etc.
* Identifying releases with hardcoded subs
* All indexers supported by Sonarr also supported
* New PassThePopcorn Indexer
* QBittorrent, Deluge, rTorrent, Transmission and uTorrent download client (Other clients are coming)
* New TorrentPotato Indexer (Works well with [Jackett](https://github.com/Jackett/Jackett))
* Scanning PreDB to know when a new release is available
* Importing movies from various online sources, such as IMDb Watchlists (A complete list can be found [here](https://github.com/Radarr/Radarr/issues/114))
* QBittorrent, Deluge, rTorrent, Transmission, uTorrent, and other download clients are supported
* Full integration with Kodi, Plex (notification, library update)
* And a beautiful UI
* A beautiful UI
* Importing Metadata such as trailers or subtitles
* Adding metadata such as posters and information for Kodi and others to use
* Advanced customization for profiles, such that Radarr will always download the copy you want
### Planned Features
## Support
Note: GitHub Issues are for Bugs and Feature Requests Only
* Downloading Metadata such as trailers or subtitles (\*)
* Adding metadata such as posters and information for Kodi and others to use (\*)
* Dynamically renaming folders with quality info, etc. (\*)
* Supporting custom folder structures, such as all movie files in one folder (\*)
* Supporting multiple editions per movies (waiting on The Movie Database to finish their implementation)
* Supporting collections of movies, such as James Bond
[![Discord](https://img.shields.io/badge/discord-chat-7289DA.svg?maxAge=60)](https://discord.gg/r5wJPt9)
[![Reddit](https://img.shields.io/badge/reddit-discussion-FF4500.svg?maxAge=60)](https://www.reddit.com/r/Radarr)
[![GitHub - Bugs and Feature Requests Only](https://img.shields.io/badge/github-issues-red.svg?maxAge=60)](https://github.com/Radarr/Radarr/issues)
[![Wiki](https://img.shields.io/badge/servarr-wiki-181717.svg?maxAge=60)](https://wiki.servarr.com/Radarr)
**Note:** All features marked with (\*) are set to be in the first release of Radarr.
## Feature Requests
#### [Feature Requests](http://feathub.com/Radarr/Radarr)
[Feature Requests](https://github.com/Radarr/Radarr/issues/new?assignees=&labels=Type%3A+Enhancement&template=feature_request.md&title=)
## Configuring the Development Environment
## Contributors & Developers
[API Documentation](https://radarr.video/docs/api/)
### Requirements
This project exists thanks to all the people who contribute. [Contribute](CONTRIBUTING.md).
<a href="https://github.com/Radarr/Radarr/graphs/contributors"><img src="https://opencollective.com/Radarr/contributors.svg?width=890&button=false" /></a>
* [Visual Studio Community](https://www.visualstudio.com/vs/community/) or [MonoDevelop](http://www.monodevelop.com)
* [Git](https://git-scm.com/downloads)
* [Node.js](https://nodejs.org/en/download/)
### Setup
## Backers
* Make sure all the required software mentioned above are installed
* Clone the repository into your development machine ([*info*](https://help.github.com/desktop/guides/contributing/working-with-your-remote-repository-on-github-or-github-enterprise))
* Grab the submodules `git submodule init && git submodule update`
* Install the required Node Packages `npm install`
* Start gulp to monitor your dev environment for any changes that need post processing using `npm start` command.
Thank you to all our backers! 🙏 [Become a backer](https://opencollective.com/Radarr#backer)
> **Notice**
> Gulp must be running at all times while you are working with Radarr client source files.
### Development
* Open `NzbDrone.sln` in Visual Studio or run the build.sh script, if Mono is installed
* Make sure `NzbDrone.Console` is set as the startup project
<img src="https://opencollective.com/Radarr/backers.svg?width=890"></a>
## Sponsors
Thanks to [JetBrains](http://www.jetbrains.com) for providing us with free licenses to their great tools:
* [ReSharper](http://www.jetbrains.com/resharper)
* [WebStorm](http://www.jetbrains.com/webstorm)
* [TeamCity](http://www.jetbrains.com/teamcity)
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor](https://opencollective.com/Radarr#sponsor)
<img src="https://opencollective.com/Radarr/sponsors.svg?width=890"></a>
## Mega Sponsors
<img src="https://opencollective.com/Radarr/tiers/mega-sponsor.svg?width=890"></a>
## JetBrains
Thank you to [<img src="/Logo/jetbrains.svg" alt="JetBrains" width="32"> JetBrains](http://www.jetbrains.com/) for providing us with free licenses to their great tools.
* [<img src="/Logo/resharper.svg" alt="ReSharper" width="32"> ReSharper](http://www.jetbrains.com/resharper/)
* [<img src="/Logo/webstorm.svg" alt="WebStorm" width="32"> WebStorm](http://www.jetbrains.com/webstorm/)
* [<img src="/Logo/rider.svg" alt="Rider" width="32"> Rider](http://www.jetbrains.com/rider/)
* [<img src="/Logo/dottrace.svg" alt="dotTrace" width="32"> dotTrace](http://www.jetbrains.com/dottrace/)
### License
* [GNU GPL v3](http://www.gnu.org/licenses/gpl.html)
* Copyright 2010-2021

View File

@@ -1,48 +0,0 @@
version: '0.2.0.{build}'
assembly_info:
patch: true
file: 'src\NzbDrone.Common\Properties\SharedAssemblyInfo.cs'
assembly_version: '{version}'
assembly_file_version: '{version}'
assembly_informational_version: '{version}-rc1'
environment:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
install:
- git submodule update --init --recursive
build_script:
- ps: ./build-appveyor.ps1
# test: off
test:
assemblies:
- '_tests\*Test.dll'
categories:
except:
- IntegrationTest
- AutomationTest
artifacts:
- path: '_artifacts\*.zip'
- path: '_artifacts\*.exe'
- path: '_artifacts\*.tar.gz'
cache:
- '%USERPROFILE%\.nuget\packages'
- node_modules
pull_requests:
do_not_increment_build_number: true
only_commits:
files:
- src/
- osx/
- gulp/
- logo/
- setup/
- appveyor.yml
- build-appveyor.cake

881
azure-pipelines.yml Normal file
View File

@@ -0,0 +1,881 @@
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
variables:
outputFolder: './_output'
artifactsFolder: './_artifacts'
testsFolder: './_tests'
majorVersion: '3.0.2'
minorVersion: $[counter('minorVersion', 2000)]
radarrVersion: '$(majorVersion).$(minorVersion)'
buildName: '$(Build.SourceBranchName).$(radarrVersion)'
sentryOrg: 'servarr'
sentryUrl: 'https://sentry.servarr.com'
dotnetVersion: '3.1.404'
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
trigger:
branches:
include:
- develop
- master
pr:
- develop
stages:
- stage: Setup
displayName: Setup
jobs:
- job:
displayName: Build Variables
pool:
vmImage: 'ubuntu-18.04'
steps:
# Set the build name properly. The 'name' property won't recursively expand so hack here:
- bash: echo "##vso[build.updatebuildnumber]$RADARRVERSION"
displayName: Set Build Name
- bash: |
if [[ $BUILD_REASON == "PullRequest" ]]; then
git diff origin/develop...HEAD --name-only | grep -E "^(src/|azure-pipelines.yml)"
echo $? > not_backend_update
else
echo 0 > not_backend_update
fi
cat not_backend_update
displayName: Check for Backend File Changes
- publish: not_backend_update
artifact: not_backend_update
displayName: Publish update type
- stage: Build_Backend
displayName: Build Backend
dependsOn: Setup
jobs:
- job: Backend
strategy:
matrix:
Linux:
osName: 'Linux'
imageName: 'ubuntu-18.04'
Mac:
osName: 'Mac'
imageName: 'macos-10.14'
Windows:
osName: 'Windows'
imageName: 'windows-2019'
pool:
vmImage: $(imageName)
variables:
# Disable stylecop here - linting errors get caught by the analyze task
EnableAnalyzers: 'false'
steps:
- checkout: self
submodules: true
fetchDepth: 1
- task: UseDotNet@2
displayName: 'Install .net core'
inputs:
version: $(dotnetVersion)
- bash: ./build.sh --backend
displayName: Build Radarr Backend
- bash: |
find ${OUTPUTFOLDER} -type f ! -path "*/publish/*" -exec rm -rf {} \;
find ${OUTPUTFOLDER} -depth -empty -type d -exec rm -r "{}" \;
find ${TESTSFOLDER} -type f ! -path "*/publish/*" -exec rm -rf {} \;
find ${TESTSFOLDER} -depth -empty -type d -exec rm -r "{}" \;
displayName: Clean up intermediate output
condition: and(succeeded(), ne(variables['osName'], 'Windows'))
- publish: $(outputFolder)
artifact: '$(osName)Backend'
displayName: Publish Backend
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/netcoreapp3.1/win-x64/publish'
artifact: WindowsCoreTests
displayName: Publish Windows Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/net462/linux-x64/publish'
artifact: LinuxTests
displayName: Publish Linux Mono Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/netcoreapp3.1/linux-x64/publish'
artifact: LinuxCoreTests
displayName: Publish Linux Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/netcoreapp3.1/linux-musl-x64/publish'
artifact: LinuxMuslCoreTests
displayName: Publish Linux Musl Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/netcoreapp3.1/osx-x64/publish'
artifact: MacCoreTests
displayName: Publish MacOS Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- stage: Build_Frontend
displayName: Frontend
dependsOn: Setup
jobs:
- job: Build
strategy:
matrix:
Linux:
osName: 'Linux'
imageName: 'ubuntu-18.04'
Mac:
osName: 'Mac'
imageName: 'macos-10.14'
Windows:
osName: 'Windows'
imageName: 'windows-2019'
pool:
vmImage: $(imageName)
steps:
- task: NodeTool@0
displayName: Set Node.js version
inputs:
versionSpec: '10.x'
- checkout: self
submodules: true
fetchDepth: 1
- task: Cache@2
inputs:
key: 'yarn | "$(osName)" | yarn.lock'
restoreKeys: |
yarn | "$(osName)"
yarn
path: $(yarnCacheFolder)
displayName: Cache Yarn packages
- bash: ./build.sh --frontend
displayName: Build Radarr Frontend
env:
FORCE_COLOR: 0
YARN_CACHE_FOLDER: $(yarnCacheFolder)
- publish: $(outputFolder)
artifact: '$(osName)Frontend'
displayName: Publish Frontend
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- stage: Installer
dependsOn:
- Build_Backend
- Build_Frontend
jobs:
- job: Windows_Installer
displayName: Create Installer
pool:
vmImage: 'windows-2019'
steps:
- checkout: self
fetchDepth: 1
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: WindowsBackend
targetPath: _output
displayName: Fetch Backend
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: WindowsFrontend
targetPath: _output
displayName: Fetch Frontend
- bash: ./build.sh --packages
displayName: Create Packages
- bash: |
setup/inno/ISCC.exe setup/radarr.iss //DFramework=netcoreapp3.1 //DRuntime=win-x86
cp setup/output/Radarr.*windows.netcoreapp3.1.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=netcoreapp3.1 //DRuntime=win-x64
cp setup/output/Radarr.*windows.netcoreapp3.1.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Radarr.${BUILDNAME}.windows-core-x64-installer.exe
displayName: Create .NET Core Windows installer
- publish: $(Build.ArtifactStagingDirectory)
artifact: 'WindowsInstaller'
displayName: Publish Installer
- stage: Packages
dependsOn:
- Build_Backend
- Build_Frontend
jobs:
- job: Other_Packages
displayName: Create Standard Packages
pool:
vmImage: 'ubuntu-18.04'
steps:
- checkout: self
fetchDepth: 1
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: WindowsBackend
targetPath: _output
displayName: Fetch Backend
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: WindowsFrontend
targetPath: _output
displayName: Fetch Frontend
- bash: ./build.sh --packages
displayName: Create Packages
- bash: |
find . -name "Radarr" -exec chmod a+x {} \;
find . -name "Radarr.Update" -exec chmod a+x {} \;
displayName: Set executable bits
- task: ArchiveFiles@2
displayName: Create Windows Core zip
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).windows-core-x64.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/win-x64/netcoreapp3.1
- task: ArchiveFiles@2
displayName: Create Windows x86 Core zip
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).windows-core-x86.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/win-x86/netcoreapp3.1
- task: ArchiveFiles@2
displayName: Create MacOS Core app
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-app-core-x64.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/macos-app/netcoreapp3.1
- task: ArchiveFiles@2
displayName: Create MacOS Core tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-core-x64.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/macos/netcoreapp3.1
- task: ArchiveFiles@2
displayName: Create Linux Mono tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-x64/net462
- task: ArchiveFiles@2
displayName: Create Linux Core tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-core-x64.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-x64/netcoreapp3.1
- task: ArchiveFiles@2
displayName: Create Linux Musl Core tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-musl-core-x64.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-musl-x64/netcoreapp3.1
- task: ArchiveFiles@2
displayName: Create ARM32 Linux Core tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-core-arm.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-arm/netcoreapp3.1
- task: ArchiveFiles@2
displayName: Create ARM64 Linux Core tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-core-arm64.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-arm64/netcoreapp3.1
- task: ArchiveFiles@2
displayName: Create ARM64 Linux Musl Core tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-musl-core-arm64.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-musl-arm64/netcoreapp3.1
- publish: $(Build.ArtifactStagingDirectory)
artifact: 'Packages'
displayName: Publish Packages
- bash: |
echo "Uploading source maps to sentry"
curl -sL https://sentry.io/get-cli/ | bash
RELEASENAME="${RADARRVERSION}-${BUILD_SOURCEBRANCHNAME}"
sentry-cli releases new --finalize -p radarr -p radarr-ui -p radarr-update "${RELEASENAME}"
sentry-cli releases -p radarr-ui files "${RELEASENAME}" upload-sourcemaps _output/UI/ --rewrite
sentry-cli releases set-commits --auto "${RELEASENAME}"
if [[ ${BUILD_SOURCEBRANCH} == "refs/heads/develop" ]]; then
sentry-cli releases deploys "${RELEASENAME}" new -e nightly
else
sentry-cli releases deploys "${RELEASENAME}" new -e production
fi
if [ $? -gt 0 ]; then
echo "##vso[task.logissue type=warning]Error uploading source maps."
fi
exit 0
displayName: Publish Sentry Source Maps
condition: |
or
(
and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')),
and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
)
env:
SENTRY_AUTH_TOKEN: $(sentryAuthTokenServarr)
SENTRY_ORG: $(sentryOrg)
SENTRY_URL: $(sentryUrl)
- stage: Unit_Test
displayName: Unit Tests
dependsOn: Build_Backend
jobs:
- job: Prepare
pool:
vmImage: 'ubuntu-18.04'
steps:
- checkout: none
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: 'not_backend_update'
targetPath: '.'
- bash: echo "##vso[task.setvariable variable=backendNotUpdated;isOutput=true]$(cat not_backend_update)"
name: setVar
- job: Unit
displayName: Unit Native
dependsOn: Prepare
condition: and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0'))
strategy:
matrix:
MacCore:
osName: 'Mac'
testName: 'MacCore'
imageName: 'macos-10.14'
WindowsCore:
osName: 'Windows'
testName: 'WindowsCore'
imageName: 'windows-2019'
LinuxCore:
osName: 'Linux'
testName: 'LinuxCore'
imageName: 'ubuntu-18.04'
pattern: 'Radarr.**.linux-core-x64.tar.gz'
pool:
vmImage: $(imageName)
steps:
- checkout: none
- task: UseDotNet@2
displayName: 'Install .net core'
inputs:
version: $(dotnetVersion)
- task: DownloadPipelineArtifact@2
displayName: Download Test Artifact
inputs:
buildType: 'current'
artifactName: '$(testName)Tests'
targetPath: $(testsFolder)
- bash: |
wget https://mediaarea.net/repo/deb/repo-mediaarea_1.0-11_all.deb
sudo dpkg -i repo-mediaarea_1.0-11_all.deb
sudo apt-get update
sudo apt-get install -y --allow-unauthenticated libmediainfo-dev libmediainfo0v5 mediainfo
displayName: Install mediainfo
condition: and(succeeded(), eq(variables['osName'], 'Linux'))
- powershell: Set-Service SCardSvr -StartupType Manual
displayName: Enable Windows Test Service
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- bash: |
SYMLINK=6_6_0
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
echo "##vso[task.setvariable variable=MONOPREFIX;]$MONOPREFIX"
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"
displayName: Set Mono Version
condition: and(succeeded(), eq(variables['osName'], 'Mac'))
- bash: find ${TESTSFOLDER} -name "Radarr.Test.Dummy" -exec chmod a+x {} \;
displayName: Make Test Dummy Executable
condition: and(succeeded(), ne(variables['osName'], 'Windows'))
- bash: |
chmod a+x ${TESTSFOLDER}/test.sh
${TESTSFOLDER}/test.sh ${OSNAME} Unit Test
displayName: Run Tests
env:
TEST_DIR: $(Build.SourcesDirectory)/_tests
- task: PublishTestResults@2
displayName: Publish Test Results
inputs:
testResultsFormat: 'NUnit'
testResultsFiles: '**/TestResult.xml'
testRunTitle: '$(testName) Unit Tests'
failTaskOnFailedTests: true
- job: Unit_Docker
displayName: Unit Docker
dependsOn: Prepare
condition: and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0'))
strategy:
matrix:
mono520:
testName: 'Mono 5.20'
artifactName: LinuxTests
containerImage: servarr/testimages:mono-5.20
mono610:
testName: 'Mono 6.10'
artifactName: LinuxTests
containerImage: servarr/testimages:mono-6.10
mono612:
testName: 'Mono 6.12'
artifactName: LinuxTests
containerImage: servarr/testimages:mono-6.12
alpine:
testName: 'Musl Net Core'
artifactName: LinuxMuslCoreTests
containerImage: servarr/testimages:alpine
pool:
vmImage: 'ubuntu-18.04'
container: $[ variables['containerImage'] ]
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: find ${TESTSFOLDER} -name "Radarr.Test.Dummy" -exec chmod a+x {} \;
displayName: Make Test Dummy Executable
condition: and(succeeded(), ne(variables['osName'], 'Windows'))
- 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: '$(testName) Unit Tests'
failTaskOnFailedTests: true
- stage: Integration
displayName: Integration
dependsOn: Packages
jobs:
- job: Prepare
pool:
vmImage: 'ubuntu-18.04'
steps:
- checkout: none
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: 'not_backend_update'
targetPath: '.'
- bash: echo "##vso[task.setvariable variable=backendNotUpdated;isOutput=true]$(cat not_backend_update)"
name: setVar
- job: Integration_Native
displayName: Integration Native
dependsOn: Prepare
condition: and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0'))
strategy:
matrix:
MacCore:
osName: 'Mac'
testName: 'MacCore'
imageName: 'macos-10.14'
pattern: 'Radarr.**.osx-core-x64.tar.gz'
WindowsCore:
osName: 'Windows'
testName: 'WindowsCore'
imageName: 'windows-2019'
pattern: 'Radarr.**.windows-core-x64.zip'
LinuxCore:
osName: 'Linux'
testName: 'LinuxCore'
imageName: 'ubuntu-18.04'
pattern: 'Radarr.**.linux-core-x64.tar.gz'
pool:
vmImage: $(imageName)
steps:
- bash: |
SYMLINK=6_6_0
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
echo "##vso[task.setvariable variable=MONOPREFIX;]$MONOPREFIX"
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"
displayName: Set Mono Version
condition: and(succeeded(), eq(variables['osName'], 'Mac'))
- task: UseDotNet@2
displayName: 'Install .net core'
inputs:
version: $(dotnetVersion)
- checkout: none
- task: DownloadPipelineArtifact@2
displayName: Download Test Artifact
inputs:
buildType: 'current'
artifactName: '$(testName)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: |
chmod a+x ${TESTSFOLDER}/test.sh
${TESTSFOLDER}/test.sh ${OSNAME} Integration Test
displayName: Run Integration Tests
- task: PublishTestResults@2
inputs:
testResultsFormat: 'NUnit'
testResultsFiles: '**/TestResult.xml'
testRunTitle: '$(testName) Integration Tests'
failTaskOnFailedTests: true
displayName: Publish Test Results
- job: Integration_Docker
displayName: Integration Docker
dependsOn: Prepare
condition: and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0'))
strategy:
matrix:
mono520:
testName: 'Mono 5.20'
artifactName: LinuxTests
containerImage: servarr/testimages:mono-5.20
pattern: 'Radarr.**.linux.tar.gz'
mono610:
testName: 'Mono 6.10'
artifactName: LinuxTests
containerImage: servarr/testimages:mono-6.10
pattern: 'Radarr.**.linux.tar.gz'
mono612:
testName: 'Mono 6.12'
artifactName: LinuxTests
containerImage: servarr/testimages:mono-6.12
pattern: 'Radarr.**.linux.tar.gz'
alpine:
testName: 'Musl Net Core'
artifactName: LinuxMuslCoreTests
containerImage: servarr/testimages:alpine
pattern: 'Radarr.**.linux-musl-core-x64.tar.gz'
pool:
vmImage: 'ubuntu-18.04'
container: $[ variables['containerImage'] ]
timeoutInMinutes: 15
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)
- 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: |
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: '$(testName) Integration Tests'
failTaskOnFailedTests: true
displayName: Publish Test Results
- stage: Automation
displayName: Automation
dependsOn: Packages
jobs:
- job: Automation
strategy:
matrix:
Linux:
osName: 'Linux'
imageName: 'ubuntu-18.04'
pattern: 'Radarr.**.linux-core-x64.tar.gz'
failBuild: true
Mac:
osName: 'Mac'
imageName: 'macos-10.14'
pattern: 'Radarr.**.osx-core-x64.tar.gz'
failBuild: true
Windows:
osName: 'Windows'
imageName: 'windows-2019'
pattern: 'Radarr.**.windows-core-x64.zip'
failBuild: true
pool:
vmImage: $(imageName)
steps:
- task: UseDotNet@2
displayName: 'Install .net core'
inputs:
version: $(dotnetVersion)
- checkout: none
- task: DownloadPipelineArtifact@2
displayName: Download Test Artifact
inputs:
buildType: 'current'
artifactName: '$(osName)CoreTests'
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: |
chmod a+x ${TESTSFOLDER}/test.sh
${TESTSFOLDER}/test.sh ${OSNAME} Automation Test
displayName: Run Automation Tests
- task: CopyFiles@2
displayName: 'Copy Screenshot to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*_test_screenshot.png
TargetFolder: '$(Build.ArtifactStagingDirectory)/screenshots'
- publish: $(Build.ArtifactStagingDirectory)/screenshots
artifact: '$(osName)AutomationScreenshots'
displayName: Publish Screenshot Bundle
condition: and(succeeded(), eq(variables['System.JobAttempt'], '1'))
- task: PublishTestResults@2
inputs:
testResultsFormat: 'NUnit'
testResultsFiles: '**/TestResult.xml'
testRunTitle: '$(osName) Automation Tests'
failTaskOnFailedTests: $(failBuild)
displayName: Publish Test Results
- stage: Analyze
dependsOn:
- Setup
displayName: Analyze
jobs:
- job: Prepare
pool:
vmImage: 'ubuntu-18.04'
steps:
- checkout: none
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: 'not_backend_update'
targetPath: '.'
- bash: echo "##vso[task.setvariable variable=backendNotUpdated;isOutput=true]$(cat not_backend_update)"
name: setVar
- job: Lint_Frontend
displayName: Lint Frontend
strategy:
matrix:
Linux:
osName: 'Linux'
imageName: 'ubuntu-18.04'
Windows:
osName: 'Windows'
imageName: 'windows-2019'
pool:
vmImage: $(imageName)
steps:
- task: NodeTool@0
displayName: Set Node.js version
inputs:
versionSpec: '10.x'
- checkout: self
submodules: true
fetchDepth: 1
- task: Cache@2
inputs:
key: 'yarn | "$(osName)" | yarn.lock'
restoreKeys: |
yarn | "$(osName)"
yarn
path: $(yarnCacheFolder)
displayName: Cache Yarn packages
- bash: ./build.sh --lint
displayName: Lint Radarr Frontend
env:
FORCE_COLOR: 0
YARN_CACHE_FOLDER: $(yarnCacheFolder)
- job: Analyze_Frontend
displayName: Frontend
condition: eq(variables['System.PullRequest.IsFork'], 'False')
pool:
vmImage: windows-2019
steps:
- checkout: self # Need history for Sonar analysis
- task: SonarCloudPrepare@1
env:
SONAR_SCANNER_OPTS: ''
inputs:
SonarCloud: 'SonarCloud'
organization: 'radarr'
scannerMode: 'CLI'
configMode: 'manual'
cliProjectKey: 'Radarr_Radarr.UI'
cliProjectName: 'RadarrUI'
cliProjectVersion: '$(radarrVersion)'
cliSources: './frontend'
- task: SonarCloudAnalyze@1
- job: Analyze_Backend
displayName: Backend
dependsOn: Prepare
condition: and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0'))
variables:
disable.coverage.autogenerate: 'true'
pool:
vmImage: windows-2019
steps:
- task: UseDotNet@2
displayName: 'Install .net core'
inputs:
version: $(dotnetVersion)
- checkout: self # Need history for Sonar analysis
submodules: true
- powershell: Set-Service SCardSvr -StartupType Manual
displayName: Enable Windows Test Service
- task: SonarCloudPrepare@1
condition: eq(variables['System.PullRequest.IsFork'], 'False')
inputs:
SonarCloud: 'SonarCloud'
organization: 'radarr'
scannerMode: 'MSBuild'
projectKey: 'Radarr_Radarr'
projectName: 'Radarr'
projectVersion: '$(radarrVersion)'
extraProperties: |
sonar.exclusions=**/obj/**,**/*.dll,**/NzbDrone.Core.Test/Files/**/*,./frontend/**,**/ExternalModules/**,./src/Libraries/**
sonar.coverage.exclusions=**/Radarr.Api.V3/**/*,**/NzbDrone.Api/**/*,**/MonoTorrent/**/*,**/Marr.Data/**/*
sonar.cs.opencover.reportsPaths=$(Build.SourcesDirectory)/CoverageResults/**/coverage.opencover.xml
sonar.cs.nunit.reportsPaths=$(Build.SourcesDirectory)/TestResult.xml
- bash: |
./build.sh --backend -f netcoreapp3.1 -r win-x64
TEST_DIR=_tests/netcoreapp3.1/win-x64/publish/ ./test.sh Windows Unit Coverage
displayName: Coverage Unit Tests
- task: SonarCloudAnalyze@1
condition: eq(variables['System.PullRequest.IsFork'], 'False')
displayName: Publish SonarCloud Results
- task: reportgenerator@4
displayName: Generate Coverage Report
inputs:
reports: '$(Build.SourcesDirectory)/CoverageResults/**/coverage.opencover.xml'
targetdir: '$(Build.SourcesDirectory)/CoverageResults/combined'
reporttypes: 'HtmlInline_AzurePipelines;Cobertura;Badges'
- task: PublishCodeCoverageResults@1
displayName: Publish Coverage Report
inputs:
codeCoverageTool: 'cobertura'
summaryFileLocation: './CoverageResults/combined/Cobertura.xml'
reportDirectory: './CoverageResults/combined/'
- stage: Report_Out
dependsOn:
- Analyze
- Unit_Test
- Integration
- Automation
condition: eq(variables['system.pullrequest.isfork'], false)
displayName: Build Status Report
jobs:
- job:
displayName: Discord Notification
pool:
vmImage: 'windows-2019'
steps:
- task: DownloadPipelineArtifact@2
continueOnError: true
displayName: Download Screenshot Artifact
inputs:
buildType: 'current'
artifactName: 'WindowsAutomationScreenshots'
targetPath: $(Build.SourcesDirectory)
- checkout: none
- powershell: |
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/Servarr/AzureDiscordNotify/master/DiscordNotify.ps1'))
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
DISCORDCHANNELID: $(discordChannelId)
DISCORDWEBHOOKKEY: $(discordWebhookKey)

View File

@@ -1,311 +0,0 @@
#addin "Cake.Npm"
#addin "SharpZipLib"
#addin "Cake.Compression"
// Build variables
var outputFolder = "./_output";
var outputFolderMono = outputFolder + "_mono";
var outputFolderOsx = outputFolder + "_osx";
var outputFolderOsxApp = outputFolderOsx + "_app";
var testPackageFolder = "./_tests";
var testSearchPattern = "*.Test/bin/x86/Release";
var sourceFolder = "./src";
var solutionFile = sourceFolder + "/NzbDrone.sln";
var updateFolder = outputFolder + "/NzbDrone.Update";
var updateFolderMono = outputFolderMono + "/NzbDrone.Update";
// Artifact variables
var artifactsFolder = "./_artifacts";
var artifactsFolderWindows = artifactsFolder + "/windows";
var artifactsFolderLinux = artifactsFolder + "/linux";
var artifactsFolderOsx = artifactsFolder + "/osx";
var artifactsFolderOsxApp = artifactsFolder + "/osx-app";
// Utility methods
public void RemoveEmptyFolders(string startLocation) {
foreach (var directory in System.IO.Directory.GetDirectories(startLocation))
{
RemoveEmptyFolders(directory);
if (System.IO.Directory.GetFiles(directory).Length == 0 &&
System.IO.Directory.GetDirectories(directory).Length == 0)
{
DeleteDirectory(directory, false);
}
}
}
public void CleanFolder(string path, bool keepConfigFiles) {
DeleteFiles(path + "/**/*.transform");
if (!keepConfigFiles) {
DeleteFiles(path + "/**/*.dll.config");
}
DeleteFiles(path + "/**/FluentValidation.resources.dll");
DeleteFiles(path + "/**/App.config");
DeleteFiles(path + "/**/*.less");
DeleteFiles(path + "/**/*.vshost.exe");
DeleteFiles(path + "/**/*.dylib");
RemoveEmptyFolders(path);
}
public void CreateMdbs(string path) {
foreach (var file in System.IO.Directory.EnumerateFiles(path, "*.pdb", System.IO.SearchOption.AllDirectories)) {
var actualFile = file.Substring(0, file.Length - 4);
if (FileExists(actualFile + ".exe")) {
StartProcess("./tools/pdb2mdb/pdb2mdb.exe", new ProcessSettings()
.WithArguments(args => args.Append(actualFile + ".exe")));
}
if (FileExists(actualFile + ".dll")) {
StartProcess("./tools/pdb2mdb/pdb2mdb.exe", new ProcessSettings()
.WithArguments(args => args.Append(actualFile + ".dll")));
}
}
}
// Build Tasks
Task("Compile").Does(() => {
// Build
if (DirectoryExists(outputFolder)) {
DeleteDirectory(outputFolder, true);
}
MSBuild(solutionFile, config =>
config.UseToolVersion(MSBuildToolVersion.VS2015)
.WithTarget("Clean")
.SetVerbosity(Verbosity.Minimal));
NuGetRestore(solutionFile);
MSBuild(solutionFile, config =>
config.UseToolVersion(MSBuildToolVersion.VS2015)
.SetPlatformTarget(PlatformTarget.x86)
.SetConfiguration("Release")
.WithProperty("AllowedReferenceRelatedFileExtensions", new string[] { ".pdb" })
.WithTarget("Build")
.SetVerbosity(Verbosity.Minimal));
CleanFolder(outputFolder, false);
// Add JsonNet
DeleteFiles(outputFolder + "/Newtonsoft.Json.*");
CopyFiles(sourceFolder + "/packages/Newtonsoft.Json.*/lib/net35/*.dll", outputFolder);
CopyFiles(sourceFolder + "/packages/Newtonsoft.Json.*/lib/net35/*.dll", updateFolder);
// Remove Mono stuff
DeleteFile(outputFolder + "/Mono.Posix.dll");
});
Task("Gulp").Does(() => {
Npm
.WithLogLevel(NpmLogLevel.Silent)
.FromPath(".")
.Install()
.RunScript("build");
});
Task("PackageMono").Does(() => {
// Start mono package
if (DirectoryExists(outputFolderMono)) {
DeleteDirectory(outputFolderMono, true);
}
CopyDirectory(outputFolder, outputFolderMono);
// Create MDBs
CreateMdbs(outputFolderMono);
// Remove PDBs
DeleteFiles(outputFolderMono + "/**/*.pdb");
// Remove service helpers
DeleteFiles(outputFolderMono + "/ServiceUninstall.*");
DeleteFiles(outputFolderMono + "/ServiceInstall.*");
// Remove native windows binaries
DeleteFiles(outputFolderMono + "/sqlite3.*");
DeleteFiles(outputFolderMono + "/MediaInfo.*");
// Adding NzbDrone.Core.dll.config (for dllmap)
CopyFile(sourceFolder + "/NzbDrone.Core/NzbDrone.Core.dll.config", outputFolderMono + "/NzbDrone.Core.dll.config");
// Adding CurlSharp.dll.config (for dllmap)
CopyFile(sourceFolder + "/NzbDrone.Common/CurlSharp.dll.config", outputFolderMono + "/CurlSharp.dll.config");
// Renaming Radarr.Console.exe to Radarr.exe
DeleteFiles(outputFolderMono + "/Radarr.exe*");
MoveFile(outputFolderMono + "/Radarr.Console.exe", outputFolderMono + "/Radarr.exe");
MoveFile(outputFolderMono + "/Radarr.Console.exe.config", outputFolderMono + "/Radarr.exe.config");
MoveFile(outputFolderMono + "/Radarr.Console.exe.mdb", outputFolderMono + "/Radarr.exe.mdb");
// Remove NzbDrone.Windows.*
DeleteFiles(outputFolderMono + "/NzbDrone.Windows.*");
// Adding NzbDrone.Mono to updatePackage
CopyFiles(outputFolderMono + "/NzbDrone.Mono.*", updateFolderMono);
});
Task("PackageOsx").Does(() => {
// Start osx package
if (DirectoryExists(outputFolderOsx)) {
DeleteDirectory(outputFolderOsx, true);
}
CopyDirectory(outputFolderMono, outputFolderOsx);
// Adding sqlite dylibs
CopyFiles(sourceFolder + "/Libraries/Sqlite/*.dylib", outputFolderOsx);
// Adding MediaInfo dylib
CopyFiles(sourceFolder + "/Libraries/MediaInfo/*.dylib", outputFolderOsx);
// Adding Startup script
CopyFile("./osx/Sonarr", outputFolderOsx + "/Sonarr");
});
Task("PackageOsxApp").Does(() => {
// Start osx app package
if (DirectoryExists(outputFolderOsxApp)) {
DeleteDirectory(outputFolderOsxApp, true);
}
CreateDirectory(outputFolderOsxApp);
// Copy osx package files
CopyDirectory("./osx/Radarr.app", outputFolderOsxApp + "/Radarr.app");
CopyDirectory(outputFolderOsx, outputFolderOsxApp + "/Radarr.app/Contents/MacOS");
});
Task("PackageTests").Does(() => {
// Start tests package
if (DirectoryExists(testPackageFolder)) {
DeleteDirectory(testPackageFolder, true);
}
CreateDirectory(testPackageFolder);
// Copy tests
CopyFiles(sourceFolder + "/" + testSearchPattern + "/*", testPackageFolder);
foreach (var directory in System.IO.Directory.GetDirectories(sourceFolder, "*.Test")) {
var releaseDirectory = directory + "/bin/x86/Release";
if (DirectoryExists(releaseDirectory)) {
foreach (var releaseSubDirectory in System.IO.Directory.GetDirectories(releaseDirectory)) {
Information(System.IO.Path.GetDirectoryName(releaseSubDirectory));
CopyDirectory(releaseSubDirectory, testPackageFolder + "/" + System.IO.Path.GetFileName(releaseSubDirectory));
}
}
}
// Install NUnit.ConsoleRunner
NuGetInstall("NUnit.ConsoleRunner", new NuGetInstallSettings {
Version = "3.2.0",
OutputDirectory = testPackageFolder
});
// Copy dlls
CopyFiles(outputFolder + "/*.dll", testPackageFolder);
// Copy scripts
CopyFiles("./*.sh", testPackageFolder);
// Create MDBs for tests
CreateMdbs(testPackageFolder);
// Remove config
DeleteFiles(testPackageFolder + "/*.log.config");
// Clean
CleanFolder(testPackageFolder, true);
// Adding NzbDrone.Core.dll.config (for dllmap)
CopyFile(sourceFolder + "/NzbDrone.Core/NzbDrone.Core.dll.config", testPackageFolder + "/NzbDrone.Core.dll.config");
// Adding CurlSharp.dll.config (for dllmap)
CopyFile(sourceFolder + "/NzbDrone.Common/CurlSharp.dll.config", testPackageFolder + "/CurlSharp.dll.config");
// Adding CurlSharp libraries
CopyFiles(sourceFolder + "/ExternalModules/CurlSharp/libs/i386/*", testPackageFolder);
});
Task("CleanupWindowsPackage").Does(() => {
// Remove mono
DeleteFiles(outputFolder + "/NzbDrone.Mono.*");
// Adding NzbDrone.Windows to updatePackage
CopyFiles(outputFolder + "/NzbDrone.Windows.*", updateFolder);
});
Task("Build")
.IsDependentOn("Compile")
.IsDependentOn("Gulp")
.IsDependentOn("PackageMono")
.IsDependentOn("PackageOsx")
.IsDependentOn("PackageOsxApp")
.IsDependentOn("PackageTests")
.IsDependentOn("CleanupWindowsPackage");
// Build Artifacts
Task("CleanArtifacts").Does(() => {
if (DirectoryExists(artifactsFolder)) {
DeleteDirectory(artifactsFolder, true);
}
CreateDirectory(artifactsFolder);
});
Task("ArtifactsWindows").Does(() => {
CopyDirectory(outputFolder, artifactsFolderWindows + "/Radarr");
});
Task("ArtifactsWindowsInstaller").Does(() => {
InnoSetup("./setup/nzbdrone.iss", new InnoSetupSettings {
OutputDirectory = artifactsFolder,
ToolPath = "./setup/inno/ISCC.exe"
});
});
Task("ArtifactsLinux").Does(() => {
CopyDirectory(outputFolderMono, artifactsFolderLinux + "/Radarr");
});
Task("ArtifactsOsx").Does(() => {
CopyDirectory(outputFolderOsx, artifactsFolderOsx + "/Radarr");
});
Task("ArtifactsOsxApp").Does(() => {
CopyDirectory(outputFolderOsxApp, artifactsFolderOsxApp);
});
Task("CompressArtifacts").Does(() => {
var prefix = "";
if (AppVeyor.IsRunningOnAppVeyor) {
prefix += AppVeyor.Environment.Repository.Branch.Replace("/", "-") + ".";
prefix += AppVeyor.Environment.Build.Version + ".";
}
Zip(artifactsFolderWindows, artifactsFolder + "/Radarr." + prefix + "windows.zip");
GZipCompress(artifactsFolderLinux, artifactsFolder + "/Radarr." + prefix + "linux.tar.gz");
GZipCompress(artifactsFolderOsx, artifactsFolder + "/Radarr." + prefix + "osx.tar.gz");
Zip(artifactsFolderOsxApp, artifactsFolder + "/Radarr." + prefix + "osx-app.zip");
});
Task("Artifacts")
.IsDependentOn("CleanArtifacts")
.IsDependentOn("ArtifactsWindows")
.IsDependentOn("ArtifactsWindowsInstaller")
.IsDependentOn("ArtifactsLinux")
.IsDependentOn("ArtifactsOsx")
.IsDependentOn("ArtifactsOsxApp")
.IsDependentOn("CompressArtifacts");
// Run
RunTarget("Build");
RunTarget("Artifacts");

View File

@@ -1,184 +0,0 @@
##########################################################################
# This is the Cake bootstrapper script for PowerShell.
# This file was downloaded from https://github.com/cake-build/resources
# Feel free to change this file to fit your needs.
##########################################################################
<#
.SYNOPSIS
This is a Powershell script to bootstrap a Cake build.
.DESCRIPTION
This Powershell script will download NuGet if missing, restore NuGet tools (including Cake)
and execute your Cake build script with the parameters you provide.
.PARAMETER Script
The build script to execute.
.PARAMETER Target
The build script target to run.
.PARAMETER Configuration
The build configuration to use.
.PARAMETER Verbosity
Specifies the amount of information to be displayed.
.PARAMETER Experimental
Tells Cake to use the latest Roslyn release.
.PARAMETER WhatIf
Performs a dry run of the build script.
No tasks will be executed.
.PARAMETER Mono
Tells Cake to use the Mono scripting engine.
.PARAMETER SkipToolPackageRestore
Skips restoring of packages.
.PARAMETER ScriptArgs
Remaining arguments are added here.
.LINK
http://cakebuild.net
#>
[CmdletBinding()]
Param(
[string]$Script = "build-appveyor.cake",
[string]$Target = "Default",
[ValidateSet("Release", "Debug")]
[string]$Configuration = "Release",
[ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")]
[string]$Verbosity = "Verbose",
[switch]$Experimental,
[Alias("DryRun","Noop")]
[switch]$WhatIf,
[switch]$Mono,
[switch]$SkipToolPackageRestore,
[Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
[string[]]$ScriptArgs
)
[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null
function MD5HashFile([string] $filePath)
{
if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf))
{
return $null
}
[System.IO.Stream] $file = $null;
[System.Security.Cryptography.MD5] $md5 = $null;
try
{
$md5 = [System.Security.Cryptography.MD5]::Create()
$file = [System.IO.File]::OpenRead($filePath)
return [System.BitConverter]::ToString($md5.ComputeHash($file))
}
finally
{
if ($file -ne $null)
{
$file.Dispose()
}
}
}
Write-Host "Preparing to run build script..."
if(!$PSScriptRoot){
$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
}
$TOOLS_DIR = Join-Path $PSScriptRoot "tools-cake"
$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe"
$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe"
$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config"
$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum"
# Should we use mono?
$UseMono = "";
if($Mono.IsPresent) {
Write-Verbose -Message "Using the Mono based scripting engine."
$UseMono = "-mono"
}
# Should we use the new Roslyn?
$UseExperimental = "";
if($Experimental.IsPresent -and !($Mono.IsPresent)) {
Write-Verbose -Message "Using experimental version of Roslyn."
$UseExperimental = "-experimental"
}
# Is this a dry run?
$UseDryRun = "";
if($WhatIf.IsPresent) {
$UseDryRun = "-dryrun"
}
# Make sure tools folder exists
if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) {
Write-Verbose -Message "Creating tools directory..."
New-Item -Path $TOOLS_DIR -Type directory | out-null
}
# Make sure that packages.config exist.
if (!(Test-Path $PACKAGES_CONFIG)) {
Write-Verbose -Message "Downloading packages.config..."
try { (New-Object System.Net.WebClient).DownloadFile("http://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch {
Throw "Could not download packages.config."
}
}
# Try find NuGet.exe in path if not exists
if (!(Test-Path $NUGET_EXE)) {
Write-Verbose -Message "Trying to find nuget.exe in PATH..."
$existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_) }
$NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1
if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) {
Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)."
$NUGET_EXE = $NUGET_EXE_IN_PATH.FullName
}
}
# Try download NuGet.exe if not exists
if (!(Test-Path $NUGET_EXE)) {
Write-Verbose -Message "Downloading NuGet.exe..."
try {
(New-Object System.Net.WebClient).DownloadFile($NUGET_URL, $NUGET_EXE)
} catch {
Throw "Could not download NuGet.exe."
}
}
# Save nuget.exe path to environment to be available to child processed
$ENV:NUGET_EXE = $NUGET_EXE
# Restore tools from NuGet?
if(-Not $SkipToolPackageRestore.IsPresent) {
Push-Location
Set-Location $TOOLS_DIR
# Check for changes in packages.config and remove installed tools if true.
[string] $md5Hash = MD5HashFile($PACKAGES_CONFIG)
if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or
($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) {
Write-Verbose -Message "Missing or changed package.config hash..."
Remove-Item * -Recurse -Exclude packages.config,nuget.exe
}
Write-Verbose -Message "Restoring tools from NuGet..."
$NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`""
if ($LASTEXITCODE -ne 0) {
Throw "An error occured while restoring NuGet tools."
}
else
{
$md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII"
}
Write-Verbose -Message ($NuGetOutput | out-string)
Pop-Location
}
# Make sure that Cake has been installed.
if (!(Test-Path $CAKE_EXE)) {
Throw "Could not find Cake.exe at $CAKE_EXE"
}
# Start Cake
Write-Host "Running build script..."
Invoke-Expression "& `"$CAKE_EXE`" `"$Script`" -target=`"$Target`" -configuration=`"$Configuration`" -verbosity=`"$Verbosity`" $UseMono $UseDryRun $UseExperimental $ScriptArgs"
exit $LASTEXITCODE

View File

@@ -1 +0,0 @@
Write-Warning "DEPRECATED -- Please use build.sh instead."

483
build.sh
View File

@@ -1,265 +1,358 @@
#! /bin/bash
msBuild='/c/Program Files (x86)/MSBuild/14.0/Bin'
outputFolder='./_output'
outputFolderMono='./_output_mono'
outputFolderOsx='./_output_osx'
outputFolderOsxApp='./_output_osx_app'
testPackageFolder='./_tests/'
testSearchPattern='*.Test/bin/x86/Release'
sourceFolder='./src'
slnFile=$sourceFolder/NzbDrone.sln
updateFolder=$outputFolder/NzbDrone.Update
updateFolderMono=$outputFolderMono/NzbDrone.Update
set -e
nuget='tools/nuget/nuget.exe';
CheckExitCode()
outputFolder='_output'
testPackageFolder='_tests'
artifactsFolder="_artifacts";
ProgressStart()
{
"$@"
local status=$?
if [ $status -ne 0 ]; then
echo "error with $1" >&2
exit 1
echo "Start '$1'"
}
ProgressEnd()
{
echo "Finish '$1'"
}
UpdateVersionNumber()
{
if [ "$RADARRVERSION" != "" ]; then
echo "Updating Version Info"
sed -i'' -e "s/<AssemblyVersion>[0-9.*]\+<\/AssemblyVersion>/<AssemblyVersion>$RADARRVERSION<\/AssemblyVersion>/g" src/Directory.Build.props
sed -i'' -e "s/<AssemblyConfiguration>[\$()A-Za-z-]\+<\/AssemblyConfiguration>/<AssemblyConfiguration>${BUILD_SOURCEBRANCHNAME}<\/AssemblyConfiguration>/g" src/Directory.Build.props
sed -i'' -e "s/<string>10.0.0.0<\/string>/<string>$RADARRVERSION<\/string>/g" macOS/Radarr.app/Contents/Info.plist
fi
return $status
}
CleanFolder()
LintUI()
{
local path=$1
local keepConfigFiles=$2
ProgressStart 'ESLint'
yarn lint
ProgressEnd 'ESLint'
find $path -name "*.transform" -exec rm "{}" \;
if [ $keepConfigFiles != true ] ; then
find $path -name "*.dll.config" -exec rm "{}" \;
ProgressStart 'Stylelint'
if [ "$os" = "windows" ]; then
yarn stylelint-windows
else
yarn stylelint-linux
fi
echo "Removing FluentValidation.Resources files"
find $path -name "FluentValidation.resources.dll" -exec rm "{}" \;
find $path -name "App.config" -exec rm "{}" \;
echo "Removing .less files"
find $path -name "*.less" -exec rm "{}" \;
echo "Removing vshost files"
find $path -name "*.vshost.exe" -exec rm "{}" \;
echo "Removing dylib files"
find $path -name "*.dylib" -exec rm "{}" \;
echo "Removing Empty folders"
find $path -depth -empty -type d -exec rm -r "{}" \;
}
AddJsonNet()
{
rm $outputFolder/Newtonsoft.Json.*
cp $sourceFolder/packages/Newtonsoft.Json.*/lib/net35/*.dll $outputFolder
cp $sourceFolder/packages/Newtonsoft.Json.*/lib/net35/*.dll $outputFolder/NzbDrone.Update
}
BuildWithMSBuild()
{
export PATH=$msBuild:$PATH
CheckExitCode MSBuild.exe $slnFile //t:Clean //m
$nuget restore $slnFile
CheckExitCode MSBuild.exe $slnFile //p:Configuration=Release //p:Platform=x86 //t:Build //m //p:AllowedReferenceRelatedFileExtensions=.pdb
}
BuildWithXbuild()
{
export MONO_IOMAP=case
CheckExitCode xbuild /t:Clean $slnFile
mono $nuget restore $slnFile
CheckExitCode xbuild /p:Configuration=Release /p:Platform=x86 /t:Build /p:AllowedReferenceRelatedFileExtensions=.pdb $slnFile
ProgressEnd 'Stylelint'
}
Build()
{
echo "##teamcity[progressStart 'Build']"
ProgressStart 'Build'
rm -rf $outputFolder
rm -rf $testPackageFolder
if [ $runtime = "dotnet" ] ; then
BuildWithMSBuild
slnFile=src/Radarr.sln
if [ $os = "windows" ]; then
platform=Windows
else
BuildWithXbuild
platform=Posix
fi
CleanFolder $outputFolder false
dotnet clean $slnFile -c Debug
dotnet clean $slnFile -c Release
AddJsonNet
if [[ -z "$RID" || -z "$FRAMEWORK" ]];
then
dotnet msbuild -restore $slnFile -p:Configuration=Release -p:Platform=$platform -t:PublishAllRids
else
dotnet msbuild -restore $slnFile -p:Configuration=Release -p:Platform=$platform -p:RuntimeIdentifiers=$RID -t:PublishAllRids
fi
echo "Removing Mono.Posix.dll"
rm $outputFolder/Mono.Posix.dll
ProgressEnd 'Build'
}
echo "##teamcity[progressFinish 'Build']"
YarnInstall()
{
ProgressStart 'yarn install'
yarn install --frozen-lockfile --network-timeout 120000
ProgressEnd 'yarn install'
}
RunGulp()
{
echo "##teamcity[progressStart 'npm install']"
npm-cache install npm || CheckExitCode npm install
echo "##teamcity[progressFinish 'npm install']"
echo "##teamcity[progressStart 'Running gulp']"
CheckExitCode npm run build
echo "##teamcity[progressFinish 'Running gulp']"
ProgressStart 'Running gulp'
yarn run build --production
ProgressEnd 'Running gulp'
}
CreateMdbs()
PackageFiles()
{
local path=$1
if [ $runtime = "dotnet" ] ; then
local pdbFiles=( $(find $path -name "*.pdb") )
for filename in "${pdbFiles[@]}"
do
if [ -e ${filename%.pdb}.dll ] ; then
tools/pdb2mdb/pdb2mdb.exe ${filename%.pdb}.dll
fi
if [ -e ${filename%.pdb}.exe ] ; then
tools/pdb2mdb/pdb2mdb.exe ${filename%.pdb}.exe
fi
done
fi
local folder="$1"
local framework="$2"
local runtime="$3"
rm -rf $folder
mkdir -p $folder
cp -r $outputFolder/$framework/$runtime/publish/* $folder
cp -r $outputFolder/Radarr.Update/$framework/$runtime/publish $folder/Radarr.Update
cp -r $outputFolder/UI $folder
echo "Adding LICENSE"
cp LICENSE $folder
}
PackageMono()
PackageLinux()
{
echo "##teamcity[progressStart 'Creating Mono Package']"
rm -rf $outputFolderMono
cp -r $outputFolder $outputFolderMono
local framework="$1"
local runtime="$2"
echo "Creating MDBs"
CreateMdbs $outputFolderMono
ProgressStart "Creating $runtime Package for $framework"
echo "Removing PDBs"
find $outputFolderMono -name "*.pdb" -exec rm "{}" \;
local folder=$artifactsFolder/$runtime/$framework/Radarr
PackageFiles "$folder" "$framework" "$runtime"
echo "Removing Service helpers"
rm -f $outputFolderMono/ServiceUninstall.*
rm -f $outputFolderMono/ServiceInstall.*
rm -f $folder/ServiceUninstall.*
rm -f $folder/ServiceInstall.*
echo "Removing native windows binaries Sqlite, MediaInfo"
rm -f $outputFolderMono/sqlite3.*
rm -f $outputFolderMono/MediaInfo.*
echo "Removing Radarr.Windows"
rm $folder/Radarr.Windows.*
echo "Adding NzbDrone.Core.dll.config (for dllmap)"
cp $sourceFolder/NzbDrone.Core/NzbDrone.Core.dll.config $outputFolderMono
echo "Adding Radarr.Mono to UpdatePackage"
cp $folder/Radarr.Mono.* $folder/Radarr.Update
if [ "$framework" = "netcoreapp3.1" ]; then
cp $folder/Mono.Posix.NETStandard.* $folder/Radarr.Update
cp $folder/libMonoPosixHelper.* $folder/Radarr.Update
fi
echo "Adding CurlSharp.dll.config (for dllmap)"
cp $sourceFolder/NzbDrone.Common/CurlSharp.dll.config $outputFolderMono
echo "Renaming NzbDrone.Console.exe to NzbDrone.exe"
rm $outputFolderMono/Radarr.exe*
for file in $outputFolderMono/Radarr.Console.exe*; do
mv "$file" "${file//.Console/}"
done
echo "Removing NzbDrone.Windows"
rm $outputFolderMono/NzbDrone.Windows.*
echo "Adding NzbDrone.Mono to UpdatePackage"
cp $outputFolderMono/NzbDrone.Mono.* $updateFolderMono
echo "##teamcity[progressFinish 'Creating Mono Package']"
ProgressEnd "Creating $runtime Package for $framework"
}
PackageOsx()
PackageMacOS()
{
echo "##teamcity[progressStart 'Creating OS X Package']"
rm -rf $outputFolderOsx
cp -r $outputFolderMono $outputFolderOsx
local framework="$1"
ProgressStart "Creating MacOS Package for $framework"
echo "Adding sqlite dylibs"
cp $sourceFolder/Libraries/Sqlite/*.dylib $outputFolderOsx
local folder=$artifactsFolder/macos/$framework/Radarr
echo "Adding MediaInfo dylib"
cp $sourceFolder/Libraries/MediaInfo/*.dylib $outputFolderOsx
PackageFiles "$folder" "$framework" "osx-x64"
echo "Adding Startup script"
cp ./osx/Sonarr $outputFolderOsx
if [ "$framework" = "net462" ]; then
echo "Adding Startup script"
cp macOS/Radarr $folder
fi
echo "##teamcity[progressFinish 'Creating OS X Package']"
echo "Removing Service helpers"
rm -f $folder/ServiceUninstall.*
rm -f $folder/ServiceInstall.*
echo "Removing Radarr.Windows"
rm $folder/Radarr.Windows.*
echo "Adding Radarr.Mono to UpdatePackage"
cp $folder/Radarr.Mono.* $folder/Radarr.Update
if [ "$framework" = "netcoreapp3.1" ]; then
cp $folder/Mono.Posix.NETStandard.* $folder/Radarr.Update
cp $folder/libMonoPosixHelper.* $folder/Radarr.Update
fi
ProgressEnd 'Creating MacOS Package'
}
PackageOsxApp()
PackageMacOSApp()
{
echo "##teamcity[progressStart 'Creating OS X App Package']"
rm -rf $outputFolderOsxApp
mkdir $outputFolderOsxApp
local framework="$1"
ProgressStart "Creating macOS App Package for $framework"
cp -r ./osx/Radarr.app $outputFolderOsxApp
cp -r $outputFolderOsx $outputFolderOsxApp/Radarr.app/Contents/MacOS
local folder=$artifactsFolder/macos-app/$framework
echo "##teamcity[progressFinish 'Creating OS X App Package']"
rm -rf $folder
mkdir -p $folder
cp -r macOS/Radarr.app $folder
mkdir -p $folder/Radarr.app/Contents/MacOS
echo "Copying Binaries"
cp -r $artifactsFolder/macos/$framework/Radarr/* $folder/Radarr.app/Contents/MacOS
echo "Removing Update Folder"
rm -r $folder/Radarr.app/Contents/MacOS/Radarr.Update
ProgressEnd 'Creating macOS App Package'
}
PackageWindows()
{
local framework="$1"
local runtime="$2"
ProgressStart "Creating Windows Package for $framework"
local folder=$artifactsFolder/$runtime/$framework/Radarr
PackageFiles "$folder" "$framework" "$runtime"
echo "Removing Radarr.Mono"
rm -f $folder/Radarr.Mono.*
rm -f $folder/Mono.Posix.NETStandard.*
rm -f $folder/libMonoPosixHelper.*
echo "Adding Radarr.Windows to UpdatePackage"
cp $folder/Radarr.Windows.* $folder/Radarr.Update
ProgressEnd 'Creating Windows Package'
}
Package()
{
local framework="$1"
local runtime="$2"
local SPLIT
IFS='-' read -ra SPLIT <<< "$runtime"
case "${SPLIT[0]}" in
linux)
PackageLinux "$framework" "$runtime"
;;
win)
PackageWindows "$framework" "$runtime"
;;
osx)
PackageMacOS "$framework"
PackageMacOSApp "$framework"
;;
esac
}
PackageTests()
{
echo "Packaging Tests"
echo "##teamcity[progressStart 'Creating Test Package']"
rm -rf $testPackageFolder
mkdir $testPackageFolder
local framework="$1"
local runtime="$2"
find $sourceFolder -path $testSearchPattern -exec cp -r -u -T "{}" $testPackageFolder \;
cp test.sh "$testPackageFolder/$framework/$runtime/publish"
if [ $runtime = "dotnet" ] ; then
$nuget install NUnit.ConsoleRunner -Version 3.2.0 -Output $testPackageFolder
else
mono $nuget install NUnit.ConsoleRunner -Version 3.2.0 -Output $testPackageFolder
fi
rm -f $testPackageFolder/$framework/$runtime/*.log.config
cp $outputFolder/*.dll $testPackageFolder
cp ./*.sh $testPackageFolder
echo "Creating MDBs for tests"
CreateMdbs $testPackageFolder
rm -f $testPackageFolder/*.log.config
CleanFolder $testPackageFolder true
echo "Adding NzbDrone.Core.dll.config (for dllmap)"
cp $sourceFolder/NzbDrone.Core/NzbDrone.Core.dll.config $testPackageFolder
echo "Adding CurlSharp.dll.config (for dllmap)"
cp $sourceFolder/NzbDrone.Common/CurlSharp.dll.config $testPackageFolder
echo "Copying CurlSharp libraries"
cp $sourceFolder/ExternalModules/CurlSharp/libs/i386/* $testPackageFolder
echo "##teamcity[progressFinish 'Creating Test Package']"
}
CleanupWindowsPackage()
{
echo "Removing NzbDrone.Mono"
rm -f $outputFolder/NzbDrone.Mono.*
echo "Adding NzbDrone.Windows to UpdatePackage"
cp $outputFolder/NzbDrone.Windows.* $updateFolder
ProgressEnd 'Creating Test Package'
}
# Use mono or .net depending on OS
case "$(uname -s)" in
CYGWIN*|MINGW32*|MINGW64*|MSYS*)
# on windows, use dotnet
runtime="dotnet"
os="windows"
;;
*)
# otherwise use mono
runtime="mono"
os="posix"
;;
esac
Build
RunGulp
PackageMono
PackageOsx
PackageOsxApp
PackageTests
CleanupWindowsPackage
POSITIONAL=()
if [ $# -eq 0 ]; then
echo "No arguments provided, building everything"
BACKEND=YES
FRONTEND=YES
PACKAGES=YES
LINT=YES
fi
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
--backend)
BACKEND=YES
shift # past argument
;;
-r|--runtime)
RID="$2"
shift # past argument
shift # past value
;;
-f|--framework)
FRAMEWORK="$2"
shift # past argument
shift # past value
;;
--frontend)
FRONTEND=YES
shift # past argument
;;
--packages)
PACKAGES=YES
shift # past argument
;;
--lint)
LINT=YES
shift # past argument
;;
--all)
BACKEND=YES
FRONTEND=YES
PACKAGES=YES
LINT=YES
shift # past argument
;;
*) # unknown option
POSITIONAL+=("$1") # save it in an array for later
shift # past argument
;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters
if [ "$BACKEND" = "YES" ];
then
UpdateVersionNumber
Build
if [[ -z "$RID" || -z "$FRAMEWORK" ]];
then
PackageTests "netcoreapp3.1" "win-x64"
PackageTests "netcoreapp3.1" "win-x86"
PackageTests "netcoreapp3.1" "linux-x64"
PackageTests "netcoreapp3.1" "linux-musl-x64"
PackageTests "netcoreapp3.1" "osx-x64"
PackageTests "net462" "linux-x64"
else
PackageTests "$FRAMEWORK" "$RID"
fi
fi
if [ "$FRONTEND" = "YES" ];
then
YarnInstall
RunGulp
fi
if [ "$LINT" = "YES" ];
then
if [ -z "$FRONTEND" ];
then
YarnInstall
fi
LintUI
fi
if [ "$PACKAGES" = "YES" ];
then
UpdateVersionNumber
if [[ -z "$RID" || -z "$FRAMEWORK" ]];
then
Package "netcoreapp3.1" "win-x64"
Package "netcoreapp3.1" "win-x86"
Package "netcoreapp3.1" "linux-x64"
Package "netcoreapp3.1" "linux-musl-x64"
Package "netcoreapp3.1" "linux-arm64"
Package "netcoreapp3.1" "linux-musl-arm64"
Package "netcoreapp3.1" "linux-arm"
Package "netcoreapp3.1" "osx-x64"
Package "net462" "linux-x64"
else
Package "$FRAMEWORK" "$RID"
fi
fi

44
create_test_cases.py Normal file
View File

@@ -0,0 +1,44 @@
input1 = """Prometheus.Special.Edition.Fan Edit.2012..BRRip.x264.AAC-m2g
Star Wars Episode IV - A New Hope (Despecialized) 1999.mkv
Prometheus.(Special.Edition.Remastered).2012.[Bluray-1080p].mkv
Prometheus Extended 2012
Prometheus Extended Directors Cut Fan Edit 2012
Prometheus Director's Cut 2012
Prometheus Directors Cut 2012
Prometheus.(Extended.Theatrical.Version.IMAX).BluRay.1080p.2012.asdf
2001 A Space Odyssey Director's Cut (1968).mkv
2001: A Space Odyssey (Extended Directors Cut FanEdit) Bluray 1080p 1968
A Fake Movie 2035 Directors 2012.mkv
Blade Runner Director's Cut 2049.mkv
Prometheus 50th Anniversary Edition 2012.mkv
Movie 2in1 2012.mkv
Movie IMAX 2012.mkv"""
output1 = """Special.Edition.Fan Edit BRRip.x264.AAC-m2g
Despecialized mkv
Special.Edition.Remastered Bluray-1080p].mkv
Extended mkv
Extended Directors Cut Fan Edit mkv
Director's Cut mkv
Directors Cut mkv
Extended.Theatrical.Version.IMAX asdf
Director's Cut mkv
Extended Directors Cut FanEdit mkv
Directors mkv
Director's Cut mkv
50th Anniversary Edition mkv
2in1 mkv
IMAX mkv"""
inputs = input1.split("\n")
outputs = output1.split("\n")
real_o = []
for output in outputs:
real_o.append(output.split(" ")[0].replace(".", " ").strip())
count = 0
for inp in inputs:
o = real_o[count]
print "[TestCase(\"{0}\", \"{1}\")]".format(inp, o)
count += 1

48
debian/copyright vendored
View File

@@ -1,24 +1,24 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: nzbdrone
Source: https://github.com/Sonarr/Sonarr
Files: *
Copyright: 2010-2016 Sonarr <hello@sonarr.tv>
License: GPL-3.0+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
.
On Debian systems, the complete text of the GNU General
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: nzbdrone
Source: https://github.com/Sonarr/Sonarr
Files: *
Copyright: 2010-2016 Sonarr <hello@sonarr.tv>
License: GPL-3.0+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
.
On Debian systems, the complete text of the GNU General
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".

2
debian/install vendored
View File

@@ -1 +1 @@
nzbdrone_bin/* opt/NzbDrone
nzbdrone_bin/* opt/NzbDrone

0
debian/rules vendored Executable file → Normal file
View File

25
frontend/.csscomb.json Normal file
View File

@@ -0,0 +1,25 @@
{
"remove-empty-rulesets": true,
"always-semicolon": true,
"color-case": "lower",
"block-indent": " ",
"color-shorthand": false,
"element-case": "lower",
"eof-newline": true,
"leading-zero": true,
"quotes": "double",
"sort-order-fallback": "abc",
"space-before-colon": "",
"space-after-colon": " ",
"space-before-combinator": " ",
"space-after-combinator": " ",
"space-between-declarations": "\n",
"space-before-opening-brace": " ",
"space-after-opening-brace": "\n",
"space-after-selector-delimiter": " ",
"space-before-selector-delimiter": "",
"space-before-closing-brace": "\n",
"strip-spaces": true,
"tab-size": true,
"unitless-zero": false
}

335
frontend/.esformatter Normal file
View File

@@ -0,0 +1,335 @@
{
"indent": {
"value": " ",
"FunctionExpression": 1,
"ArrayExpression": 1,
"ObjectExpression": 1
},
"lineBreak": {
"value": "\n",
"before": {
"ArrayPatternClosing": 0,
"ArrayPatternComma": 0,
"ArrayPatternOpening": 0,
"ArrowFunctionExpressionArrow": 0,
"ArrowFunctionExpressionClosingBrace": ">=1",
"ArrowFunctionExpressionOpeningBrace": 0,
"AssignmentExpression": ">=1",
"AssignmentOperator": 0,
"BlockStatement": 0,
"BreakKeyword": ">=1",
"CallExpression": -1,
"CallExpressionClosingParentheses": -1,
"CallExpressionOpeningParentheses": 0,
"CatchClosingBrace": ">=1",
"CatchKeyword": 0,
"CatchOpeningBrace": 0,
"ClassDeclaration": ">=1",
"ClassDeclarationClosingBrace": ">=1",
"ClassDeclarationOpeningBrace": 0,
"ConditionalExpression": ">=1",
"DeleteOperator": ">=1",
"DoWhileStatement": ">=1",
"DoWhileStatementClosingBrace": ">=1",
"DoWhileStatementOpeningBrace": 0,
"ElseIfStatement": 0,
"ElseIfStatementClosingBrace": ">=1",
"ElseIfStatementOpeningBrace": 0,
"ElseStatement": 0,
"ElseStatementClosingBrace": ">=1",
"ElseStatementOpeningBrace": 0,
"EmptyStatement": -1,
"EndOfFile": -1,
"FinallyClosingBrace": ">=1",
"FinallyKeyword": -1,
"FinallyOpeningBrace": 0,
"ForInStatement": ">=1",
"ForInStatementClosingBrace": ">=1",
"ForInStatementExpressionClosing": 0,
"ForInStatementExpressionOpening": 0,
"ForInStatementOpeningBrace": 0,
"ForStatement": ">=1",
"ForStatementClosingBrace": ">=1",
"ForStatementExpressionClosing": "<2",
"ForStatementExpressionOpening": 0,
"ForStatementOpeningBrace": 0,
"FunctionDeclaration": ">=1",
"FunctionDeclarationClosingBrace": ">=1",
"FunctionDeclarationOpeningBrace": 0,
"FunctionExpression": 0,
"FunctionExpressionClosingBrace": 1,
"FunctionExpressionOpeningBrace":0,
"IIFEClosingParentheses": 0,
"IfStatement": ">=1",
"IfStatementClosingBrace": ">=1",
"IfStatementOpeningBrace": 0,
"LogicalExpression": -1,
"MemberExpressionClosing": 0,
"MemberExpressionOpening": 0,
"MemberExpressionPeriod": -1,
"MethodDefinition": ">=1",
"ObjectExpressionClosingBrace": "<=1",
"ObjectPatternClosingBrace": 0,
"ObjectPatternComma": 0,
"ObjectPatternOpeningBrace": 0,
"ParameterDefault": 0,
"Property": "<=2",
"PropertyValue": 0,
"ReturnStatement": -1,
"SwitchClosingBrace": ">=1",
"SwitchOpeningBrace": 0,
"ThisExpression": -1,
"ThrowStatement": ">=1",
"TryClosingBrace": ">=1",
"TryKeyword": -1,
"TryOpeningBrace": 0,
"VariableDeclaration": ">=1",
"VariableDeclarationSemiColon": 0,
"VariableDeclarationWithoutInit": ">=1",
"VariableName": ">=1",
"VariableValue": 0,
"WhileStatement": ">=1",
"WhileStatementClosingBrace": ">=1",
"WhileStatementOpeningBrace": 0
},
"after": {
"ArrayPatternClosing": 0,
"ArrayPatternComma": 0,
"ArrayPatternOpening": 0,
"ArrowFunctionExpressionArrow": 0,
"ArrowFunctionExpressionClosingBrace": -1,
"ArrowFunctionExpressionOpeningBrace": ">=1",
"AssignmentExpression": ">=1",
"AssignmentOperator": 0,
"BlockStatement": 0,
"BreakKeyword": -1,
"CallExpression": -1,
"CallExpressionClosingParentheses": -1,
"CallExpressionOpeningParentheses": -1,
"CatchClosingBrace": ">=0",
"CatchKeyword": 0,
"CatchOpeningBrace": ">=1",
"ClassDeclaration": ">=1",
"ClassDeclarationClosingBrace": ">=1",
"ClassDeclarationOpeningBrace": ">=1",
"ConditionalExpression": ">=1",
"DeleteOperator": ">=1",
"DoWhileStatement": ">=1",
"DoWhileStatementClosingBrace": 0,
"DoWhileStatementOpeningBrace": ">=1",
"ElseIfStatement": ">=1",
"ElseIfStatementClosingBrace": ">=1",
"ElseIfStatementOpeningBrace": ">=1",
"ElseStatement": ">=1",
"ElseStatementClosingBrace": ">=1",
"ElseStatementOpeningBrace": ">=1",
"EmptyStatement": -1,
"FinallyClosingBrace": ">=1",
"FinallyKeyword": -1,
"FinallyOpeningBrace": ">=1",
"ForInStatement": ">=1",
"ForInStatementClosingBrace": ">=1",
"ForInStatementExpressionClosing": -1,
"ForInStatementExpressionOpening": "<2",
"ForInStatementOpeningBrace": ">=1",
"ForStatement": ">=1",
"ForStatementClosingBrace": ">=1",
"ForStatementExpressionClosing": -1,
"ForStatementExpressionOpening": "<2",
"ForStatementOpeningBrace": ">=1",
"FunctionDeclaration": ">=1",
"FunctionDeclarationClosingBrace": ">=1",
"FunctionDeclarationOpeningBrace": ">=1",
"FunctionExpression": 0,
"FunctionExpressionClosingBrace": -1,
"FunctionExpressionOpeningBrace": 1,
"IIFEOpeningParentheses": 0,
"IfStatement": ">=1",
"IfStatementClosingBrace": ">=1",
"IfStatementOpeningBrace": ">=1",
"LogicalExpression": -1,
"MemberExpressionClosing": 0,
"MemberExpressionOpening": 0,
"MemberExpressionPeriod": 0,
"MethodDefinition": ">=1",
"ObjectExpressionOpeningBrace": "<=1",
"ObjectPatternClosingBrace": 0,
"ObjectPatternComma": 0,
"ObjectPatternOpeningBrace": 0,
"ParameterDefault": 0,
"Property": -1,
"PropertyName": 0,
"ReturnStatement": -1,
"SwitchCaseColon": ">=1",
"SwitchClosingBrace": ">=1",
"SwitchOpeningBrace": ">=1",
"ThisExpression": 0,
"ThrowStatement": ">=1",
"TryClosingBrace": 0,
"TryKeyword": -1,
"TryOpeningBrace": ">=1",
"VariableDeclaration": ">=1",
"VariableDeclarationSemiColon": ">=1",
"VariableValue": -1,
"WhileStatement": ">=1",
"WhileStatementClosingBrace": ">=1",
"WhileStatementOpeningBrace": ">=1"
}
},
"whiteSpace": {
"value": " ",
"removeTrailing": 1,
"before": {
"ArgumentComma": 0,
"ArgumentList": 0,
"ArgumentListArrayExpression": 0,
"ArgumentListFunctionExpression": 1,
"ArgumentListObjectExpression": 0,
"ArrayExpressionClosing": 0,
"ArrayExpressionComma": 0,
"ArrayExpressionOpening": 1,
"AssignmentOperator": 1,
"BinaryExpression": 0,
"BinaryExpressionOperator": 1,
"BlockComment": 1,
"CallExpression": 1,
"CatchClosingBrace": 1,
"CatchKeyword": 1,
"CatchOpeningBrace": 1,
"CatchParameterList": 0,
"CommaOperator": 0,
"ConditionalExpressionAlternate": 1,
"ConditionalExpressionConsequent": 1,
"DoWhileStatementClosingBrace": 1,
"DoWhileStatementConditional": 1,
"DoWhileStatementOpeningBrace": 1,
"ElseIfStatementClosingBrace": 1,
"ElseIfStatementOpeningBrace": 1,
"ElseStatementClosingBrace": 1,
"ElseStatementOpeningBrace": 1,
"EmptyStatement": 0,
"ExpressionClosingParentheses": 0,
"FinallyClosingBrace": 1,
"FinallyKeyword": -1,
"FinallyOpeningBrace": 1,
"ForInStatement": 1,
"ForInStatementClosingBrace": 1,
"ForInStatementExpressionClosing": 0,
"ForInStatementExpressionOpening": 1,
"ForInStatementOpeningBrace": 1,
"ForStatement": 1,
"ForStatementClosingBrace": 1,
"ForStatementExpressionClosing": 0,
"ForStatementExpressionOpening": 1,
"ForStatementOpeningBrace": 1,
"ForStatementSemicolon": 0,
"FunctionDeclarationClosingBrace": 1,
"FunctionDeclarationOpeningBrace": 1,
"FunctionExpressionClosingBrace": 1,
"FunctionExpressionOpeningBrace": 1,
"IfStatementClosingBrace": 1,
"IfStatementConditionalClosing": 0,
"IfStatementConditionalOpening": 1,
"IfStatementOpeningBrace": 1,
"LineComment": 1,
"LogicalExpressionOperator": 1,
"MemberExpressionClosing": 0,
"ObjectExpressionClosingBrace": 1,
"ParameterComma": 0,
"ParameterList": 0,
"Property": 1,
"PropertyName": 1,
"PropertyValue": 1,
"SwitchDiscriminantClosing": 0,
"SwitchDiscriminantOpening": 1,
"ThrowKeyword": 1,
"TryClosingBrace": 1,
"TryKeyword": -1,
"TryOpeningBrace": 1,
"UnaryExpressionOperator": 0,
"VariableName": 1,
"VariableValue": 1,
"WhileStatementClosingBrace": 1,
"WhileStatementConditionalClosing": 0,
"WhileStatementConditionalOpening": 1,
"WhileStatementOpeningBrace": 1
},
"after": {
"ArgumentComma": 1,
"ArgumentList": 0,
"ArgumentListArrayExpression": 1,
"ArgumentListFunctionExpression": 1,
"ArgumentListObjectExpression": 0,
"ArrayExpressionClosing": 0,
"ArrayExpressionComma": 1,
"ArrayExpressionOpening": 0,
"AssignmentOperator": 1,
"BinaryExpression": 0,
"BinaryExpressionOperator": 1,
"BlockComment": 1,
"CallExpression": 0,
"CatchClosingBrace": 1,
"CatchKeyword": 1,
"CatchOpeningBrace": 1,
"CatchParameterList": 0,
"CommaOperator": 1,
"ConditionalExpressionConsequent": 1,
"ConditionalExpressionTest": 1,
"DoWhileStatementBody": 1,
"DoWhileStatementClosingBrace": 1,
"DoWhileStatementOpeningBrace": 1,
"ElseIfStatementClosingBrace": 1,
"ElseIfStatementOpeningBrace": 1,
"ElseStatementClosingBrace": 1,
"ElseStatementOpeningBrace": 1,
"EmptyStatement": 0,
"ExpressionOpeningParentheses": 0,
"FinallyClosingBrace": 1,
"FinallyKeyword": -1,
"FinallyOpeningBrace": 1,
"ForInStatement": 1,
"ForInStatementClosingBrace": 1,
"ForInStatementExpressionClosing": 1,
"ForInStatementExpressionOpening": 0,
"ForInStatementOpeningBrace": 1,
"ForStatement": 1,
"ForStatementClosingBrace": 1,
"ForStatementExpressionClosing": 1,
"ForStatementExpressionOpening": 0,
"ForStatementOpeningBrace": 1,
"ForStatementSemicolon": 1,
"FunctionDeclarationClosingBrace": 0,
"FunctionDeclarationOpeningBrace": 0,
"FunctionExpressionClosingBrace": 0,
"FunctionExpressionOpeningBrace": 0,
"FunctionName": 0,
"FunctionReservedWord": 0,
"IfStatementClosingBrace": 1,
"IfStatementConditionalClosing": 0,
"IfStatementConditionalOpening": 0,
"IfStatementOpeningBrace": 1,
"LogicalExpressionOperator": 1,
"MemberExpressionOpening": 0,
"ObjectExpressionClosingBrace": 0,
"ObjectExpressionOpeningBrace": 1,
"ParameterComma": 1,
"ParameterList": 0,
"PropertyName": 0,
"PropertyValue": 0,
"SwitchDiscriminantClosing": 1,
"SwitchDiscriminantOpening": 0,
"ThrowKeyword": 1,
"TryClosingBrace": 1,
"TryKeyword": -1,
"TryOpeningBrace": 1,
"UnaryExpressionOperator": 0,
"VariableName": 1,
"WhileStatementClosingBrace": 1,
"WhileStatementConditionalClosing": 1,
"WhileStatementConditionalOpening": 0,
"WhileStatementOpeningBrace": 1
}
}
}

1
frontend/.eslintignore Normal file
View File

@@ -0,0 +1 @@
**/JsLibraries/**

327
frontend/.eslintrc.js Normal file
View File

@@ -0,0 +1,327 @@
const fs = require('fs');
const dirs = fs
.readdirSync('frontend/src', { withFileTypes: true })
.filter((dirent) => dirent.isDirectory())
.map((dirent) => dirent.name)
.join('|');
module.exports = {
parser: 'babel-eslint',
env: {
browser: true,
commonjs: true,
node: true,
es6: true
},
globals: {
expect: false,
chai: false,
sinon: false
},
parserOptions: {
ecmaVersion: 6,
sourceType: 'module',
ecmaFeatures: {
modules: true,
impliedStrict: true
}
},
plugins: [
'filenames',
'react',
'simple-import-sort',
'import'
],
settings: {
react: {
version: 'detect'
}
},
rules: {
'filenames/match-exported': ['error'],
// ECMAScript 6
'arrow-body-style': [0],
'arrow-parens': ['error', 'always'],
'arrow-spacing': ['error', { before: true, after: true }],
'constructor-super': 'error',
'generator-star-spacing': 'off',
'no-class-assign': 'error',
'no-confusing-arrow': 'error',
'no-const-assign': 'error',
'no-dupe-class-members': 'error',
'no-duplicate-imports': 'error',
'no-new-symbol': 'error',
'no-this-before-super': 'error',
'no-useless-escape': 'error',
'no-useless-computed-key': 'error',
'no-useless-constructor': 'error',
'no-var': 'warn',
'object-shorthand': ['error', 'properties'],
'prefer-arrow-callback': 'error',
'prefer-const': 'warn',
'prefer-reflect': 'off',
'prefer-rest-params': 'off',
'prefer-spread': 'warn',
'prefer-template': 'error',
'require-yield': 'off',
'template-curly-spacing': ['error', 'never'],
'yield-star-spacing': 'off',
// Possible Errors
'comma-dangle': 'error',
'no-cond-assign': 'error',
'no-console': 'off',
'no-constant-condition': 'warn',
'no-control-regex': 'error',
'no-debugger': 'off',
'no-dupe-args': 'error',
'no-dupe-keys': 'error',
'no-duplicate-case': 'error',
'no-empty': 'warn',
'no-empty-character-class': 'error',
'no-ex-assign': 'error',
'no-extra-boolean-cast': 'error',
'no-extra-parens': ['error', 'functions'],
'no-extra-semi': 'error',
'no-func-assign': 'error',
'no-inner-declarations': 'error',
'no-invalid-regexp': 'error',
'no-irregular-whitespace': 'error',
'no-negated-in-lhs': 'error',
'no-obj-calls': 'error',
'no-regex-spaces': 'error',
'no-sparse-arrays': 'error',
'no-unexpected-multiline': 'error',
'no-unreachable': 'warn',
'no-unsafe-finally': 'error',
'use-isnan': 'error',
'valid-jsdoc': 'off',
'valid-typeof': 'error',
// Best Practices
'accessor-pairs': 'off',
'array-callback-return': 'warn',
'block-scoped-var': 'warn',
'consistent-return': 'off',
curly: 'error',
'default-case': 'error',
'dot-location': ['error', 'property'],
'dot-notation': 'error',
eqeqeq: ['error', 'smart'],
'guard-for-in': 'error',
'no-alert': 'warn',
'no-caller': 'error',
'no-case-declarations': 'error',
'no-div-regex': 'error',
'no-else-return': 'error',
'no-empty-function': ['error', { allow: ['arrowFunctions'] }],
'no-empty-pattern': 'error',
'no-eval': 'error',
'no-extend-native': 'error',
'no-extra-bind': 'error',
'no-fallthrough': 'error',
'no-floating-decimal': 'error',
'no-implicit-coercion': ['error', {
boolean: false,
number: true,
string: true,
allow: [/* "!!", "~", "*", "+" */]
}],
'no-implicit-globals': 'error',
'no-implied-eval': 'error',
'no-invalid-this': 'off',
'no-iterator': 'error',
'no-labels': 'error',
'no-lone-blocks': 'error',
'no-loop-func': 'error',
'no-magic-numbers': ['off', { ignoreArrayIndexes: true, ignore: [0, 1] }],
'no-multi-spaces': 'error',
'no-multi-str': 'error',
'no-native-reassign': ['error', { exceptions: ['console'] }],
'no-new': 'off',
'no-new-func': 'error',
'no-new-wrappers': 'error',
'no-octal': 'error',
'no-octal-escape': 'error',
'no-param-reassign': 'off',
'no-process-env': 'off',
'no-proto': 'error',
'no-redeclare': 'error',
'no-return-assign': 'warn',
'no-script-url': 'error',
'no-self-assign': 'error',
'no-self-compare': 'error',
'no-sequences': 'error',
'no-throw-literal': 'error',
'no-unmodified-loop-condition': 'error',
'no-unused-expressions': 'error',
'no-unused-labels': 'error',
'no-useless-call': 'error',
'no-useless-concat': 'error',
'no-void': 'error',
'no-warning-comments': 'off',
'no-with': 'error',
radix: ['error', 'as-needed'],
'vars-on-top': 'off',
'wrap-iife': ['error', 'inside'],
yoda: 'error',
// Strict Mode
strict: ['error', 'never'],
// Variables
'init-declarations': ['error', 'always'],
'no-catch-shadow': 'error',
'no-delete-var': 'error',
'no-label-var': 'error',
'no-restricted-globals': 'off',
'no-shadow': 'error',
'no-shadow-restricted-names': 'error',
'no-undef': 'error',
'no-undef-init': 'off',
'no-undefined': 'off',
'no-unused-vars': ['error', { args: 'none', ignoreRestSiblings: true }],
'no-use-before-define': 'error',
// Node.js and CommonJS
'callback-return': 'warn',
'global-require': 'error',
'handle-callback-err': 'warn',
'no-mixed-requires': 'error',
'no-new-require': 'error',
'no-path-concat': 'error',
'no-process-exit': 'error',
// Stylistic Issues
'array-bracket-spacing': ['error', 'never'],
'block-spacing': ['error', 'always'],
'brace-style': ['error', '1tbs', { allowSingleLine: false }],
camelcase: 'off',
'comma-spacing': ['error', { before: false, after: true }],
'comma-style': ['error', 'last'],
'computed-property-spacing': ['error', 'never'],
'consistent-this': ['error', 'self'],
'eol-last': 'error',
'func-names': 'off',
'func-style': ['error', 'declaration'],
indent: ['error', 2, { SwitchCase: 1 }],
'key-spacing': ['error', { beforeColon: false, afterColon: true }],
'keyword-spacing': ['error', { before: true, after: true }],
'lines-around-comment': ['error', { beforeBlockComment: true, afterBlockComment: false }],
'max-depth': ['error', { maximum: 5 }],
'max-nested-callbacks': ['error', 4],
'max-statements': 'off',
'max-statements-per-line': ['error', { max: 1 }],
'new-cap': ['error', { capIsNewExceptions: ['$.Deferred', 'DragDropContext', 'DragLayer', 'DragSource', 'DropTarget'] }],
'new-parens': 'error',
'newline-after-var': 'off',
'newline-before-return': 'off',
'newline-per-chained-call': 'off',
'no-array-constructor': 'error',
'no-bitwise': 'error',
'no-continue': 'error',
'no-inline-comments': 'off',
'no-lonely-if': 'warn',
'no-mixed-spaces-and-tabs': 'error',
'no-multiple-empty-lines': ['error', { max: 1 }],
'no-negated-condition': 'warn',
'no-nested-ternary': 'error',
'no-new-object': 'error',
'no-plusplus': 'off',
'no-restricted-syntax': 'off',
'no-spaced-func': 'error',
'no-ternary': 'off',
'no-trailing-spaces': 'error',
'no-underscore-dangle': ['error', { allowAfterThis: true }],
'no-unneeded-ternary': 'error',
'no-whitespace-before-property': 'error',
'object-curly-spacing': ['error', 'always'],
'one-var': ['error', 'never'],
'one-var-declaration-per-line': ['error', 'always'],
'operator-assignment': ['off', 'never'],
'operator-linebreak': ['error', 'after'],
'quote-props': ['error', 'as-needed'],
quotes: ['error', 'single'],
'require-jsdoc': 'off',
semi: 'error',
'semi-spacing': ['error', { before: false, after: true }],
'sort-vars': 'off',
'space-before-blocks': ['error', 'always'],
'space-before-function-paren': ['error', 'never'],
'space-in-parens': 'off',
'space-infix-ops': 'off',
'space-unary-ops': 'off',
'spaced-comment': 'error',
'wrap-regex': 'error',
// ImportSort
'simple-import-sort/sort': 'error',
'import/newline-after-import': 'error',
// React
'react/jsx-boolean-value': [2, 'always'],
'react/jsx-uses-vars': 2,
'react/jsx-closing-bracket-location': 2,
'react/jsx-tag-spacing': ['error'],
'react/jsx-curly-spacing': [2, 'never'],
'react/jsx-equals-spacing': [2, 'never'],
'react/jsx-indent-props': [2, 2],
'react/jsx-indent': [2, 2, { indentLogicalExpressions: true }],
'react/jsx-key': 2,
'react/jsx-no-bind': [2, { allowArrowFunctions: true }],
'react/jsx-no-duplicate-props': [2, { ignoreCase: true }],
'react/jsx-max-props-per-line': [2, { maximum: 2 }],
'react/jsx-handler-names': [2, { eventHandlerPrefix: '(on|dispatch)', eventHandlerPropPrefix: 'on' }],
'react/jsx-no-undef': 2,
'react/jsx-pascal-case': 2,
'react/jsx-uses-react': 2,
// Explicitly disabled in case we want to enable them again
'react/no-did-mount-set-state': 0,
'react/no-did-update-set-state': 0,
'react/no-direct-mutation-state': 2,
'react/no-multi-comp': [2, { ignoreStateless: true }],
'react/no-unknown-property': 2,
'react/prefer-es6-class': 2,
'react/prop-types': 2,
'react/react-in-jsx-scope': 2,
'react/self-closing-comp': 2,
'react/sort-comp': 2,
'react/jsx-wrap-multilines': 2
},
overrides: [
{
files: ['*.js'],
rules: {
'simple-import-sort/sort': [
'error',
{
groups: [
// Packages
// Absolute Paths
// Relative Paths
// Css
['^@?\\w', `^(${dirs})(/.*|$)`, '^\\.', '^\\..*css$']
]
}
]
}
}
]
};

12
frontend/.jsbeautifyrc Normal file
View File

@@ -0,0 +1,12 @@
{
"js": {
"indent_size": 2,
"indent_char": " ",
"indent_level": 2,
"indent_with_tabs": false,
"preserve_newlines": true,
"brace_style": "collapse",
"max_preserve_newlines": 2,
"jslint_happy": true
}
}

396
frontend/.stylelintrc Normal file
View File

@@ -0,0 +1,396 @@
{
"plugins": [
"stylelint-order"
],
"ignoreFiles": [
"frontend/src/Styles/scaffolding.css",
"**/*.js"
],
"rules": {
"at-rule-empty-line-before": [
"always",
{
"except": [
"inside-block"
]
}
],
"at-rule-name-case": "lower",
"at-rule-name-newline-after": "always-multi-line",
"at-rule-name-space-after": "always",
"at-rule-no-unknown": [
true,
{
"ignoreAtRules": [
"/^add\\-mixin$/",
"/^define\\-mixin$/"
]
}
],
"at-rule-no-vendor-prefix": true,
"at-rule-semicolon-newline-after": "always",
"at-rule-semicolon-space-before": "never",
"block-closing-brace-empty-line-before": "never",
"block-closing-brace-newline-after": "always",
"block-closing-brace-newline-before": "always",
"block-closing-brace-space-after": "always-single-line",
"block-closing-brace-space-before": "always-single-line",
"block-no-empty": true,
"block-opening-brace-newline-after": "always",
"block-opening-brace-newline-before": "never-single-line",
"block-opening-brace-space-after": "always-single-line",
"block-opening-brace-space-before": "always",
"color-hex-case": "lower",
"color-hex-length": "short",
"color-named": "never",
"color-no-invalid-hex": true,
"comment-whitespace-inside": "always",
"declaration-bang-space-after": "never",
"declaration-bang-space-before": "always",
"declaration-block-no-duplicate-properties": [
true,
{
"ignoreProperties": [
"composes"
]
}
],
"declaration-block-no-redundant-longhand-properties": true,
"declaration-block-no-shorthand-property-overrides": true,
"declaration-block-semicolon-newline-after": "always",
"declaration-block-semicolon-newline-before": "never-multi-line",
"declaration-block-semicolon-space-before": "never",
"declaration-block-single-line-max-declarations": 1,
"declaration-block-trailing-semicolon": "always",
"declaration-colon-space-after": "always",
"declaration-colon-space-before": "never",
"font-family-name-quotes": "always-unless-keyword",
"function-calc-no-unspaced-operator": true,
"function-comma-newline-after": "never-multi-line",
"function-comma-newline-before": "never-multi-line",
"function-comma-space-after": "always",
"function-comma-space-before": "never",
"function-linear-gradient-no-nonstandard-direction": true,
"function-name-case": "lower",
"function-parentheses-newline-inside": "never-multi-line",
"function-parentheses-space-inside": "never",
"function-url-quotes": "always",
"function-url-scheme-disallowed-list": [
"data"
],
"function-whitespace-after": "always",
"indentation": 2,
"keyframe-declaration-no-important": true,
"length-zero-no-unit": true,
"max-empty-lines": 1,
"max-line-length": [
100,
{
"ignore": [
"non-comments"
]
}
],
"max-nesting-depth": 2,
"media-feature-colon-space-after": "always",
"media-feature-colon-space-before": "never",
"media-feature-name-case": "lower",
"media-feature-name-no-vendor-prefix": true,
"media-feature-range-operator-space-after": "always",
"media-feature-range-operator-space-before": "always",
"no-empty-source": true,
"no-eol-whitespace": true,
"no-extra-semicolons": true,
"no-invalid-double-slash-comments": true,
"no-missing-end-of-source-newline": true,
"number-leading-zero": "always",
"number-no-trailing-zeros": true,
"order/order": [
"custom-properties",
"dollar-variables",
{
"hasBlock": false,
"name": "add-mixin",
"type": "at-rule"
},
"declarations",
"rules",
"at-rules"
],
"order/properties-order": [
{
"emptyLineBefore": "always",
"properties": [
"composes"
]
},
{
"emptyLineBefore": "always",
"properties": [
"position",
"top",
"right",
"bottom",
"left",
"z-index",
"display",
"visibility",
"align-content",
"align-items",
"align-self",
"justify-content",
"flex",
"flex-direction",
"flex-order",
"flex-pack",
"flex-align",
"flex-grow",
"flex-shrink",
"flex-basis",
"flex-wrap",
"flex-flow",
"float",
"clear",
"overflow",
"overflow-x",
"overflow-y",
"-webkit-overflow-scrolling",
"clip",
"box-sizing",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"min-width",
"min-height",
"max-width",
"max-height",
"width",
"height",
"outline",
"outline-width",
"outline-style",
"outline-color",
"outline-offset",
"border",
"border-spacing",
"border-collapse",
"border-width",
"border-style",
"border-color",
"border-top",
"border-top-width",
"border-top-style",
"border-top-color",
"border-right",
"border-right-width",
"border-right-style",
"border-right-color",
"border-bottom",
"border-bottom-width",
"border-bottom-style",
"border-bottom-color",
"border-left",
"border-left-width",
"border-left-style",
"border-left-color",
"border-radius",
"border-top-left-radius",
"border-top-right-radius",
"border-bottom-right-radius",
"border-bottom-left-radius",
"border-image",
"border-image-source",
"border-image-slice",
"border-image-width",
"border-image-outset",
"border-image-repeat",
"border-top-image",
"border-right-image",
"border-bottom-image",
"border-left-image",
"border-corner-image",
"border-top-left-image",
"border-top-right-image",
"border-bottom-right-image",
"border-bottom-left-image",
"background",
"background-color",
"background-image",
"background-attachment",
"background-position",
"background-position-x",
"background-position-y",
"background-clip",
"background-origin",
"background-size",
"background-repeat",
"box-decoration-break",
"box-shadow",
"color",
"table-layout",
"caption-side",
"empty-cells",
"list-style",
"list-style-position",
"list-style-type",
"list-style-image",
"quotes",
"content",
"counter-increment",
"counter-reset",
"-ms-writing-mode",
"vertical-align",
"text-align",
"text-align-last",
"text-decoration",
"text-emphasis",
"text-emphasis-position",
"text-emphasis-style",
"text-emphasis-color",
"text-indent",
"text-justify",
"text-outline",
"text-transform",
"text-wrap",
"text-overflow",
"text-overflow-ellipsis",
"text-overflow-mode",
"text-shadow",
"white-space",
"word-spacing",
"word-wrap",
"word-break",
"tab-size",
"hyphens",
"letter-spacing",
"font",
"font-weight",
"font-style",
"font-variant",
"font-size-adjust",
"font-stretch",
"font-size",
"font-family",
"font-smoothing",
"-moz-osx-font-smoothing",
"-webkit-font-smoothing",
"src",
"line-height",
"opacity",
"filter",
"resize",
"cursor",
"appearance",
"nav-index",
"nav-up",
"nav-right",
"nav-down",
"nav-left",
"transition",
"transition-delay",
"transition-timing-function",
"transition-duration",
"transition-property",
"transform",
"transform-origin",
"transform-style",
"backface-visibility",
"animation",
"animation-name",
"animation-duration",
"animation-play-state",
"animation-timing-function",
"animation-delay",
"animation-iteration-count",
"animation-direction",
"animation-fill-mode",
"pointer-events",
"user-select",
"touch-action",
"-webkit-tap-highlight-color",
"unicode-bidi",
"direction",
"columns",
"column-span",
"column-width",
"column-count",
"column-fill",
"column-gap",
"column-rule",
"column-rule-width",
"column-rule-style",
"column-rule-color",
"break-before",
"break-inside",
"break-after",
"page-break-before",
"page-break-inside",
"page-break-after",
"orphans",
"widows",
"zoom",
"max-zoom",
"min-zoom",
"user-zoom",
"orientation"
]
}
],
"property-case": "lower",
"property-no-vendor-prefix": true,
"rule-empty-line-before": [
"always",
{
"except": [
"first-nested"
],
"ignore": [
"after-comment"
]
}
],
"selector-attribute-brackets-space-inside": "never",
"selector-attribute-operator-space-after": "never",
"selector-attribute-operator-space-before": "never",
"selector-attribute-quotes": "never",
"selector-class-pattern": "^[A-Za-z0-9]+$",
"selector-combinator-space-after": "always",
"selector-combinator-space-before": "always",
"selector-descendant-combinator-no-non-space": true,
"selector-list-comma-newline-after": "always",
"selector-list-comma-newline-before": "never-multi-line",
"selector-list-comma-space-before": "never",
"selector-max-attribute": 0,
"selector-max-class": 3,
"selector-max-compound-selectors": 3,
"selector-max-empty-lines": 0,
"selector-max-id": 0,
"selector-max-universal": 0,
"selector-pseudo-class-case": "lower",
"selector-pseudo-class-parentheses-space-inside": "never",
"selector-pseudo-element-case": "lower",
"selector-pseudo-element-colon-notation": "double",
"selector-pseudo-element-no-unknown": true,
"selector-type-case": "lower",
"selector-type-no-unknown": true,
"shorthand-property-no-redundant-values": true,
"string-no-newline": true,
"string-quotes": "single",
"time-min-milliseconds": 100,
"unit-case": "lower",
"unit-no-unknown": true,
"value-list-comma-newline-after": "never-multi-line",
"value-list-comma-newline-before": "never-multi-line",
"value-list-comma-space-after": "always",
"value-list-comma-space-before": "never",
"value-list-max-empty-lines": 0,
"value-no-vendor-prefix": true
}
}

7
frontend/.tern-project Normal file
View File

@@ -0,0 +1,7 @@
{
"ecmaVersion": 6,
"libs": [
"browser",
"jquery"
]
}

35
frontend/babel.config.js Normal file
View File

@@ -0,0 +1,35 @@
const loose = true;
module.exports = {
plugins: [
// Stage 1
'@babel/plugin-proposal-export-default-from',
['@babel/plugin-proposal-optional-chaining', { loose }],
['@babel/plugin-proposal-nullish-coalescing-operator', { loose }],
// Stage 2
'@babel/plugin-proposal-export-namespace-from',
// Stage 3
['@babel/plugin-proposal-class-properties', { loose }],
'@babel/plugin-syntax-dynamic-import'
],
env: {
development: {
presets: [
['@babel/preset-react', { development: true }]
],
plugins: [
'babel-plugin-inline-classnames'
]
},
production: {
presets: [
'@babel/preset-react'
],
plugins: [
'babel-plugin-transform-react-remove-prop-types'
]
}
}
};

18
frontend/gulp/build.js Normal file
View File

@@ -0,0 +1,18 @@
const gulp = require('gulp');
require('./clean');
require('./copy');
require('./webpack');
gulp.task('build',
gulp.series('clean',
gulp.parallel(
'webpack',
'copyHtml',
'copyFonts',
'copyImages',
'copyRobots'
)
)
);

8
frontend/gulp/clean.js Normal file
View File

@@ -0,0 +1,8 @@
const gulp = require('gulp');
const del = require('del');
const paths = require('./helpers/paths');
gulp.task('clean', () => {
return del([paths.dest.root]);
});

42
frontend/gulp/copy.js Normal file
View File

@@ -0,0 +1,42 @@
const path = require('path');
const gulp = require('gulp');
const print = require('gulp-print').default;
const cache = require('gulp-cached');
const livereload = require('gulp-livereload');
const paths = require('./helpers/paths.js');
gulp.task('copyHtml', () => {
return gulp.src(paths.src.html, { base: paths.src.root })
.pipe(cache('copyHtml'))
.pipe(print())
.pipe(gulp.dest(paths.dest.root))
.pipe(livereload());
});
gulp.task('copyFonts', () => {
return gulp.src(
path.join(paths.src.fonts, '**', '*.*'), { base: paths.src.root }
)
.pipe(cache('copyFonts'))
.pipe(print())
.pipe(gulp.dest(paths.dest.root))
.pipe(livereload());
});
gulp.task('copyImages', () => {
return gulp.src(
path.join(paths.src.images, '**', '*.*'), { base: paths.src.root }
)
.pipe(cache('copyImages'))
.pipe(print())
.pipe(gulp.dest(paths.dest.root))
.pipe(livereload());
});
gulp.task('copyRobots', () => {
return gulp.src(paths.src.robots, { base: paths.src.root })
.pipe(cache('copyRobots'))
.pipe(print())
.pipe(gulp.dest(paths.dest.root))
.pipe(livereload());
});

View File

@@ -0,0 +1,5 @@
require('./build.js');
require('./clean.js');
require('./copy.js');
require('./watch.js');
require('./webpack.js');

View File

@@ -0,0 +1,6 @@
const colors = require('ansi-colors');
module.exports = function errorHandler(error) {
console.log(colors.red(`Error (${error.plugin}): ${error.message}`));
this.emit('end');
};

View File

@@ -0,0 +1,24 @@
const root = './frontend/src';
const paths = {
src: {
root,
html: `${root}/*.html`,
scripts: `${root}/**/*.js`,
content: `${root}/Content/`,
fonts: `${root}/Content/Fonts/`,
images: `${root}/Content/Images/`,
robots: `${root}/Content/robots.txt`,
exclude: {
libs: `!${root}/JsLibraries/**`
}
},
dest: {
root: './_output/UI/',
content: './_output/UI/Content/',
fonts: './_output/UI/Content/Fonts/',
images: './_output/UI/Content/Images/'
}
};
module.exports = paths;

19
frontend/gulp/watch.js Normal file
View File

@@ -0,0 +1,19 @@
const gulp = require('gulp');
const livereload = require('gulp-livereload');
const gulpWatch = require('gulp-watch');
const paths = require('./helpers/paths.js');
require('./copy.js');
require('./webpack.js');
function watch() {
livereload.listen({ start: true });
gulp.task('webpackWatch')();
gulpWatch(paths.src.html, gulp.series('copyHtml'));
gulpWatch(`${paths.src.fonts}**/*.*`, gulp.series('copyFonts'));
gulpWatch(`${paths.src.images}**/*.*`, gulp.series('copyImages'));
gulpWatch(paths.src.robots, gulp.series('copyRobots'));
}
gulp.task('watch', gulp.series('build', watch));

271
frontend/gulp/webpack.js Normal file
View File

@@ -0,0 +1,271 @@
const gulp = require('gulp');
const webpackStream = require('webpack-stream');
const livereload = require('gulp-livereload');
const path = require('path');
const webpack = require('webpack');
const errorHandler = require('./helpers/errorHandler');
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const HtmlWebpackPluginHtmlTags = require('html-webpack-plugin/lib/html-tags');
const TerserPlugin = require('terser-webpack-plugin');
const uiFolder = 'UI';
const frontendFolder = path.join(__dirname, '..');
const srcFolder = path.join(frontendFolder, 'src');
const isProduction = process.argv.indexOf('--production') > -1;
const isProfiling = isProduction && process.argv.indexOf('--profile') > -1;
const inlineWebWorkers = 'no-fallback';
const distFolder = path.resolve(frontendFolder, '..', '_output', uiFolder);
console.log('Source Folder:', srcFolder);
console.log('Output Folder:', distFolder);
console.log('isProduction:', isProduction);
console.log('isProfiling:', isProfiling);
const cssVarsFiles = [
'../src/Styles/Variables/colors',
'../src/Styles/Variables/dimensions',
'../src/Styles/Variables/fonts',
'../src/Styles/Variables/animations',
'../src/Styles/Variables/zIndexes'
].map(require.resolve);
// Override the way HtmlWebpackPlugin injects the scripts
// TODO: Find a better way to get these paths without
HtmlWebpackPlugin.prototype.injectAssetsIntoHtml = function(html, assets, assetTags) {
const head = assetTags.headTags.map((v) => {
const href = v.attributes.href
.replace('\\', '/')
.replace('%5C', '/');
v.attributes = { rel: 'stylesheet', type: 'text/css', href: `/${href}` };
return HtmlWebpackPluginHtmlTags.htmlTagObjectToString(v, this.options.xhtml);
});
const body = assetTags.bodyTags.map((v) => {
v.attributes = { src: `/${v.attributes.src}` };
return HtmlWebpackPluginHtmlTags.htmlTagObjectToString(v, this.options.xhtml);
});
return html
.replace('<!-- webpack bundles head -->', head.join('\r\n '))
.replace('<!-- webpack bundles body -->', body.join('\r\n '));
};
const plugins = [
new OptimizeCssAssetsPlugin({}),
new webpack.DefinePlugin({
__DEV__: !isProduction,
'process.env.NODE_ENV': isProduction ? JSON.stringify('production') : JSON.stringify('development')
}),
new MiniCssExtractPlugin({
filename: path.join('Content', 'styles.css')
}),
new HtmlWebpackPlugin({
template: 'frontend/src/index.html',
filename: 'index.html'
})
];
const config = {
mode: isProduction ? 'production' : 'development',
devtool: '#source-map',
stats: {
children: false
},
watchOptions: {
ignored: /node_modules/
},
entry: {
index: 'index.js'
},
resolve: {
modules: [
srcFolder,
path.join(srcFolder, 'Shims'),
'node_modules'
],
alias: {
jquery: 'jquery/src/jquery'
}
},
output: {
path: distFolder,
filename: '[name].js',
sourceMapFilename: '[file].map'
},
optimization: {
chunkIds: 'named',
splitChunks: {
chunks: 'initial'
}
},
performance: {
hints: false
},
plugins,
resolveLoader: {
modules: [
'node_modules',
'frontend/gulp/webpack/'
]
},
module: {
rules: [
{
test: /\.worker\.js$/,
use: {
loader: 'worker-loader',
options: {
filename: '[name].js',
inline: inlineWebWorkers
}
}
},
{
test: /\.js?$/,
exclude: /(node_modules|JsLibraries)/,
use: [
{
loader: 'babel-loader',
options: {
configFile: `${frontendFolder}/babel.config.js`,
envName: isProduction ? 'production' : 'development',
presets: [
[
'@babel/preset-env',
{
modules: false,
loose: true,
debug: false,
useBuiltIns: 'entry',
corejs: 3
}
]
]
}
}
]
},
// CSS Modules
{
test: /\.css$/,
exclude: /(node_modules|globals.css)/,
use: [
{ loader: MiniCssExtractPlugin.loader },
{
loader: 'css-loader',
options: {
importLoaders: 1,
modules: {
localIdentName: '[name]/[local]/[hash:base64:5]'
}
}
},
{
loader: 'postcss-loader',
options: {
ident: 'postcss',
config: {
ctx: {
cssVarsFiles
},
path: 'frontend/postcss.config.js'
}
}
}
]
},
// Global styles
{
test: /\.css$/,
include: /(node_modules|globals.css)/,
use: [
'style-loader',
{
loader: 'css-loader'
}
]
},
// Fonts
{
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
use: [
{
loader: 'url-loader',
options: {
limit: 10240,
mimetype: 'application/font-woff',
emitFile: false,
name: 'Content/Fonts/[name].[ext]'
}
}
]
},
{
test: /\.(ttf|eot|eot?#iefix|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
use: [
{
loader: 'file-loader',
options: {
emitFile: false,
name: 'Content/Fonts/[name].[ext]'
}
}
]
}
]
}
};
if (isProfiling) {
config.resolve.alias['react-dom$'] = 'react-dom/profiling';
config.resolve.alias['scheduler/tracing'] = 'scheduler/tracing-profiling';
config.optimization.minimizer = [
new TerserPlugin({
cache: true,
parallel: true,
sourceMap: true, // Must be set to true if using source-maps in production
terserOptions: {
mangle: false,
keep_classnames: true,
keep_fnames: true
}
})
];
}
gulp.task('webpack', () => {
return webpackStream(config)
.pipe(gulp.dest('_output/UI'));
});
gulp.task('webpackWatch', () => {
config.watch = true;
return webpackStream(config, webpack)
.on('error', errorHandler)
.pipe(gulp.dest('_output/UI'))
.on('error', errorHandler)
.pipe(livereload())
.on('error', errorHandler);
});

View File

@@ -0,0 +1,11 @@
const loaderUtils = require('loader-utils');
module.exports = function cssVariablesLoader(source) {
const options = loaderUtils.getOptions(this);
options.cssVarsFiles.forEach((cssVarsFile) => {
this.addDependency(cssVarsFile);
});
return source;
};

20
frontend/jsconfig.json Normal file
View File

@@ -0,0 +1,20 @@
{
"compilerOptions": {
"target": "es6",
"checkJs": false,
"baseUrl": "src",
"jsx": "react",
"module": "commonjs",
"moduleResolution": "node",
"paths": {
"*": [
"*"
]
}
},
"include": [
"./src/**/*"
],
"exclude": [
]
}

View File

@@ -0,0 +1,23 @@
const reload = require('require-nocache')(module);
module.exports = (ctx, configPath, options) => {
const config = {
plugins: {
'postcss-mixins': {
mixinsDir: [
'frontend/src/Styles/Mixins'
]
},
'postcss-simple-vars': {
variables: () =>
ctx.options.cssVarsFiles.reduce((acc, vars) => {
return Object.assign(acc, reload(vars));
}, {})
},
'postcss-color-function': {},
'postcss-nested': {}
}
};
return config;
};

4
frontend/src/.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,4 @@
// Place your settings in this file to overwrite default and user settings.
{
"files.insertFinalNewline": true
}

View File

@@ -0,0 +1,235 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import ConfirmModal from 'Components/Modal/ConfirmModal';
import PageContent from 'Components/Page/PageContent';
import PageContentBody from 'Components/Page/PageContentBody';
import PageToolbar from 'Components/Page/Toolbar/PageToolbar';
import PageToolbarButton from 'Components/Page/Toolbar/PageToolbarButton';
import PageToolbarSection from 'Components/Page/Toolbar/PageToolbarSection';
import Table from 'Components/Table/Table';
import TableBody from 'Components/Table/TableBody';
import TableOptionsModalWrapper from 'Components/Table/TableOptions/TableOptionsModalWrapper';
import TablePager from 'Components/Table/TablePager';
import { align, icons, kinds } from 'Helpers/Props';
import getRemovedItems from 'Utilities/Object/getRemovedItems';
import hasDifferentItems from 'Utilities/Object/hasDifferentItems';
import translate from 'Utilities/String/translate';
import getSelectedIds from 'Utilities/Table/getSelectedIds';
import removeOldSelectedState from 'Utilities/Table/removeOldSelectedState';
import selectAll from 'Utilities/Table/selectAll';
import toggleSelected from 'Utilities/Table/toggleSelected';
import BlacklistRowConnector from './BlacklistRowConnector';
class Blacklist extends Component {
//
// Lifecycle
constructor(props, context) {
super(props, context);
this.state = {
allSelected: false,
allUnselected: false,
lastToggled: null,
selectedState: {},
isConfirmRemoveModalOpen: false,
items: props.items
};
}
componentDidUpdate(prevProps) {
const {
items
} = this.props;
if (hasDifferentItems(prevProps.items, items)) {
this.setState((state) => {
return {
...removeOldSelectedState(state, getRemovedItems(prevProps.items, items)),
items
};
});
return;
}
}
//
// Control
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
render() {
const {
isFetching,
isPopulated,
error,
items,
columns,
totalRecords,
isRemoving,
isClearingBlacklistExecuting,
onClearBlacklistPress,
...otherProps
} = this.props;
const {
allSelected,
allUnselected,
selectedState,
isConfirmRemoveModalOpen
} = this.state;
const selectedIds = this.getSelectedIds();
return (
<PageContent title={translate('Blacklist')}>
<PageToolbar>
<PageToolbarSection>
<PageToolbarButton
label="Remove Selected"
iconName={icons.REMOVE}
isDisabled={!selectedIds.length}
isSpinning={isRemoving}
onPress={this.onRemoveSelectedPress}
/>
<PageToolbarButton
label={translate('Clear')}
iconName={icons.CLEAR}
isSpinning={isClearingBlacklistExecuting}
onPress={onClearBlacklistPress}
/>
</PageToolbarSection>
<PageToolbarSection alignContent={align.RIGHT}>
<TableOptionsModalWrapper
{...otherProps}
columns={columns}
>
<PageToolbarButton
label={translate('Options')}
iconName={icons.TABLE}
/>
</TableOptionsModalWrapper>
</PageToolbarSection>
</PageToolbar>
<PageContentBody>
{
isFetching && !isPopulated &&
<LoadingIndicator />
}
{
!isFetching && !!error &&
<div>
{translate('UnableToLoadBlacklist')}
</div>
}
{
isPopulated && !error && !items.length &&
<div>
{translate('NoHistory')}
</div>
}
{
isPopulated && !error && !!items.length &&
<div>
<Table
selectAll={true}
allSelected={allSelected}
allUnselected={allUnselected}
columns={columns}
{...otherProps}
onSelectAllChange={this.onSelectAllChange}
>
<TableBody>
{
items.map((item) => {
return (
<BlacklistRowConnector
key={item.id}
isSelected={selectedState[item.id] || false}
columns={columns}
{...item}
onSelectedChange={this.onSelectedChange}
/>
);
})
}
</TableBody>
</Table>
<TablePager
totalRecords={totalRecords}
isFetching={isFetching}
{...otherProps}
/>
</div>
}
</PageContentBody>
<ConfirmModal
isOpen={isConfirmRemoveModalOpen}
kind={kinds.DANGER}
title={translate('RemoveSelected')}
message={translate('AreYouSureYouWantToRemoveTheSelectedItemsFromBlacklist')}
confirmLabel={translate('RemoveSelected')}
onConfirm={this.onRemoveSelectedConfirmed}
onCancel={this.onConfirmRemoveModalClose}
/>
</PageContent>
);
}
}
Blacklist.propTypes = {
isFetching: PropTypes.bool.isRequired,
isPopulated: PropTypes.bool.isRequired,
error: PropTypes.object,
items: PropTypes.arrayOf(PropTypes.object).isRequired,
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
totalRecords: PropTypes.number,
isRemoving: PropTypes.bool.isRequired,
isClearingBlacklistExecuting: PropTypes.bool.isRequired,
onRemoveSelected: PropTypes.func.isRequired,
onClearBlacklistPress: PropTypes.func.isRequired
};
export default Blacklist;

View File

@@ -0,0 +1,160 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import * as commandNames from 'Commands/commandNames';
import withCurrentPage from 'Components/withCurrentPage';
import * as blacklistActions from 'Store/Actions/blacklistActions';
import { executeCommand } from 'Store/Actions/commandActions';
import createCommandExecutingSelector from 'Store/Selectors/createCommandExecutingSelector';
import { registerPagePopulator, unregisterPagePopulator } from 'Utilities/pagePopulator';
import Blacklist from './Blacklist';
function createMapStateToProps() {
return createSelector(
(state) => state.blacklist,
createCommandExecutingSelector(commandNames.CLEAR_BLACKLIST),
(blacklist, isClearingBlacklistExecuting) => {
return {
isClearingBlacklistExecuting,
...blacklist
};
}
);
}
const mapDispatchToProps = {
...blacklistActions,
executeCommand
};
class BlacklistConnector extends Component {
//
// Lifecycle
componentDidMount() {
const {
useCurrentPage,
fetchBlacklist,
gotoBlacklistFirstPage
} = this.props;
registerPagePopulator(this.repopulate);
if (useCurrentPage) {
fetchBlacklist();
} else {
gotoBlacklistFirstPage();
}
}
componentDidUpdate(prevProps) {
if (prevProps.isClearingBlacklistExecuting && !this.props.isClearingBlacklistExecuting) {
this.props.gotoBlacklistFirstPage();
}
}
componentWillUnmount() {
this.props.clearBlacklist();
unregisterPagePopulator(this.repopulate);
}
//
// Control
repopulate = () => {
this.props.fetchBlacklist();
}
//
// Listeners
onFirstPagePress = () => {
this.props.gotoBlacklistFirstPage();
}
onPreviousPagePress = () => {
this.props.gotoBlacklistPreviousPage();
}
onNextPagePress = () => {
this.props.gotoBlacklistNextPage();
}
onLastPagePress = () => {
this.props.gotoBlacklistLastPage();
}
onPageSelect = (page) => {
this.props.gotoBlacklistPage({ page });
}
onRemoveSelected = (ids) => {
this.props.removeBlacklistItems({ ids });
}
onSortPress = (sortKey) => {
this.props.setBlacklistSort({ sortKey });
}
onTableOptionChange = (payload) => {
this.props.setBlacklistTableOption(payload);
if (payload.pageSize) {
this.props.gotoBlacklistFirstPage();
}
}
onClearBlacklistPress = () => {
this.props.executeCommand({ name: commandNames.CLEAR_BLACKLIST });
}
onTableOptionChange = (payload) => {
this.props.setBlacklistTableOption(payload);
if (payload.pageSize) {
this.props.gotoBlacklistFirstPage();
}
}
//
// Render
render() {
return (
<Blacklist
onFirstPagePress={this.onFirstPagePress}
onPreviousPagePress={this.onPreviousPagePress}
onNextPagePress={this.onNextPagePress}
onLastPagePress={this.onLastPagePress}
onPageSelect={this.onPageSelect}
onRemoveSelected={this.onRemoveSelected}
onSortPress={this.onSortPress}
onTableOptionChange={this.onTableOptionChange}
onClearBlacklistPress={this.onClearBlacklistPress}
{...this.props}
/>
);
}
}
BlacklistConnector.propTypes = {
useCurrentPage: PropTypes.bool.isRequired,
isClearingBlacklistExecuting: PropTypes.bool.isRequired,
items: PropTypes.arrayOf(PropTypes.object).isRequired,
fetchBlacklist: PropTypes.func.isRequired,
gotoBlacklistFirstPage: PropTypes.func.isRequired,
gotoBlacklistPreviousPage: PropTypes.func.isRequired,
gotoBlacklistNextPage: PropTypes.func.isRequired,
gotoBlacklistLastPage: PropTypes.func.isRequired,
gotoBlacklistPage: PropTypes.func.isRequired,
removeBlacklistItems: PropTypes.func.isRequired,
setBlacklistSort: PropTypes.func.isRequired,
setBlacklistTableOption: PropTypes.func.isRequired,
clearBlacklist: PropTypes.func.isRequired,
executeCommand: PropTypes.func.isRequired
};
export default withCurrentPage(
connect(createMapStateToProps, mapDispatchToProps)(BlacklistConnector)
);

View File

@@ -0,0 +1,90 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import DescriptionList from 'Components/DescriptionList/DescriptionList';
import DescriptionListItem from 'Components/DescriptionList/DescriptionListItem';
import Button from 'Components/Link/Button';
import Modal from 'Components/Modal/Modal';
import ModalBody from 'Components/Modal/ModalBody';
import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import translate from 'Utilities/String/translate';
class BlacklistDetailsModal extends Component {
//
// Render
render() {
const {
isOpen,
sourceTitle,
protocol,
indexer,
message,
onModalClose
} = this.props;
return (
<Modal
isOpen={isOpen}
onModalClose={onModalClose}
>
<ModalContent
onModalClose={onModalClose}
>
<ModalHeader>
Details
</ModalHeader>
<ModalBody>
<DescriptionList>
<DescriptionListItem
title={translate('Name')}
data={sourceTitle}
/>
<DescriptionListItem
title={translate('Protocol')}
data={protocol}
/>
{
!!message &&
<DescriptionListItem
title={translate('Indexer')}
data={indexer}
/>
}
{
!!message &&
<DescriptionListItem
title={translate('Message')}
data={message}
/>
}
</DescriptionList>
</ModalBody>
<ModalFooter>
<Button onPress={onModalClose}>
{translate('Close')}
</Button>
</ModalFooter>
</ModalContent>
</Modal>
);
}
}
BlacklistDetailsModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
sourceTitle: PropTypes.string.isRequired,
protocol: PropTypes.string.isRequired,
indexer: PropTypes.string,
message: PropTypes.string,
onModalClose: PropTypes.func.isRequired
};
export default BlacklistDetailsModal;

View File

@@ -0,0 +1,18 @@
.language,
.quality {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
width: 100px;
}
.indexer {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
width: 80px;
}
.actions {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
width: 70px;
}

View File

@@ -0,0 +1,213 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import IconButton from 'Components/Link/IconButton';
import RelativeDateCellConnector from 'Components/Table/Cells/RelativeDateCellConnector';
import TableRowCell from 'Components/Table/Cells/TableRowCell';
import TableSelectCell from 'Components/Table/Cells/TableSelectCell';
import TableRow from 'Components/Table/TableRow';
import { icons, kinds } from 'Helpers/Props';
import MovieFormats from 'Movie/MovieFormats';
import MovieLanguage from 'Movie/MovieLanguage';
import MovieQuality from 'Movie/MovieQuality';
import MovieTitleLink from 'Movie/MovieTitleLink';
import translate from 'Utilities/String/translate';
import BlacklistDetailsModal from './BlacklistDetailsModal';
import styles from './BlacklistRow.css';
class BlacklistRow extends Component {
//
// Lifecycle
constructor(props, context) {
super(props, context);
this.state = {
isDetailsModalOpen: false
};
}
//
// Listeners
onDetailsPress = () => {
this.setState({ isDetailsModalOpen: true });
}
onDetailsModalClose = () => {
this.setState({ isDetailsModalOpen: false });
}
//
// Render
render() {
const {
id,
movie,
sourceTitle,
quality,
customFormats,
languages,
date,
protocol,
indexer,
message,
isSelected,
columns,
onSelectedChange,
onRemovePress
} = this.props;
if (!movie) {
return null;
}
return (
<TableRow>
<TableSelectCell
id={id}
isSelected={isSelected}
onSelectedChange={onSelectedChange}
/>
{
columns.map((column) => {
const {
name,
isVisible
} = column;
if (!isVisible) {
return null;
}
if (name === 'movies.sortTitle') {
return (
<TableRowCell key={name}>
<MovieTitleLink
titleSlug={movie.titleSlug}
title={movie.title}
/>
</TableRowCell>
);
}
if (name === 'sourceTitle') {
return (
<TableRowCell key={name}>
{sourceTitle}
</TableRowCell>
);
}
if (name === 'languages') {
return (
<TableRowCell key={name}>
<MovieLanguage
languages={languages}
/>
</TableRowCell>
);
}
if (name === 'quality') {
return (
<TableRowCell
key={name}
className={styles.quality}
>
<MovieQuality
quality={quality}
/>
</TableRowCell>
);
}
if (name === 'customFormats') {
return (
<TableRowCell key={name}>
<MovieFormats
formats={customFormats}
/>
</TableRowCell>
);
}
if (name === 'date') {
return (
<RelativeDateCellConnector
key={name}
date={date}
/>
);
}
if (name === 'indexer') {
return (
<TableRowCell
key={name}
className={styles.indexer}
>
{indexer}
</TableRowCell>
);
}
if (name === 'actions') {
return (
<TableRowCell
key={name}
className={styles.actions}
>
<IconButton
name={icons.INFO}
onPress={this.onDetailsPress}
/>
<IconButton
title={translate('RemoveFromBlacklist')}
name={icons.REMOVE}
kind={kinds.DANGER}
onPress={onRemovePress}
/>
</TableRowCell>
);
}
return null;
})
}
<BlacklistDetailsModal
isOpen={this.state.isDetailsModalOpen}
sourceTitle={sourceTitle}
protocol={protocol}
indexer={indexer}
message={message}
onModalClose={this.onDetailsModalClose}
/>
</TableRow>
);
}
}
BlacklistRow.propTypes = {
id: PropTypes.number.isRequired,
movie: PropTypes.object.isRequired,
sourceTitle: PropTypes.string.isRequired,
quality: PropTypes.object.isRequired,
customFormats: PropTypes.arrayOf(PropTypes.object).isRequired,
languages: PropTypes.arrayOf(PropTypes.object).isRequired,
date: PropTypes.string.isRequired,
protocol: PropTypes.string.isRequired,
indexer: PropTypes.string,
message: PropTypes.string,
isSelected: PropTypes.bool.isRequired,
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
onSelectedChange: PropTypes.func.isRequired,
onRemovePress: PropTypes.func.isRequired
};
export default BlacklistRow;

View File

@@ -0,0 +1,26 @@
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { removeBlacklistItem } from 'Store/Actions/blacklistActions';
import createMovieSelector from 'Store/Selectors/createMovieSelector';
import BlacklistRow from './BlacklistRow';
function createMapStateToProps() {
return createSelector(
createMovieSelector(),
(movie) => {
return {
movie
};
}
);
}
function createMapDispatchToProps(dispatch, props) {
return {
onRemovePress() {
dispatch(removeBlacklistItem({ id: props.id }));
}
};
}
export default connect(createMapStateToProps, createMapDispatchToProps)(BlacklistRow);

View File

@@ -0,0 +1,5 @@
.description {
composes: description from '~Components/DescriptionList/DescriptionListItemDescription.css';
overflow-wrap: break-word;
}

View File

@@ -0,0 +1,279 @@
import PropTypes from 'prop-types';
import React from 'react';
import DescriptionList from 'Components/DescriptionList/DescriptionList';
import DescriptionListItem from 'Components/DescriptionList/DescriptionListItem';
import DescriptionListItemDescription from 'Components/DescriptionList/DescriptionListItemDescription';
import DescriptionListItemTitle from 'Components/DescriptionList/DescriptionListItemTitle';
import Link from 'Components/Link/Link';
import formatDateTime from 'Utilities/Date/formatDateTime';
import formatAge from 'Utilities/Number/formatAge';
import translate from 'Utilities/String/translate';
import styles from './HistoryDetails.css';
function HistoryDetails(props) {
const {
eventType,
sourceTitle,
data,
shortDateFormat,
timeFormat
} = props;
if (eventType === 'grabbed') {
const {
indexer,
releaseGroup,
nzbInfoUrl,
downloadClient,
downloadId,
age,
ageHours,
ageMinutes,
publishedDate
} = data;
return (
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title={translate('Name')}
data={sourceTitle}
/>
{
!!indexer &&
<DescriptionListItem
title={translate('Indexer')}
data={indexer}
/>
}
{
!!releaseGroup &&
<DescriptionListItem
descriptionClassName={styles.description}
title={translate('ReleaseGroup')}
data={releaseGroup}
/>
}
{
!!nzbInfoUrl &&
<span>
<DescriptionListItemTitle>
Info URL
</DescriptionListItemTitle>
<DescriptionListItemDescription>
<Link to={nzbInfoUrl}>{nzbInfoUrl}</Link>
</DescriptionListItemDescription>
</span>
}
{
!!downloadClient &&
<DescriptionListItem
title={translate('DownloadClient')}
data={downloadClient}
/>
}
{
!!downloadId &&
<DescriptionListItem
title={translate('GrabID')}
data={downloadId}
/>
}
{
!!indexer &&
<DescriptionListItem
title={translate('AgeWhenGrabbed')}
data={formatAge(age, ageHours, ageMinutes)}
/>
}
{
!!publishedDate &&
<DescriptionListItem
title={translate('PublishedDate')}
data={formatDateTime(publishedDate, shortDateFormat, timeFormat, { includeSeconds: true })}
/>
}
</DescriptionList>
);
}
if (eventType === 'downloadFailed') {
const {
message
} = data;
return (
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title={translate('Name')}
data={sourceTitle}
/>
{
!!message &&
<DescriptionListItem
title={translate('Message')}
data={message}
/>
}
</DescriptionList>
);
}
if (eventType === 'downloadFolderImported') {
const {
droppedPath,
importedPath
} = data;
return (
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title={translate('Name')}
data={sourceTitle}
/>
{
!!droppedPath &&
<DescriptionListItem
descriptionClassName={styles.description}
title={translate('Source')}
data={droppedPath}
/>
}
{
!!importedPath &&
<DescriptionListItem
descriptionClassName={styles.description}
title={translate('ImportedTo')}
data={importedPath}
/>
}
</DescriptionList>
);
}
if (eventType === 'movieFileDeleted') {
const {
reason
} = data;
let reasonMessage = '';
switch (reason) {
case 'Manual':
reasonMessage = translate('FileWasDeletedByViaUI');
break;
case 'MissingFromDisk':
reasonMessage = translate('MissingFromDisk');
break;
case 'Upgrade':
reasonMessage = translate('FileWasDeletedByUpgrade');
break;
default:
reasonMessage = '';
}
return (
<DescriptionList>
<DescriptionListItem
title={translate('Name')}
data={sourceTitle}
/>
<DescriptionListItem
title={translate('Reason')}
data={reasonMessage}
/>
</DescriptionList>
);
}
if (eventType === 'movieFileRenamed') {
const {
sourcePath,
sourceRelativePath,
path,
relativePath
} = data;
return (
<DescriptionList>
<DescriptionListItem
title={translate('SourcePath')}
data={sourcePath}
/>
<DescriptionListItem
title={translate('SourceRelativePath')}
data={sourceRelativePath}
/>
<DescriptionListItem
title={translate('DestinationPath')}
data={path}
/>
<DescriptionListItem
title={translate('DestinationRelativePath')}
data={relativePath}
/>
</DescriptionList>
);
}
if (eventType === 'downloadIgnored') {
const {
message
} = data;
return (
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title={translate('Name')}
data={sourceTitle}
/>
{
!!message &&
<DescriptionListItem
title={translate('Message')}
data={message}
/>
}
</DescriptionList>
);
}
return (
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title={translate('Name')}
data={sourceTitle}
/>
</DescriptionList>
);
}
HistoryDetails.propTypes = {
eventType: PropTypes.string.isRequired,
sourceTitle: PropTypes.string.isRequired,
data: PropTypes.object.isRequired,
shortDateFormat: PropTypes.string.isRequired,
timeFormat: PropTypes.string.isRequired
};
export default HistoryDetails;

View File

@@ -0,0 +1,18 @@
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector';
import HistoryDetails from './HistoryDetails';
function createMapStateToProps() {
return createSelector(
createUISettingsSelector(),
(uiSettings) => {
return {
shortDateFormat: uiSettings.shortDateFormat,
timeFormat: uiSettings.timeFormat
};
}
);
}
export default connect(createMapStateToProps)(HistoryDetails);

View File

@@ -0,0 +1,5 @@
.markAsFailedButton {
composes: button from '~Components/Link/Button.css';
margin-right: auto;
}

View File

@@ -0,0 +1,107 @@
import PropTypes from 'prop-types';
import React from 'react';
import Button from 'Components/Link/Button';
import SpinnerButton from 'Components/Link/SpinnerButton';
import Modal from 'Components/Modal/Modal';
import ModalBody from 'Components/Modal/ModalBody';
import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { kinds } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import HistoryDetails from './HistoryDetails';
import styles from './HistoryDetailsModal.css';
function getHeaderTitle(eventType) {
switch (eventType) {
case 'grabbed':
return 'Grabbed';
case 'downloadFailed':
return 'Download Failed';
case 'downloadFolderImported':
return 'Movie Imported';
case 'movieFileDeleted':
return 'Movie File Deleted';
case 'movieFileRenamed':
return 'Movie File Renamed';
case 'downloadIgnored':
return 'Download Ignored';
default:
return 'Unknown';
}
}
function HistoryDetailsModal(props) {
const {
isOpen,
eventType,
sourceTitle,
data,
isMarkingAsFailed,
shortDateFormat,
timeFormat,
onMarkAsFailedPress,
onModalClose
} = props;
return (
<Modal
isOpen={isOpen}
onModalClose={onModalClose}
>
<ModalContent onModalClose={onModalClose}>
<ModalHeader>
{getHeaderTitle(eventType)}
</ModalHeader>
<ModalBody>
<HistoryDetails
eventType={eventType}
sourceTitle={sourceTitle}
data={data}
shortDateFormat={shortDateFormat}
timeFormat={timeFormat}
/>
</ModalBody>
<ModalFooter>
{
eventType === 'grabbed' &&
<SpinnerButton
className={styles.markAsFailedButton}
kind={kinds.DANGER}
isSpinning={isMarkingAsFailed}
onPress={onMarkAsFailedPress}
>
Mark as Failed
</SpinnerButton>
}
<Button
onPress={onModalClose}
>
{translate('Close')}
</Button>
</ModalFooter>
</ModalContent>
</Modal>
);
}
HistoryDetailsModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
eventType: PropTypes.string.isRequired,
sourceTitle: PropTypes.string.isRequired,
data: PropTypes.object.isRequired,
isMarkingAsFailed: PropTypes.bool.isRequired,
shortDateFormat: PropTypes.string.isRequired,
timeFormat: PropTypes.string.isRequired,
onMarkAsFailedPress: PropTypes.func.isRequired,
onModalClose: PropTypes.func.isRequired
};
HistoryDetailsModal.defaultProps = {
isMarkingAsFailed: false
};
export default HistoryDetailsModal;

View File

@@ -0,0 +1,153 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import FilterMenu from 'Components/Menu/FilterMenu';
import PageContent from 'Components/Page/PageContent';
import PageContentBody from 'Components/Page/PageContentBody';
import PageToolbar from 'Components/Page/Toolbar/PageToolbar';
import PageToolbarButton from 'Components/Page/Toolbar/PageToolbarButton';
import PageToolbarSection from 'Components/Page/Toolbar/PageToolbarSection';
import Table from 'Components/Table/Table';
import TableBody from 'Components/Table/TableBody';
import TableOptionsModalWrapper from 'Components/Table/TableOptions/TableOptionsModalWrapper';
import TablePager from 'Components/Table/TablePager';
import { align, icons } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import HistoryRowConnector from './HistoryRowConnector';
class History extends Component {
//
// Render
render() {
const {
isFetching,
isPopulated,
error,
isMoviesFetching,
isMoviesPopulated,
moviesError,
items,
columns,
selectedFilterKey,
filters,
totalRecords,
onFilterSelect,
onFirstPagePress,
...otherProps
} = this.props;
const isFetchingAny = isFetching || isMoviesFetching;
const isAllPopulated = isPopulated && (isMoviesPopulated || !items.length);
const hasError = error || moviesError;
return (
<PageContent title={translate('History')}>
<PageToolbar>
<PageToolbarSection>
<PageToolbarButton
label={translate('Refresh')}
iconName={icons.REFRESH}
isSpinning={isFetching}
onPress={onFirstPagePress}
/>
</PageToolbarSection>
<PageToolbarSection alignContent={align.RIGHT}>
<TableOptionsModalWrapper
{...otherProps}
columns={columns}
>
<PageToolbarButton
label={translate('Options')}
iconName={icons.TABLE}
/>
</TableOptionsModalWrapper>
<FilterMenu
alignMenu={align.RIGHT}
selectedFilterKey={selectedFilterKey}
filters={filters}
customFilters={[]}
onFilterSelect={onFilterSelect}
/>
</PageToolbarSection>
</PageToolbar>
<PageContentBody>
{
isFetchingAny && !isAllPopulated &&
<LoadingIndicator />
}
{
!isFetchingAny && hasError &&
<div>
{translate('UnableToLoadHistory')}
</div>
}
{
// If history isPopulated and it's empty show no history found and don't
// wait for the episodes to populate because they are never coming.
isPopulated && !hasError && !items.length &&
<div>
{translate('NoHistory')}
</div>
}
{
isAllPopulated && !hasError && !!items.length &&
<div>
<Table
columns={columns}
{...otherProps}
>
<TableBody>
{
items.map((item) => {
return (
<HistoryRowConnector
key={item.id}
columns={columns}
{...item}
/>
);
})
}
</TableBody>
</Table>
<TablePager
totalRecords={totalRecords}
isFetching={isFetching}
onFirstPagePress={onFirstPagePress}
{...otherProps}
/>
</div>
}
</PageContentBody>
</PageContent>
);
}
}
History.propTypes = {
isFetching: PropTypes.bool.isRequired,
isPopulated: PropTypes.bool.isRequired,
error: PropTypes.object,
isMoviesFetching: PropTypes.bool.isRequired,
isMoviesPopulated: PropTypes.bool.isRequired,
moviesError: PropTypes.object,
items: PropTypes.arrayOf(PropTypes.object).isRequired,
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
selectedFilterKey: PropTypes.string.isRequired,
filters: PropTypes.arrayOf(PropTypes.object).isRequired,
totalRecords: PropTypes.number,
onFilterSelect: PropTypes.func.isRequired,
onFirstPagePress: PropTypes.func.isRequired
};
export default History;

View File

@@ -0,0 +1,138 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import withCurrentPage from 'Components/withCurrentPage';
import * as historyActions from 'Store/Actions/historyActions';
import { registerPagePopulator, unregisterPagePopulator } from 'Utilities/pagePopulator';
import History from './History';
function createMapStateToProps() {
return createSelector(
(state) => state.history,
(state) => state.movies,
(history, movies) => {
return {
isMoviesFetching: movies.isFetching,
isMoviesPopulated: movies.isPopulated,
moviesError: movies.error,
...history
};
}
);
}
const mapDispatchToProps = {
...historyActions
};
class HistoryConnector extends Component {
//
// Lifecycle
componentDidMount() {
const {
useCurrentPage,
fetchHistory,
gotoHistoryFirstPage
} = this.props;
registerPagePopulator(this.repopulate);
if (useCurrentPage) {
fetchHistory();
} else {
gotoHistoryFirstPage();
}
}
componentWillUnmount() {
unregisterPagePopulator(this.repopulate);
this.props.clearHistory();
}
//
// Control
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);
if (payload.pageSize) {
this.props.gotoHistoryFirstPage();
}
}
//
// Render
render() {
return (
<History
onFirstPagePress={this.onFirstPagePress}
onPreviousPagePress={this.onPreviousPagePress}
onNextPagePress={this.onNextPagePress}
onLastPagePress={this.onLastPagePress}
onPageSelect={this.onPageSelect}
onSortPress={this.onSortPress}
onFilterSelect={this.onFilterSelect}
onTableOptionChange={this.onTableOptionChange}
{...this.props}
/>
);
}
}
HistoryConnector.propTypes = {
useCurrentPage: PropTypes.bool.isRequired,
items: PropTypes.arrayOf(PropTypes.object).isRequired,
fetchHistory: PropTypes.func.isRequired,
gotoHistoryFirstPage: PropTypes.func.isRequired,
gotoHistoryPreviousPage: PropTypes.func.isRequired,
gotoHistoryNextPage: PropTypes.func.isRequired,
gotoHistoryLastPage: PropTypes.func.isRequired,
gotoHistoryPage: PropTypes.func.isRequired,
setHistorySort: PropTypes.func.isRequired,
setHistoryFilter: PropTypes.func.isRequired,
setHistoryTableOption: PropTypes.func.isRequired,
clearHistory: PropTypes.func.isRequired
};
export default withCurrentPage(
connect(createMapStateToProps, mapDispatchToProps)(HistoryConnector)
);

View File

@@ -0,0 +1,6 @@
.cell {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
width: 35px;
text-align: center;
}

View File

@@ -0,0 +1,86 @@
import PropTypes from 'prop-types';
import React from 'react';
import Icon from 'Components/Icon';
import TableRowCell from 'Components/Table/Cells/TableRowCell';
import { icons, kinds } from 'Helpers/Props';
import styles from './HistoryEventTypeCell.css';
function getIconName(eventType) {
switch (eventType) {
case 'grabbed':
return icons.DOWNLOADING;
case 'movieFolderImported':
return icons.DRIVE;
case 'downloadFolderImported':
return icons.DOWNLOADED;
case 'downloadFailed':
return icons.DOWNLOADING;
case 'movieFileDeleted':
return icons.DELETE;
case 'movieFileRenamed':
return icons.ORGANIZE;
case 'downloadIgnored':
return icons.IGNORE;
default:
return icons.UNKNOWN;
}
}
function getIconKind(eventType) {
switch (eventType) {
case 'downloadFailed':
return kinds.DANGER;
default:
return kinds.DEFAULT;
}
}
function getTooltip(eventType, data) {
switch (eventType) {
case 'grabbed':
return `Movie grabbed from ${data.indexer} and sent to ${data.downloadClient}`;
case 'movieFolderImported':
return 'Movie imported from movie folder';
case 'downloadFolderImported':
return 'Movie downloaded successfully and picked up from download client';
case 'downloadFailed':
return 'Movie download failed';
case 'movieFileDeleted':
return 'Movie file deleted';
case 'movieFileRenamed':
return 'Movie file renamed';
case 'downloadIgnored':
return 'Movie Download Ignored';
default:
return 'Unknown event';
}
}
function HistoryEventTypeCell({ eventType, data }) {
const iconName = getIconName(eventType);
const iconKind = getIconKind(eventType);
const tooltip = getTooltip(eventType, data);
return (
<TableRowCell
className={styles.cell}
title={tooltip}
>
<Icon
name={iconName}
kind={iconKind}
/>
</TableRowCell>
);
}
HistoryEventTypeCell.propTypes = {
eventType: PropTypes.string.isRequired,
data: PropTypes.object
};
HistoryEventTypeCell.defaultProps = {
data: {}
};
export default HistoryEventTypeCell;

View File

@@ -0,0 +1,23 @@
.downloadClient {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
width: 120px;
}
.indexer {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
width: 80px;
}
.releaseGroup {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
width: 110px;
}
.details {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
width: 30px;
}

View File

@@ -0,0 +1,236 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import IconButton from 'Components/Link/IconButton';
import RelativeDateCellConnector from 'Components/Table/Cells/RelativeDateCellConnector';
import TableRowCell from 'Components/Table/Cells/TableRowCell';
import TableRow from 'Components/Table/TableRow';
import { icons } from 'Helpers/Props';
import MovieFormats from 'Movie/MovieFormats';
import MovieLanguage from 'Movie/MovieLanguage';
import MovieQuality from 'Movie/MovieQuality';
import MovieTitleLink from 'Movie/MovieTitleLink';
import HistoryDetailsModal from './Details/HistoryDetailsModal';
import HistoryEventTypeCell from './HistoryEventTypeCell';
import styles from './HistoryRow.css';
class HistoryRow extends Component {
//
// Lifecycle
constructor(props, context) {
super(props, context);
this.state = {
isDetailsModalOpen: false
};
}
componentDidUpdate(prevProps) {
if (
prevProps.isMarkingAsFailed &&
!this.props.isMarkingAsFailed &&
!this.props.markAsFailedError
) {
this.setState({ isDetailsModalOpen: false });
}
}
//
// Listeners
onDetailsPress = () => {
this.setState({ isDetailsModalOpen: true });
}
onDetailsModalClose = () => {
this.setState({ isDetailsModalOpen: false });
}
//
// Render
render() {
const {
movie,
quality,
customFormats,
languages,
qualityCutoffNotMet,
eventType,
sourceTitle,
date,
data,
isMarkingAsFailed,
columns,
shortDateFormat,
timeFormat,
onMarkAsFailedPress
} = this.props;
if (!movie) {
return null;
}
return (
<TableRow>
{
columns.map((column) => {
const {
name,
isVisible
} = column;
if (!isVisible) {
return null;
}
if (name === 'eventType') {
return (
<HistoryEventTypeCell
key={name}
eventType={eventType}
data={data}
/>
);
}
if (name === 'movies.sortTitle') {
return (
<TableRowCell key={name}>
<MovieTitleLink
titleSlug={movie.titleSlug}
title={movie.title}
/>
</TableRowCell>
);
}
if (name === 'languages') {
return (
<TableRowCell key={name}>
<MovieLanguage
languages={languages}
/>
</TableRowCell>
);
}
if (name === 'quality') {
return (
<TableRowCell key={name}>
<MovieQuality
quality={quality}
isCutoffMet={qualityCutoffNotMet}
/>
</TableRowCell>
);
}
if (name === 'customFormats') {
return (
<TableRowCell key={name}>
<MovieFormats
formats={customFormats}
/>
</TableRowCell>
);
}
if (name === 'date') {
return (
<RelativeDateCellConnector
key={name}
date={date}
/>
);
}
if (name === 'downloadClient') {
return (
<TableRowCell
key={name}
className={styles.downloadClient}
>
{data.downloadClient}
</TableRowCell>
);
}
if (name === 'indexer') {
return (
<TableRowCell
key={name}
className={styles.indexer}
>
{data.indexer}
</TableRowCell>
);
}
if (name === 'releaseGroup') {
return (
<TableRowCell
key={name}
className={styles.releaseGroup}
>
{data.releaseGroup}
</TableRowCell>
);
}
if (name === 'details') {
return (
<TableRowCell
key={name}
className={styles.details}
>
<IconButton
name={icons.INFO}
onPress={this.onDetailsPress}
/>
</TableRowCell>
);
}
return null;
})
}
<HistoryDetailsModal
isOpen={this.state.isDetailsModalOpen}
eventType={eventType}
sourceTitle={sourceTitle}
data={data}
isMarkingAsFailed={isMarkingAsFailed}
shortDateFormat={shortDateFormat}
timeFormat={timeFormat}
onMarkAsFailedPress={onMarkAsFailedPress}
onModalClose={this.onDetailsModalClose}
/>
</TableRow>
);
}
}
HistoryRow.propTypes = {
movieId: PropTypes.number,
movie: PropTypes.object.isRequired,
languages: PropTypes.arrayOf(PropTypes.object).isRequired,
quality: PropTypes.object.isRequired,
qualityCutoffNotMet: PropTypes.bool.isRequired,
customFormats: PropTypes.arrayOf(PropTypes.object).isRequired,
eventType: PropTypes.string.isRequired,
sourceTitle: PropTypes.string.isRequired,
date: PropTypes.string.isRequired,
data: PropTypes.object.isRequired,
isMarkingAsFailed: PropTypes.bool,
markAsFailedError: PropTypes.object,
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
shortDateFormat: PropTypes.string.isRequired,
timeFormat: PropTypes.string.isRequired,
onMarkAsFailedPress: PropTypes.func.isRequired
};
export default HistoryRow;

View File

@@ -0,0 +1,73 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { fetchHistory, markAsFailed } from 'Store/Actions/historyActions';
import createMovieSelector from 'Store/Selectors/createMovieSelector';
import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector';
import HistoryRow from './HistoryRow';
function createMapStateToProps() {
return createSelector(
createMovieSelector(),
createUISettingsSelector(),
(movie, uiSettings) => {
return {
movie,
shortDateFormat: uiSettings.shortDateFormat,
timeFormat: uiSettings.timeFormat
};
}
);
}
const mapDispatchToProps = {
fetchHistory,
markAsFailed
};
class HistoryRowConnector extends Component {
//
// Lifecycle
componentDidUpdate(prevProps) {
if (
prevProps.isMarkingAsFailed &&
!this.props.isMarkingAsFailed &&
!this.props.markAsFailedError
) {
this.props.fetchHistory();
}
}
//
// Listeners
onMarkAsFailedPress = () => {
this.props.markAsFailed({ id: this.props.id });
}
//
// Render
render() {
return (
<HistoryRow
{...this.props}
onMarkAsFailedPress={this.onMarkAsFailedPress}
/>
);
}
}
HistoryRowConnector.propTypes = {
id: PropTypes.number.isRequired,
isMarkingAsFailed: PropTypes.bool,
markAsFailedError: PropTypes.object,
fetchHistory: PropTypes.func.isRequired,
markAsFailed: PropTypes.func.isRequired
};
export default connect(createMapStateToProps, mapDispatchToProps)(HistoryRowConnector);

View File

@@ -0,0 +1,13 @@
.torrent {
composes: label from '~Components/Label.css';
border-color: $torrentColor;
background-color: $torrentColor;
}
.usenet {
composes: label from '~Components/Label.css';
border-color: $usenetColor;
background-color: $usenetColor;
}

View File

@@ -0,0 +1,20 @@
import PropTypes from 'prop-types';
import React from 'react';
import Label from 'Components/Label';
import styles from './ProtocolLabel.css';
function ProtocolLabel({ protocol }) {
const protocolName = protocol === 'usenet' ? 'nzb' : protocol;
return (
<Label className={styles[protocol]}>
{protocolName}
</Label>
);
}
ProtocolLabel.propTypes = {
protocol: PropTypes.string.isRequired
};
export default ProtocolLabel;

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