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

Compare commits

...

769 Commits

Author SHA1 Message Date
Marcelo Castagna
85dd5f5754 Update Synology error codes
(cherry picked from commit a8cb7784f2a6f833bda9e24ca2146701df8da75c)
2022-02-27 11:57:59 -06:00
Robin Dadswell
7de270b212 Fixed: Remove pre-DB from frontend storage 2022-02-25 18:16:08 -06:00
Robin Dadswell
b1afd7aaaa Fixed: Removing multiple items from the queue wording 2022-02-23 13:31:15 +00:00
bakerboy448
894fafcad7 Fixed: Improve help text for download client Category
(cherry picked from commit d18751eff2c684a72e4c698a1e0f6c282c8da0da)
Closes #7056
2022-02-22 21:41:45 +00:00
bakerboy448
2cf62915b0 New: Update Cert Validation Help Text [common]
(cherry picked from commit 66be23a7c4ae717cf060f5e89b4df7a08bdff5ac)
Closes #7065
2022-02-22 21:41:45 +00:00
PearsonFlyer
d3743446da Fixed: Updated ruTorrent stopped state helptext
(cherry picked from commit 69ccb96a365b12ec57cfb642f52f7c6ab8c67262)
2022-02-21 19:51:41 -06:00
4toomany
b332fa55de fixed text box not being uniform to others 2022-02-21 19:47:28 -06:00
Zack Eckersley Pallett
36da57f87b New: Add backup size information
Closes #4830

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

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

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

Based on Sonarr Commit eea3419849

* fixup! test

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

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 99.0% (1096 of 1107 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 99.5% (1102 of 1107 strings)

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

Currently translated at 99.8% (1105 of 1107 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 99.9% (1106 of 1107 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.2% (1077 of 1107 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 99.4% (1097 of 1103 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1103 of 1103 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 98.6% (1088 of 1103 strings)

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

* Fix: Updated link to Indexer Flags documentation

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

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

Translated using Weblate (Russian) [skip ci]

Currently translated at 99.9% (1101 of 1102 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.0% (1070 of 1102 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 98.8% (1089 of 1102 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 98.8% (1089 of 1102 strings)

Update translation files  [skip ci]

Updated by "Cleanup translation files" hook in Weblate.

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

Based on Sonarr 7b694ea71d7f78bad5c03393c4cf6f7a28ada1cb

Closes #6789
Fixes #4844

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

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

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

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 99.9% (1115 of 1116 strings)

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

Closes Radarr #5393

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

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

Translated using Weblate (Italian) [skip ci]

Currently translated at 98.5% (1100 of 1116 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 99.7% (1113 of 1116 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 99.5% (1111 of 1116 strings)

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

Currently translated at 100.0% (1116 of 1116 strings)

Translated using Weblate (Slovak) [skip ci]

Currently translated at 10.1% (113 of 1114 strings)

Translated using Weblate (Slovak) [skip ci]

Currently translated at 10.0% (112 of 1113 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 98.0% (1091 of 1113 strings)

Added translation using Weblate (Ukrainian) [skip ci]

Added translation using Weblate (Persian) [skip ci]

Added translation using Weblate (Bengali) [skip ci]

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

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

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

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

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

Add language test case

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

Translated using Weblate (Russian) [skip ci]

Currently translated at 99.9% (1112 of 1113 strings)

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

Currently translated at 100.0% (1113 of 1113 strings)

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

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

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

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

Currently translated at 100.0% (1113 of 1113 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 97.2% (1082 of 1113 strings)

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

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

Currently translated at 99.9% (1112 of 1113 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1113 of 1113 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 99.7% (1110 of 1113 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1113 of 1113 strings)

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

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

Translated using Weblate (Dutch) [skip ci]

Currently translated at 98.6% (1098 of 1113 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 99.7% (1110 of 1113 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 96.8% (1078 of 1113 strings)

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: hidaba <nag@hidaba.com>
Co-authored-by: x-nemesis <fsedgy@outlook.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translation: Servarr/Radarr
2021-12-07 17:33:52 -06:00
hugepants
5855773842 Fixed: Grammar in tooltip of download button
When hovering over the tooltip of an unclicked download button (e.g. in interactive search), it hasn't yet been "added" yet so it should be "add".
And once clicked, the tooltip should show "download queue" rather than "downloaded queue" as "downloaded" implies it has already been downloaded.
2021-12-07 08:15:59 -06:00
Robin Dadswell
73f2da72f3 New: Placeholders in notification fields 2021-12-07 09:59:35 +00:00
Robin Dadswell
7dda481824 New: Frontend Placeholders from the Backend 2021-12-07 09:59:35 +00:00
ta264
4d6c3369c6 New: Add osx-arm64 and linux-musl-arm builds
(cherry picked from commit 4ce405728a3ae32c8d0282e8e2b758084e8e5864)
2021-12-06 17:13:41 -06:00
Taloth Saldono
5c7756b575 Fixed: Release Push api broken when no indexer id is specified
(cherry picked from commit 20306a38e1d0f6a7954978cf07cde8e185f79c78)
2021-12-05 23:25:17 -06:00
Weblate
cf8aa09615 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 100.0% (1113 of 1113 strings)

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translation: Servarr/Radarr
2021-12-02 17:49:35 -06:00
ta264
cdde7d4d8b Workaround .net error serializing new object()
See https://github.com/dotnet/runtime/issues/61995
2021-12-02 21:36:07 +00:00
Weblate
e139708bb2 Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 99.5% (1108 of 1113 strings)

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

Currently translated at 100.0% (1113 of 1113 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 99.7% (1110 of 1113 strings)

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: mm519897405 <baiya@vip.qq.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translation: Servarr/Radarr
2021-11-30 22:09:38 -06:00
Qstick
47206dd2bd Cleanup MovieImport Tests 2021-11-28 23:25:13 -06:00
Qstick
9442666493 Fixed: Duplicates on index before housekeeper runs when manual importing over existing file 2021-11-28 22:06:24 -06:00
Qstick
005ad00caf Speed up History by Movie endpoint by avoiding multiple db calls
Closes #6704
2021-11-28 16:38:45 -06:00
bakerboy448
2ae056e727 README updates [skip ci] 2021-11-28 15:55:40 -06:00
Qstick
c538424229 New: Reanalyze media files if file size changes
Fixes #6757
Fixes #6765
Fixes #4482

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2021-11-28 15:42:44 -06:00
Qstick
507e8ec814 New: Parse 960p as 720p instead of 480p, parse 540p
Fixes #6304
Fixes #6767
2021-11-28 01:38:10 -06:00
Qstick
9d6614b14a New: Support AKA release titles
Co-Authored-By: aeonnoea <46950349+0aeonnoea0@users.noreply.github.com>
2021-11-28 01:37:21 -06:00
Csaba
f9dab9d780 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1113 of 1113 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
2021-11-28 01:31:42 -06:00
Oskari Lavinto
18e0656d21 Translated using Weblate (Finnish) [skip ci]
Currently translated at 99.7% (1110 of 1113 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
2021-11-28 01:31:42 -06:00
Thomas Citharel
759d14cf99 Translated using Weblate (French) [skip ci]
Currently translated at 98.1% (1092 of 1113 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
2021-11-28 01:31:42 -06:00
reloxx
1238f60a5e Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1113 of 1113 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
2021-11-28 01:31:42 -06:00
Weblate
2d28828e5e Translated using Weblate (Finnish) [skip ci]
Currently translated at 99.7% (1110 of 1113 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 99.7% (1110 of 1113 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 96.6% (1073 of 1110 strings)

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

Currently translated at 100.0% (1110 of 1110 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1110 of 1110 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 99.8% (1108 of 1110 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: bosci9 <rbos97@protonmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translation: Servarr/Radarr
2021-11-28 01:31:42 -06:00
Qstick
9a395b52ac New: Per download client setting to Remove Completed/Failed
Fixes #6322
Fixes #6328
Fixes #6331
Fixes #6337
2021-11-24 12:51:10 -06:00
Taloth Saldono
e9dffb4819 Fixed SeedConfigProvider cache refresh after indexer settings change
(cherry picked from commit 8e46362ff9de34c3468290861f0606d8fecc1a44)
2021-11-24 12:51:10 -06:00
Qstick
8b93038937 Fixed: Properly handle provider delete in UI 2021-11-24 07:41:51 -06:00
Qstick
c4cf38255e Fixed: Combine content headers with response headers 2021-11-23 19:21:59 -06:00
leaty
1c0621af0a New: Removing rtorrent downloads when seeding criteria have been met
(cherry picked from commit 411be4d0116f0739bb9c71235312d0c5a26dd3a2)

Fixes: #6320
Fixes: #5219
2021-11-23 15:06:44 -06:00
geogolem
dd80a64560 Lidarr, Radarr, and Prowlarr (maybe Readarr too) all use
the same name for their Authentication cookies
.AspNetCore.Forms

Sonarr uses a different name "SonarrAuth"

this commit makes Radarr use "RadarrAuth"...

similar changes should likely be ported to Lidarr, Prowlarr (and possibly Readarr)
2021-11-23 14:10:52 -06:00
bakerboy448
beb22844c9 Update Github Templates [skip ci] [common] 2021-11-23 14:08:53 -06:00
ta264
399f242f87 Fixed: Restarting windows service from UI 2021-11-23 19:52:37 +00:00
ta264
6befbec381 Fixed: Tray app restart 2021-11-23 19:52:37 +00:00
ta264
8b8f79d6c3 New: Use native .NET socks proxy
(cherry picked from commit d93110336fea31565129b356c90043761f8c2c5b)
2021-11-23 19:52:37 +00:00
ta264
e54d4765dd Other package updates
(cherry picked from commit ffefdcaef9f77f76a969ac201abad30b45077ff7)
2021-11-23 19:52:37 +00:00
ta264
4068cfcabb New: Upgrade to .NET 6
(cherry picked from commit 242922f1c351312e0eaae68c4c0ff6c80c16b297)
2021-11-23 19:52:37 +00:00
ta264
c5b736e422 Use modern HttpClient 2021-11-23 19:52:37 +00:00
Roxedus
025634cd19 Complete reject reason for multi-part 2021-11-22 10:43:21 +00:00
Weblate
9c86c20c00 Translated using Weblate (Finnish) [skip ci]
Currently translated at 96.1% (1067 of 1110 strings)

Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translation: Servarr/Radarr
2021-11-20 11:14:23 -06:00
Weblate
7bf44e2771 Merge 2021-11-20 16:46:20 +00:00
Mark McDowall
b18daebc8a Rename QueryTitles to CleanSceneTitles in SearchCriteriaBase
(cherry picked from commit 747a4164e24e9861cacad39cf7d94db398747b38)
2021-11-19 17:46:01 -06:00
ta264
183d3d0872 Fixed: Error adding import list exclusions from discover
Fixes #6739
2021-11-18 21:55:25 +00:00
Weblate
f1de24ccc8 Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 99.8% (1108 of 1110 strings)

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

Currently translated at 99.8% (1108 of 1110 strings)

Update translation files  [skip ci]

Updated by "Remove blank strings" hook in Weblate.

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mm519897405 <baiya@vip.qq.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translation: Servarr/Radarr
2021-11-18 01:59:33 -06:00
bakerboy448
498d9086b5 Fixed: Only blocklist pending releases when option is checked
(cherry picked from commit d11c691a7389d8984ddcbbd299d3192690719a1a)

Fixes #6730
Closes #6732
2021-11-17 16:32:48 +00:00
Robin Dadswell
2737937d37 Fixed: Blocklist error on blocklisting release 2021-11-17 12:15:05 +00:00
Weblate
3c9e818933 Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 99.8% (1108 of 1110 strings)

Translated using Weblate (Norwegian Bokmål) [skip ci]

Currently translated at 13.2% (147 of 1110 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 96.3% (1070 of 1110 strings)

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

Currently translated at 99.7% (1107 of 1110 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 96.1% (1067 of 1110 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 93.8% (1042 of 1110 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 96.1% (1067 of 1110 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 95.6% (1062 of 1110 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 96.1% (1067 of 1110 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 95.9% (1065 of 1110 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 96.3% (1069 of 1110 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 97.3% (1081 of 1110 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 94.9% (1054 of 1110 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 96.0% (1066 of 1110 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 99.0% (1099 of 1110 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 22.7% (252 of 1110 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 96.1% (1067 of 1110 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 96.1% (1067 of 1110 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1110 of 1110 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1110 of 1110 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 96.1% (1067 of 1110 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 96.1% (1067 of 1110 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 95.9% (1065 of 1110 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 95.9% (1065 of 1110 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 95.9% (1065 of 1110 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 96.1% (1067 of 1110 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 96.5% (1072 of 1110 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 97.2% (1080 of 1110 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 97.2% (1080 of 1110 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 98.1% (1089 of 1110 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1110 of 1110 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1110 of 1110 strings)

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

Currently translated at 99.8% (1108 of 1110 strings)

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

Currently translated at 99.8% (1108 of 1110 strings)

Update translation files  [skip ci]

Updated by "Remove blank strings" hook in Weblate.

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Panagiotis Christoforakis <panagiotischristoforakis@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: dmunozv04 <dmunozv04@gmail.com>
Co-authored-by: mm519897405 <baiya@vip.qq.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: shenghuoshou <1015886870@qq.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translation: Servarr/Radarr
2021-11-17 08:45:43 +00:00
bakerboy448
a8b563de7b Fixed: Cleanse APIKey from Signalr logging
(cherry picked from commit 2983b600268176db56208d6fb014b97ad81bb576)
2021-11-15 09:34:06 -06:00
Mark McDowall
823fe2261e Rename NzbSearchService to ReleaseSearchService
(cherry picked from commit eb4a9f624e716fa932da7f7e5ff975e2d9f02655)
2021-11-14 17:55:28 +00:00
Qstick
329d141128 Translation sync 2021-11-14 11:06:58 -06:00
ta264
d33bed6a36 Fixed: Null reference error getting video file info 2021-11-09 21:03:33 +00:00
Qstick
3acc6a3f9d Bump macOS build agent to 10.15 2021-11-09 18:37:57 -06:00
Qstick
8d0a26e284 Fix Migration NullRef in MigratePrimaries
Fixes #6716
2021-11-09 18:06:43 -06:00
ta264
f0f8a4ffaf New: MediaInfo -> FFProbe
* New: MediaInfo -> FFProbe

* Detect HDR format

* Fix migration for users that tested early ffmpeg
2021-11-09 06:31:05 +00:00
Robin Dadswell
e7ff13085e New: Support On Delete Notifications for Emby 2021-11-07 16:10:46 +00:00
Taloth Saldono
6a8f6dc5f7 Clarified Aria2 RPC Path field.
closes #6709

(cherry picked from commit 44a160fa067940770525312063ce7d749f6fd212)
2021-11-06 18:06:18 -05:00
Qstick
13c03d9958 Fixed: History failed endpoint uses Id in Route
Fixes #6708
2021-11-06 09:28:11 -05:00
Robin Dadswell
5ce1829709 Fixed: Translate strings for single vs multiple options 2021-11-05 13:57:10 +00:00
Mark McDowall
86da4e87ea Fixed: Blocklisting pending releases
Closes #4598

(cherry picked from commit 3f60e28c42d946691c4d44eb391b7888466538d9)
2021-11-05 13:57:10 +00:00
ta264
a219b4a1b8 Fixed: Forms login persists across restarts in docker
[common]
2021-11-02 14:51:43 +00:00
Robin Dadswell
84dd10f032 New: Added Genres to Movie Details page 2021-10-31 21:48:08 -05:00
Qstick
f844cbecaf Bump FluentMigrator to 3.3.1
[common]
2021-10-31 20:58:38 -05:00
bakerboy448
279692f9b1 Fixed: Incorrectly parsing RePACKPOST as Group
(cherry picked from commit c30ce3580a3125317bf56c1e16c23e24c59aecc8)
2021-10-31 10:38:24 -05:00
Mark McDowall
6fcbdc5ba3 New: Release group column on movie details files tab
(cherry picked from commit 30aa5f9070bc9611bb9459d9d96bf293c971f891)
2021-10-31 10:37:29 -05:00
nitsua
750b0331ab New: Add status color to index table for Downloaded + Monitored (#6411)
Fixed: Fix issue with calendar not showing Downloaded + Unmonitored (Yellow)
Fixed: Fix issue with colorblind mode not working anywhere except the Calendar
Refactor status color function so it is used everywhere instead of one for the calendar and one everywhere else
Refactor css style naming to be more consistent in the calendar with everything else
2021-10-29 07:59:23 -04:00
Robin Dadswell
4bf311d820 Fixed: Prowl notifications priority 2021-10-27 23:39:54 +01:00
ta264
67b1fd9bc5 Fixed: Correctly detect mounts in FreeBSD jails
[common]
2021-10-27 16:41:41 +01:00
Robin Dadswell
ea8a5dc25e Fixed: Typo in the indexer modal tags help text 2021-10-27 14:46:56 +01:00
ta264
ae5c7a3ace Fix api/v3/mediacover route 2021-10-26 21:12:53 +01:00
ta264
4b06f6b506 Fixed: Bad login redirect using a reverse proxy
(cherry picked from commit b0f04bb9d79a9f9f0021d179ea7273998be7cab3)
(cherry picked from commit ee81ad2add4819920e17ab8b64165a8131ae8dd0)
2021-10-26 18:50:51 +01:00
ta264
147cfe538a Fixed: Calender .ics feed
[common]
2021-10-25 21:36:44 +01:00
ta264
5fb6b44950 Improve ErrorHandler and quieten logging
[common]
2021-10-25 13:45:44 -04:00
ta264
bb4c1d6181 Try to fix NRE on queue resource custom formats 2021-10-25 13:45:44 -04:00
Robin Dadswell
a774ccf426 Fixed: Real IP logging when IPv4 is mapped as IPv6
(cherry picked from commit 782bdcc0a9c118f4b7a25fc90a966a6381a7f248)
2021-10-25 13:45:44 -04:00
ta264
3654340e0f Fixed: Log files should not be cached
(cherry picked from commit 33409cf7bc84956e47478887021b2e4632bf702c)
2021-10-25 13:45:44 -04:00
ta264
ee84321d4b Fixed: Forms login page uses urlbase for logo
(cherry picked from commit e0f30c3eaeab7d863b4b4104a9f0d501bd693f69)
(cherry picked from commit 73f81465e9e38ea545155b4ec98b23ddb9bc4816)
(cherry picked from commit 0332356fa34a893bc856d39e280f70681ffbc822)
2021-10-25 13:45:44 -04:00
ta264
aa49358b97 Fixed: Forms login with urlbase
(cherry picked from commit 811a9d4c6123643e0a2ae26c1ccf06717cb5f47b)
(cherry picked from commit a8c91f2bc819f570f8e07e489ba53b12a22ae0e6)
(cherry picked from commit 222b56e7bc38feb2a94ba0762e7120d6f75c2a8a)
2021-10-25 13:45:44 -04:00
ta264
aca669defe Fixed: UI not updating on upgrade
(cherry picked from commit d566c1efd42f9a94c524db311e8fa99bc6e0323f)
(cherry picked from commit 4b0586bd3d1cca4682dee53cc5af5ef1fa66978e)
(cherry picked from commit 5b2affcabbc38d7122b39d3290e2021fdb8afbcc)
2021-10-25 13:45:44 -04:00
ta264
8cad9600cc Tidy conversion to aspnetcore
(cherry picked from commit 490f6e2e6aa3f220cc98f257a3ca3b2bea48fb80)
(cherry picked from commit 8f3f90d4078d9d072d8ad4ccc3be35963b7435d6)
(cherry picked from commit 2b0da546c9dae40fbc1b2654387be80a17c1848f)
2021-10-25 13:45:44 -04:00
ta264
d6967a786f Fixed: Memory leak
Explicitly register concrete types as transient

(cherry picked from commit f097d30b095d89681eb1aede2e88c4fdefcab516)
(cherry picked from commit 47b23417e0b2dad153d16f1a8846a3a95ff9adcc)
(cherry picked from commit 876376cb77375e5d5b964ff215a7f7e2f730fa0a)
2021-10-25 13:45:44 -04:00
ta264
06e2d5b3c3 New: Use native dotnet host and DryIoc
(cherry picked from commit d6170dbfedf27a6218afe242a0fae2eb8b368aec)
(cherry picked from commit 7fe36a7e9222e830f4920e09a85115df0bdbf190)
2021-10-25 13:45:44 -04:00
ta264
2d53ec24f8 New: Use ASP.NET Core instead of Nancy 2021-10-25 13:45:44 -04:00
Robin Dadswell
c14ef7bee7 Fixed: Time column is first column on events page [common] 2021-10-24 21:08:46 +01:00
Robin Dadswell
4299799967 simplification of cleanup unused tags 2021-10-23 16:22:27 +01:00
Taloth Saldono
c93c87de30 Fixed: Cleanup of unused tags for Import lists.
Fixes #4610

(cherry picked from commit 2f6409226a7338f63c923c221ae1efd47681ce9c)
2021-10-23 16:22:27 +01:00
6cUbi57z
64045b0810 New: Add tag support to indexers
(cherry picked from commit c3d54b312ef18b837d54605ea78f1a263fd6900b)
2021-10-23 16:22:27 +01:00
RobinDadswell
4e1aa5b946 Fixed: Mailgun On Download Message 2021-10-23 16:21:48 +01:00
Qstick
3ce83d0cb4 Bump Monotorrent to 1.0.29 2021-10-18 18:54:21 -05:00
Mark McDowall
f5b0e78c2f New: Add logging is release is rejected because no download URL is available
(cherry picked from commit a83ed3bcce4b0a5ed5279029eed1b2ccfb4e8b85)
2021-10-18 09:38:59 +01:00
Mark McDowall
af872e4bc5 Fixed: Qbit torrents treated as failed after error
(cherry picked from commit 7e175bf95ed0a7b624b04a397b953f27043211ae)
2021-10-17 14:20:40 -05:00
bakerboy448
f8a82dbb90 Fixed: Parsing of French Language at end of release names
Fixes #6652
2021-10-14 14:24:50 +01:00
Robin Dadswell
27c5a30cc1 New: New Zealand as an option for Certificate Country 2021-10-11 15:14:42 +01:00
bakerboy448
0541041b2b update contributing [skip ci] (#6637)
* update contributing [skip ci]

closes #6608

* nuke contributing => wiki [skip ci]

* fix wiki link [skip ci]
2021-10-11 06:54:10 -05:00
Mark McDowall
90cff01fe5 Fixed: Queue conflicts with the same download in multiple clients
(cherry picked from commit 6b84da614bd6d919e04c58babde6911916f99e5b)
2021-10-05 12:23:43 +01:00
Stevie Robinson
b627c6badd New: Disable autocomplete of port number
(cherry picked from commit 943a3d80c4ff37cdffcd840190353d679c979493)
2021-10-05 12:23:14 +01:00
Mark McDowall
4f8b0dd5cc New: Log which DB is being migrated
(cherry picked from commit 07c95f06d3b9b32aaeb923d4c678f10a2bf1141a)
2021-10-03 10:22:14 -04:00
Weblate
672b37c319 Update translation files [skip ci]
Updated by "Cleanup translation files" hook in Weblate.

Update translation files  [skip ci]

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1105 of 1105 strings)

Translated using Weblate (Slovak) [skip ci]

Currently translated at 9.5% (106 of 1105 strings)

Translated using Weblate (Norwegian Bokmål) [skip ci]

Currently translated at 12.7% (141 of 1105 strings)

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

Currently translated at 99.0% (1095 of 1105 strings)

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

Currently translated at 100.0% (1105 of 1105 strings)

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

Currently translated at 100.0% (1105 of 1105 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 96.2% (1064 of 1105 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 96.2% (1064 of 1105 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 96.2% (1064 of 1105 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 96.1% (1062 of 1105 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 96.3% (1065 of 1105 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 96.1% (1063 of 1105 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 99.1% (1096 of 1105 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1105 of 1105 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1105 of 1105 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 96.2% (1064 of 1105 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 96.2% (1064 of 1105 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 96.2% (1064 of 1105 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 96.7% (1069 of 1105 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 97.1% (1073 of 1105 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 97.1% (1073 of 1105 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 99.7% (1102 of 1105 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 96.5% (1067 of 1105 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 94.0% (1039 of 1105 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 95.8% (1059 of 1105 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 97.5% (1078 of 1105 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 95.1% (1051 of 1105 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 22.5% (249 of 1105 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 96.2% (1064 of 1105 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 96.2% (1064 of 1105 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 95.9% (1060 of 1105 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 96.1% (1062 of 1105 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 98.2% (1086 of 1105 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 98.5% (1089 of 1105 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Francis Peixoto <peixoto.francis@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Manuel <manuel5cc@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: reloxx <reloxx@interia.pl>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/sk/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translation: Servarr/Radarr
2021-10-02 11:18:09 -04:00
Timm Schäuble
d0fbcffa42 New: Add support for Simplepush notifications (#6597)
* New: Add support for Simplepush notifications

* Add HelpText for Simplepush Events field
2021-10-02 10:15:54 -05:00
Kevin Lau
8f4b028abe New: Change Today color in calendar for better visibility
(cherry picked from commit d9e9b72a894a238e58d40cc0a6aa83c416db1a44)
2021-10-02 11:14:12 -04:00
Mark McDowall
db7babc6ed Fixes: Missing default path for Download Station
Fixes: Error when getting destination path for Synology Download Station in health check

(cherrypicked from 4bf3ab1511b4ea25642476bf9df13f91b6f73d76)

Closes #6508
2021-09-28 00:01:01 -04:00
Qstick
88d516a6d4 Cleanup Unused Tags Housekeeper
Fixes #6535
2021-09-27 22:59:54 -05:00
Qstick
d091458a8d Fixed: Help message when adding download clients
Fixes #6561
2021-09-27 22:59:54 -05:00
Mark McDowall
c8c9db1452 Aria2 fixes
Fixed: Removing completed downloads from Aria2
Fixed: Return correct path for Aria2 downloads in a job folder
Fixed: Seeding torrents in Aria2 are treated as finished downloading
Closes Sonarr issue 4648

(cherry picked from commit 1d8b711edaa094fb165a90b43f4d9d3534481fa4)
2021-09-27 23:45:37 -04:00
Qstick
10f37e0774 Bump NUnit from 3.13.0 to 3.13.2 2021-09-27 22:43:59 -05:00
Qstick
49583f8507 Bump Dapper from 2.0.78 to 2.0.90 2021-09-27 22:43:59 -05:00
Qstick
6da18c8a4f Bump Mailkit from 2.10.1 to 2.15.0 2021-09-27 22:43:58 -05:00
Qstick
d666366deb Bump Sentry from 2.1.8 to 3.9.3 2021-09-27 22:43:58 -05:00
Qstick
31ac40d2cc Bump RestSharp from 106.10.1 to 106.12.0 2021-09-27 22:43:57 -05:00
Qstick
2d0271978d Bump .Net from 5.0.5 to 5.0.10 2021-09-27 22:43:57 -05:00
Robin Dadswell
13224f03cc New: Renamed Blacklist to Blocklist 2021-09-27 23:11:23 -04:00
Weblate
8024f4658c Translated using Weblate (Bulgarian) [skip ci]
Currently translated at 94.2% (1041 of 1105 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 99.4% (1099 of 1105 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 22.5% (249 of 1105 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 96.5% (1067 of 1105 strings)

Translated using Weblate (Slovak) [skip ci]

Currently translated at 8.7% (97 of 1105 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 97.2% (1075 of 1105 strings)

Added translation using Weblate (Slovak) [skip ci]

Translated using Weblate (Norwegian Bokmål) [skip ci]

Currently translated at 11.1% (123 of 1105 strings)

Translated using Weblate (Catalan) [skip ci]

Currently translated at 1.3% (15 of 1105 strings)

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

Currently translated at 0.5% (6 of 1105 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 96.8% (1070 of 1105 strings)

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

Currently translated at 99.3% (1098 of 1105 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 96.5% (1067 of 1105 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 96.5% (1067 of 1105 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 96.5% (1067 of 1105 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 96.1% (1062 of 1105 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 96.5% (1067 of 1105 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 96.3% (1065 of 1105 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 96.6% (1068 of 1105 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 97.8% (1081 of 1105 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 95.3% (1054 of 1105 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 96.4% (1066 of 1105 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 97.1% (1073 of 1105 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 96.5% (1067 of 1105 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 96.5% (1067 of 1105 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 96.5% (1067 of 1105 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 96.5% (1067 of 1105 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 96.5% (1067 of 1105 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 96.1% (1063 of 1105 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 96.3% (1065 of 1105 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 96.5% (1067 of 1105 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 97.0% (1072 of 1105 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 97.2% (1075 of 1105 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 98.5% (1089 of 1105 strings)

Added translation using Weblate (Norwegian Bokmål) [skip ci]

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

Currently translated at 98.8% (1092 of 1105 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 95.2% (1053 of 1105 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 97.0% (1072 of 1105 strings)

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

Currently translated at 100.0% (1105 of 1105 strings)

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

Currently translated at 98.8% (1092 of 1105 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1105 of 1105 strings)

Co-authored-by: 7even <henning@wikene.no>
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: COTMO <moermantom1@gmail.com>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Samuel Bartík <github.fundal@aleeas.com>
Co-authored-by: Stevie Robinson <stevie.robinson@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: angelsky11 <angelsky11@gmail.com>
Co-authored-by: eslifos <eaaf_01@hotmail.com>
Co-authored-by: keysuck <joshkkim@gmail.com>
Co-authored-by: sergioquiterio <serquiterio@gmail.com>
Co-authored-by: siankatabg <siankata91@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/sk/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_Hans/
Translation: Servarr/Radarr
2021-09-26 17:59:05 -05:00
junk_receiver
beca2c99ca Add per-file rename information for Discord and Slack 2021-09-25 19:12:48 -05:00
Mark McDowall
94b481a66f New: Include renamed file information for Webhook and Custom Scripts
Closes #3927

(cherry picked from commit 3c45349404f59064d1c8db0549401189c456e4c0)
2021-09-25 19:12:48 -05:00
Mark McDowall
425772da1c Fixed: Log active indexers instead of implying all indexers are searched
(cherry picked from commit e19d4cf85b5a48ef823b9a983591d2bf7e72c621)
2021-09-01 09:34:27 -04:00
Robin Dadswell
6808d5388c Replace Sonarr reference
Replace Sonarr reference in reserved device name tests
2021-08-28 08:16:18 +01:00
bakerboy448
e912e14cbb update bug report [skip ci] [common] 2021-08-27 20:48:33 -05:00
Servarr
6e60e3dfa4 Translated using Weblate (French) [skip ci] (#6554)
Currently translated at 98.4% (1088 of 1105 strings)

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

Currently translated at 100.0% (1105 of 1105 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 96.4% (1066 of 1105 strings)

Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Oriz1206 <phamtrungnguyen1206@gmail.com>
Co-authored-by: ProBatou <baptiste2105@hotmail.fr>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/vi/
Translation: Servarr/Radarr

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Oriz1206 <phamtrungnguyen1206@gmail.com>
Co-authored-by: ProBatou <baptiste2105@hotmail.fr>
2021-08-20 23:35:21 -05:00
bakerboy448
ac9dfc4f25 add missing quality fixture test case
ref #5675  we did not have a test case for the H265 change
2021-08-21 00:34:46 -04:00
LLeny
0369ad86a3 New: Aria2 RPC (#6521)
* Initial

* Update Aria2.cs

Fix umlaut typo.

* Remove unnecessary csproj include
2021-08-21 00:33:44 -04:00
Taloth Saldono
8d1a9f98af Simplified regex a bit.
(cherry picked from commit f107ea5678a6a3153113fd6a87a0ef77c20ab216)
2021-08-13 19:37:36 +01:00
Mark McDowall
34c545d932 Fixed: Prevent conflicts with reserved device names
(cherry picked from commit dc7f46027aebf33b77d258a63c2ae973788cedd0)
2021-08-13 19:37:36 +01:00
Servarr
5a51225286 Translated using Weblate (Portuguese (Brazil)) [skip ci] (#6541)
Currently translated at 100.0% (1105 of 1105 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 95.2% (1052 of 1105 strings)

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

Currently translated at 100.0% (1105 of 1105 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 96.5% (1067 of 1105 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1105 of 1105 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1105 of 1105 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: DasSlow <leonwarner304@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Will Segatto <segatto.w@gmail.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/sv/
Translation: Servarr/Radarr

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: DasSlow <leonwarner304@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Will Segatto <segatto.w@gmail.com>
Co-authored-by: reloxx <reloxx@interia.pl>
2021-08-11 19:42:47 -05:00
bakerboy448
d2d81db8b3 Fixed: Corrected Indexer Category Help Text 2021-08-06 17:44:09 -04:00
Weblate
90cc79b6bc Translated using Weblate (Arabic) [skip ci]
Currently translated at 96.9% (1070 of 1104 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 96.4% (1065 of 1104 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 97.1% (1073 of 1104 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 97.3% (1075 of 1104 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 98.6% (1089 of 1104 strings)

Co-authored-by: Laubau <migdahs@gmail.com>
Co-authored-by: Simone <simoneungaro@hotmail.it>
Co-authored-by: Zareix <raphcatarino@gmail.com>
Co-authored-by: bison529 <abshalsh@gmail.com>
Co-authored-by: monopolo11 <bernardorn21@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/it/
Translation: Servarr/Radarr
2021-08-06 17:43:42 -04:00
Robin Dadswell
ebf4425beb Fixed: Show error if adding root folder fails
(cherry picked from commit 6596d0b4dad7be4e3d974f723b1a19d9bbfdff1f)

Co-authored-by: Mark McDowall <mark@mcdowall.ca>
2021-08-06 08:36:06 +01:00
Qstick
0daa978fba Fixed: Parse endpoint response when title failed to parse
Fixes #6523
2021-08-03 19:01:46 -04:00
bakerboy448
31ba45cb7a git updates [skip ci] 2021-08-03 17:08:36 -05:00
bakerboy448
8dad6cc8db Fixed: Support for additional Movie Editions
Closes #5717
2021-07-30 08:07:01 -05:00
bakerboy448
e632dea99a Fixed: Incorrectly Parsing [PublicHD] as Release Group
- Fixed: Incorrectly Parsing [PublicHD] as Release Group

- Corrected: Parser Test Naming

- Cleanse Torrent Suffix prior to determining the Group
2021-07-30 08:06:31 -05:00
Alex Thomson
560f12122f Remove duplicate call to DeleteTorrent
(cherry picked from commit 94417402d8364e435c35365a75278914d5405465)
2021-07-29 18:32:52 -04:00
Johan van Eck
3ec5d1ef3d Update image swagger docs to represent the API correctly 2021-07-29 18:05:04 -04:00
Evan J
203d735a85 Fixed: Bad Translate on Tasks View 2021-07-29 08:23:53 -05:00
PearsonFlyer
35e6d54409 Fixed: Update indexer flag help link 2021-07-24 14:33:29 -05:00
Servarr
2c5b4c6217 Translated using Weblate (Portuguese (Brazil)) [skip ci] (#6477)
Currently translated at 100.0% (1104 of 1104 strings)

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

Currently translated at 97.5% (1077 of 1104 strings)

Added translation using Weblate (Chinese (Min Nan)) [skip ci]

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

Currently translated at 97.3% (1075 of 1104 strings)

Co-authored-by: Jian Li <mydr@vip.qq.com>
Co-authored-by: Sean <zhangshuyan@fuji.waseda.jp>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Will Segatto <segatto.w@gmail.com>
Co-authored-by: qw8956110 <477127061@qq.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translation: Servarr/Radarr

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Jian Li <mydr@vip.qq.com>
Co-authored-by: Sean <zhangshuyan@fuji.waseda.jp>
Co-authored-by: Will Segatto <segatto.w@gmail.com>
Co-authored-by: qw8956110 <477127061@qq.com>
2021-07-24 14:29:02 -05:00
TwentyNine78
94c685a5ca Fixed: issue with DownloadStationTaskProxyV2 if no destination folder specified in settings 2021-07-16 19:35:38 -04:00
bakerboy448
28e9d112c8 Fixed: Provider Wiki Links (supported-X => supported#X) 2021-07-16 19:34:23 -04:00
Archmonger
4698dca813 Minor swagger docs fixes & improvements (#6453)
[skip ci]

* fix spelling movieFiles -> moveFiles

* improve /queue/grab/ description
2021-07-16 19:20:30 -04:00
Weblate
8dbf9471a6 Translated using Weblate (French) [skip ci]
Currently translated at 98.4% (1087 of 1104 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (Catalan) [skip ci]

Currently translated at 0.3% (4 of 1104 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 97.8% (1080 of 1104 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 97.2% (1074 of 1104 strings)

Added translation using Weblate (Catalan) [skip ci]

Co-authored-by: AlexR-sf <omg.portal.supp@gmail.com>
Co-authored-by: Benigno Diez Gutiérrez <nino.diez93@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: doob187 <amderkum@gmail.com>
Co-authored-by: dtalens <databio@gmail.com>
Co-authored-by: foXaCe <foxace66@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ru/
Translation: Servarr/Radarr
2021-07-16 19:15:39 -04:00
bakerboy448
0ef7f0155a fixed grammar issues 2021-07-16 19:14:03 -04:00
bakerboy448
6f0a2de505 Fixed: Notifiarr Health Issue Level
ref Sonarr 5938c38bc3a76d1f1e105fb54d5d7f59aa207278
2021-07-14 16:48:11 -05:00
bakerboy448
c23eea21fc Update PULL_REQUEST_TEMPLATE.md 2021-07-10 15:23:06 -05:00
Sohrab
b955a37a1c Fix grammar mistake in English message 2021-07-09 07:57:06 -05:00
Weblate
df08385603 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 95.1% (1051 of 1104 strings)

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

Currently translated at 100.0% (1104 of 1104 strings)

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

Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 93.0% (1027 of 1104 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 92.9% (1026 of 1104 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 92.8% (1025 of 1104 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1104 of 1104 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: reloxx <reloxx@interia.pl>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translation: Servarr/Radarr
2021-07-07 23:31:14 -04:00
Qstick
64cf11bc54 New: mono disk and process provider cleaning 2021-07-03 10:07:06 -04:00
Qstick
92c4c50e1c New: Even More Mono Cleaning 2021-07-03 10:07:06 -04:00
Qstick
cc572729ff New: Drop Mono Support
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2021-07-03 10:07:06 -04:00
bakerboy448
79a10fa18f fix missed parser obfuscation 2021-07-03 08:45:12 -05:00
bakerboy448
e3b5efc9e5 Fixed: Improved parsing of Web releases
Fixes #6371

bonus: refactored webdl parsing to be cleaner
2021-07-03 08:45:12 -05:00
bakerboy448
ad77a438f8 fix concurrency so runs don't cancel [skip ci] 2021-07-01 22:10:25 -04:00
Qstick
a7088ce387 Prevent sync jobs from running in parallel
[skip ci]
2021-06-29 21:47:58 -04:00
bakerboy448
b06ec1f291 Fixed: Corrected Naming Examples (#6420)
[common]
2021-06-28 22:34:31 -05:00
bakerboy448
8eedae1af0 Fixed: Migrate Legacy MediaInfo HDR token to VideoDynamicRange
Closes #4132
2021-06-28 22:33:25 -05:00
Taloth Saldono
a3242b4823 Removed extraneous enum hints in dropdown 2021-06-28 22:38:46 -04:00
Qstick
a037a8dbe2 Don't ignore original wal/journal during v3 migration
Fixes #6067

Doesn't really apply to us, save for realllly old installs.

Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2021-06-28 22:38:46 -04:00
Qstick
eb76dd5248 Added searchEngine support in Newznab/Torznab caps
Fixes #5849

Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2021-06-28 22:38:46 -04:00
TwentyNine78
143067621c Add compatibility with SYNO.DownloadStation2.Task API
Fix errors with the new version of DownloadStation (3.8.16-3566)
2021-06-28 22:32:19 -04:00
Qstick
84d1a8983b Wikijs Links 2021-06-28 21:38:26 -04:00
bakerboy448
61b71a206d Fixed: Bad Translation 2021-06-28 17:02:19 -05:00
bakerboy448
ee9ff25afc git fixes [skip ci]
- stops stale bot from marking feature requests from label change
- enhances bug report template
-fixes FR label
2021-06-26 23:36:25 -04:00
Qstick
5e3e8feb0a Create azuresync.yml 2021-06-26 22:18:24 -04:00
Qstick
1b63a9ad80 Update azure-pipelines.yml 2021-06-26 15:35:23 -04:00
bakerboy448
15a99ab650 add wiki link to bug template [skip ci] [common] 2021-06-26 07:01:28 -04:00
Weblate
c228361654 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 92.6% (1023 of 1104 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 98.7% (1090 of 1104 strings)

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

Currently translated at 0.3% (4 of 1104 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 92.5% (1022 of 1104 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 96.7% (1068 of 1104 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 98.7% (1090 of 1104 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1104 of 1104 strings)

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

Currently translated at 97.4% (1076 of 1104 strings)

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

Currently translated at 97.4% (1076 of 1104 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 98.5% (1088 of 1104 strings)

Added translation using Weblate (Chinese (Simplified)) [skip ci]

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

Currently translated at 100.0% (1104 of 1104 strings)

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

Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 92.5% (1022 of 1104 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 98.3% (1086 of 1104 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.5% (1077 of 1104 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 91.7% (1013 of 1104 strings)

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

Currently translated at 100.0% (1104 of 1104 strings)

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

Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.5% (1077 of 1104 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 91.7% (1013 of 1104 strings)

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

Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 95.5% (1055 of 1104 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.5% (1077 of 1104 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1104 of 1104 strings)

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

Currently translated at 97.3% (1075 of 1104 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 97.5% (1077 of 1104 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 97.3% (1075 of 1104 strings)

Co-authored-by: AlbertCoolGuy <Albert.rosenstand@gmail.com>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Florian <sephrat.flo@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Hummingbirdy The Second <hummingbirdy@pm.me>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Simon Willcock <simon.willcock@kogan.com.au>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Will Segatto <segatto.w@gmail.com>
Co-authored-by: angelsky11 <angelsky11@gmail.com>
Co-authored-by: anschein <342305299@qq.com>
Co-authored-by: doob187 <amderkum@gmail.com>
Co-authored-by: flowcool <a121313b@opayq.com>
Co-authored-by: foXaCe <foxace66@gmail.com>
Co-authored-by: muihiuwev <muihiuwev@outlook.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: sadstan123456 <sadstan123456@gmail.com>
Co-authored-by: vinson512 <vinson512@hotmail.com>
Co-authored-by: w1278640538 <1278640538@qq.com>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_Hans/
Translation: Servarr/Radarr
2021-06-26 06:59:22 -04:00
Robin Dadswell
7d644aa544 New: Activity Queue: Rename Timeleft column to Time Left 2021-06-26 06:57:44 -04:00
servarr[bot]
9ef0906da1 New: Manual Import rejection column is sortable
(cherry picked from commit 2f366bc3b7274200ff9d0bf1aa96408dc92206f3)

Co-authored-by: Jake Soenneker <soenneker@users.noreply.github.com>
2021-06-24 08:40:00 +01:00
bakerboy448
8fd6c72037 fix up notification key misspelling 2021-06-11 22:41:20 -04:00
Robin Dadswell
45c08db1ce New: Prowlarr Donation link 2021-06-11 22:40:26 -04:00
ta264
7d7b2c9e2b Fixed: RSS sync paging back too far for some indexers 2021-06-11 22:39:46 -04:00
Qstick
13ce3fc6da Fixed: Use normal URL for Trakt Oauth per new docs 2021-06-02 22:09:01 -04:00
Julian Wachholz
f55f6e198a Fixed: Detect "UHDBD" as BluRay quality 2021-06-02 22:03:22 -04:00
Weblate
4f68cb85e1 Translated using Weblate (French) [skip ci]
Currently translated at 97.5% (1077 of 1104 strings)

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

Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 97.6% (1078 of 1104 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1104 of 1104 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Florian <sephrat.flo@gmail.com>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: davidfigueiras20 <davidfigueiras20@gmail.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translation: Servarr/Radarr
2021-06-01 20:50:20 -04:00
Qstick
b7f3791966 New: Remove Legacy API 2021-05-30 23:02:59 -04:00
Qstick
ee8dfe1ea9 Bump to 4.0 2021-05-30 23:02:59 -04:00
Robin Dadswell
6f0d5a0583 Fixed: Real IP Logging when IPv4 mapped as IPv6 (#6362) 2021-05-30 14:21:06 +01:00
Mark McDowall
ba1637087e Fix webpack memory leak when copying HTML files
(cherry picked from commit 2804a961cb457cc94d3eaa1fe8ee2f71d9d1261c)
2021-05-29 08:25:46 -04:00
Robin Dadswell
bdc7733faf Fixed: Clarify delay profile bypass only applies to preferred protocol 2021-05-27 07:48:55 -04:00
Qstick
7f4be53db0 Bump version 3.2.1 2021-05-27 07:48:24 -04:00
Weblate
27d998d6f2 Added translation using Weblate (Chinese (Traditional) (zh_TW)) [skip ci]
Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1104 of 1104 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Qstick <qstick@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translation: Servarr/Radarr
2021-05-26 23:41:04 -04:00
Evan J
5eb593f453 Update login.html
(cherry picked from commit e8f58eb9be583639909c0ac9b3dc3b40db8c7a53)
2021-05-24 20:40:35 -04:00
Servarr
4652db0583 Translations update from Weblate (#6348)
* Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 99.7% (1101 of 1104 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/

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

Currently translated at 99.8% (1102 of 1104 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/

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

Currently translated at 99.7% (1101 of 1104 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/

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

Currently translated at 99.7% (1101 of 1104 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/

Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
2021-05-24 00:41:35 -04:00
Qstick
35d43480bf Fixed: Errors in queue after Movie deleted
Fixes #5899
Fixes RADARR-17A
2021-05-23 23:14:56 -04:00
Qstick
3e7c136a7f Fixed: ArgumentException on Import List Root Folder Check 2021-05-23 21:36:07 -04:00
Qstick
05f9f6b413 Fixed: Check movie null before trying to use it 2021-05-23 21:26:01 -04:00
Robin Dadswell
67f6eb544a New: Indexer Categories no longer Advanced option 2021-05-23 21:19:53 -04:00
Robin Dadswell
3c11e934a8 Fixed: Parsing service error for multi language releases when movie not mapped 2021-05-23 16:41:33 -04:00
Robin Dadswell
627a39b8fc Fix: Root Folder Downloads check giving errors when RuTorrent is used 2021-05-23 16:41:33 -04:00
Qstick
95c7b96dff Fixed: Health MovieEditor link goes nowhere 2021-05-20 18:47:24 -04:00
Robin Dadswell
dadd59fc3a Fix ESLint (#6335)
(cherry picked from commit c3837c9f7b50534e3eafe1d9fbaf360fee4588b7)

Co-authored-by: Mark McDowall <mark@mcdowall.ca>
2021-05-19 23:36:50 +01:00
Daniel Martin Gonzalez
e67d3d3666 New: Add missing properties to Connection Webhook (#6333) 2021-05-18 19:41:13 +01:00
Qstick
f4718243ed Fixed: NZBGet Settings reference Sabnzbd 2021-05-17 22:15:10 -04:00
Robin Dadswell
fcec787eb6 Show User Agent in System->Tasks for externally triggered commands (#6327)
* Show User Agent in System->Tasks for externally triggered commands

(cherry picked from commit fe8f319f7bfdadb7218b6313ada6cae1d2a35ad8)

* Translations

Co-authored-by: Taloth Saldono <Taloth@users.noreply.github.com>
2021-05-17 21:45:23 -04:00
Qstick
5fe8f65d64 Fixed: Filter Unknown from Profile Language Select 2021-05-15 18:11:06 -04:00
JohnBednarczyk
c2a21cd238 Added custom languages to the top 2021-05-15 18:11:06 -04:00
Daniel Martin Gonzalez
a31ca4e80b New: Telegram Notification - Add Upgrade Movie Support 2021-05-15 18:10:30 -04:00
Michael Higgins
db14ac4605 New: Update scenename from API (#6132)
* update scenename from API

* Update MovieFileListResource.cs

* Update MovieFileModule.cs

null checks similar to Sonarr pull request

* Update MovieFileModule.cs

add blank line

* Update MovieFileModule.cs

include isSceneTitle check

* Update MovieFileModule.cs

fix namespace

* Update MovieFileModule.cs
2021-05-15 18:08:04 -04:00
Robin Dadswell
5f229b78be Fixed: Multi language release being rejected when indexer profile is setup for original and any other language (#6311) 2021-05-15 16:52:15 +01:00
ta264
543f2e7ddc Don't run build for weblate PRs
(cherry picked from commit 62221c2a7fc959dfe47af7bc98622d81eba3419b)
2021-05-14 06:59:03 -04:00
Servarr
d6b7ab6260 Translations update from Weblate (#6295)
* Added translation using Weblate (Chinese (Traditional)) [skip ci]

* Translated using Weblate (Danish) [skip ci]

Currently translated at 97.0% (1068 of 1101 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/da/

* Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1101 of 1101 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/

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

Currently translated at 100.0% (1101 of 1101 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/

* Deleted translation using Weblate (Chinese (Traditional))  [skip ci]

* Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1102 of 1102 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/

Co-authored-by: ted09080037 <ted09080037@gmail.com>
Co-authored-by: lechuck <theghostpirate@gmail.com>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Qstick <qstick@gmail.com>
2021-05-12 20:50:14 -04:00
Robin Dadswell
d7ab9292fb Fixed: restoring scroll position when going back to index page (#6308)
(cherry picked from commit 1bc52d0138c7bcb94ffce31ec05f675387612a62)

Co-authored-by: ta264 <ta264@users.noreply.github.com>
2021-05-12 12:36:20 +01:00
Robin Dadswell
4300d8d8c6 New: TMDb Keyword List support (#6297) 2021-05-12 12:36:01 +01:00
Qstick
446b2ffff9 New: Letterboxd Links for Movies 2021-05-11 23:59:44 -04:00
Mark McDowall
695720b552 New: Add rel="noreferrer" to all external links
(cherry picked from commit c722e9112496062313d09df16b169873f910f2a1)
2021-05-10 23:45:06 -04:00
Qstick
c47934c5ca Fixed: Alignment of Certification and Runtime on Add Movie 2021-05-10 23:41:21 -04:00
bakerboy448
9938737cd7 fix minimumAcailability typo and truncate version to 3 [skip ci] 2021-05-10 22:59:03 -04:00
bakerboy448
58326f05e0 remove legacy swagger doc [skip ci] 2021-05-10 22:59:03 -04:00
Robin Dadswell
04ad5ec9c0 Fixed: Interactive Search Release Rejected tooltip no longer covers download button 2021-05-10 19:06:46 -04:00
crbrz
2c008384dd Fixed: Links to search results not always working on interactive search
Co-authored-by: Cristi <cristi@emailaddressmanager.com>
2021-05-09 18:54:54 +01:00
Servarr
a9b605c872 Translations update from Weblate (#6276)
* Translated using Weblate (Dutch) [skip ci]

Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/nl/

* Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1101 of 1101 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/

Co-authored-by: ProjectHydra31 <kay@timmerman.io>
Co-authored-by: reloxx <reloxx@interia.pl>
2021-05-09 10:28:34 -04:00
Robin Dadswell
cd9b469823 fixups 2021-05-09 08:15:10 -04:00
Mark McDowall
df4bfa501c Fixed files that were using incorrect imports
(cherry picked from commit a3bb2f1c32fc1e0c49d0d1fe24c04940453f5431)
2021-05-09 08:15:10 -04:00
Mark McDowall
194a1e5154 Updated create-react-class package
(cherry picked from commit 8acc0f77b677e4713d0f3d6f059b948a3aaca450)
2021-05-09 08:15:10 -04:00
Mark McDowall
e53b2bb83c Update react-autosuggest, react-focus-lock, react-lazyload react-slider and react-tabs packages
(cherry picked from commit 2964d0bb6da089be863199514c1e7ed4ca2832f7)
2021-05-09 08:15:10 -04:00
Qstick
10772c09ef Update microsoft/signalr package
(cherry picked from commit afe1d695d0071fa321d655425f5badc4d7a1f6c2)
2021-05-09 08:15:10 -04:00
Qstick
f9ed15409a Update connected-react-router
(cherry picked from commit d64980ce6b1eeeffc8c7b0a938b70c18bdda5067)
2021-05-09 08:15:10 -04:00
Qstick
f75ab93458 Updated react-dnd and added touch support
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
(cherry picked from commit 0b85b506e226cf1bf1f2d28eb7ed441108cc154d)

to be squashed
2021-05-09 08:15:10 -04:00
Qstick
7755a8bd3b Updated redux and react-redux packages
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
(cherry picked from commit 699da04eb3a0db3fa3eb89f5f61dcf90749e9df2)
2021-05-09 08:15:10 -04:00
Qstick
017c7998be Update react and react-dom packages
(cherry picked from commit e3968f90b23cdb9a875b474d159787e84d480bf7)
2021-05-09 08:15:10 -04:00
Qstick
f40ddfef10 Update jquery, filesize, qs packages
(cherry picked from commit c60858aed5c3607e0df192caf02e6a400c76e172)
2021-05-09 08:15:10 -04:00
Qstick
80049909eb Update clipboard, lodash, mobile-detect
(cherry picked from commit 9a30173e8defb49a8a24159c35f4982b4f791e02)
2021-05-09 08:15:10 -04:00
Qstick
fc22264f89 Update classnames
(cherry picked from commit 8f2e73045ac682c2e9abb3a1f3894a4ca16eb650)
2021-05-09 08:15:10 -04:00
Qstick
aba2e10b5c Update sentry packages
(cherry picked from commit adb01c2f8685de2abaf5ebf37000f3765e52b086)
2021-05-09 08:15:10 -04:00
Qstick
4b6874d551 Update fontawesome packages
(cherry picked from commit ef0c9472d94ff72ec186684c8c773af7ceaa8073)
2021-05-09 08:15:10 -04:00
Qstick
58934a30ce Update postcss packages
(cherry picked from commit 408089957ab8a9dc6a21b485853b9d86a9ace59f)
2021-05-09 08:15:10 -04:00
Qstick
33a960f325 Update core-js package
(cherry picked from commit f383e57e7de33c6a071083e8282ea69238ef8987)

to be sqaushed
2021-05-09 08:15:10 -04:00
Qstick
8560ff43fe Update lint packages
(cherry picked from commit 871a6272322e3fad58f70f410e1aa21feb4ff9ad)
2021-05-09 08:15:10 -04:00
Qstick
c88a47b275 Upgrade babel packages
(cherry picked from commit 1af730ffb82c14693911942718e2c171123f6ccb)
2021-05-09 08:15:10 -04:00
Qstick
67fe9101d9 Update to webpack 5, remove gulp
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
(cherry picked from commit 4ef2174226a0210f756f180dded8567d659589e2)
2021-05-09 08:15:10 -04:00
Robin Dadswell
af99c78352 New: Allow user to choose whether delay profile should apply to release of the highest enabled quality (#6218)
(cherry picked from commit d668e923af83ab7f1589d947fec9f40a3919e0b8)

Co-authored-by: Taloth Saldono <Taloth@users.noreply.github.com>
2021-05-09 00:45:04 +01:00
Robin Dadswell
df3253f55c Improved logic for root folder downloading health check (#6287) 2021-05-09 00:43:56 +01:00
Robin Dadswell
b9abc1be11 Add missing On Delete Notifications to Mailgun notifications
(cherry picked from commit a824fa44d21328d9c8bbb1ccfd6d247d4ff5c888)
2021-05-08 18:13:51 +01:00
Skyler Mäntysaari
5c0ee04271 New: Mailgun connection
(cherry picked from commit 55752a6c6213c1d83d347ba0f6870aa6c1cc0770)
2021-05-08 18:13:51 +01:00
Qstick
5e2cd3798b Move support bot to Github Action [skip ci]
[common]
2021-05-07 18:48:35 -04:00
Qstick
83041b1d37 Delete todobot config [skip ci] 2021-05-07 18:40:14 -04:00
Robin Dadswell
9f6c48191b New: Errors for Mono Health checks on X86 and BSD (except FreeBSD) based Operating Systems 2021-05-07 23:38:10 +01:00
Robin Dadswell
5696fa2efe Fixed: Wiki links on all health checks 2021-05-07 23:38:10 +01:00
Robin Dadswell
d38311b717 New: Localised all health check strings 2021-05-07 23:38:10 +01:00
Robin Dadswell
aa522066ee New: Mono health check moved from warning to error 2021-05-07 23:38:10 +01:00
Robin Dadswell
d2ba70c4d7 Fixed: Added wiki fragments to indexer health checks 2021-05-07 23:38:10 +01:00
Robin Dadswell
ca2e62492d Fixed: Import Lists messages can now show in UI 2021-05-07 17:08:19 +01:00
bakerboy448
02bcb4d865 Fixed: Incorrectly identifying YTS.LT as Lithuanian Language
New: Detect YTS.LT as a Release Group
2021-05-07 12:04:15 -04:00
ta264
36962f176f Always access config file via provider to utilise lock 2021-05-07 11:52:03 +01:00
ta264
0a2afe692f Fail build on BSD integration test fails 2021-05-07 11:52:03 +01:00
ta264
5140ee8f2e Don't start integration tests too soon
(cherry picked from commit b284f40716269dc4f641323b8293f40dfda8a424)
2021-05-07 11:52:03 +01:00
Servarr
e47ceae0c5 Translations update from Weblate (#6272)
* Translated using Weblate (French) [skip ci]

Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/

* Translated using Weblate (Italian) [skip ci]

Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/it/

* Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/

* Translated using Weblate (Turkish) [skip ci]

Currently translated at 99.2% (1070 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/tr/

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

Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/

Co-authored-by: Florian <sephrat.flo@gmail.com>
Co-authored-by: memnos <fabrassi@gmail.com>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: batuhankrmn <batuhankrmn3@gmail.com>
Co-authored-by: Ivo Capanema <ivoliveirabh@hotmail.com>
2021-05-06 07:49:42 -04:00
Qstick
906f8c1049 Bump version 3.2.0 2021-05-04 07:40:13 -04:00
bakerboy448
27e871656e New: DiscordNotifier is now Notifiarr (#6263)
[common]
2021-05-03 22:14:06 +01:00
bakerboy448
1ff147c541 fix bot discord link [skip ci] 2021-05-02 21:43:21 +01:00
Mark McDowall
7028bfb082 Fixed broken tests
(cherry picked from commit 16156192c5f1abd929bcd825186b9f153507a46e)
2021-05-02 21:42:34 +01:00
Mark McDowall
efdb9c20d4 Fixed: Removing completed download from SABnzbd
Closes #4445

(cherry picked from commit c669be317fffa252d59851e9a8ca9e56032a01fb)
2021-05-02 21:42:34 +01:00
Qstick
9bf872c9fa Delete reaction.yml
[skip ci]
2021-05-01 10:10:45 -04:00
Csaba
feaeda9186 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hu/
2021-04-30 18:54:18 -04:00
Mark McDowall
e9cf9d05f5 Fixed: Refresh queue count when navigating Activity: Queue
(cherry picked from commit 0a2b109a3fe101e260b623d0768240ef8b7a47ae)
2021-04-29 22:47:32 -04:00
nitsua
a1211f54de Move the warning icona and download icon next to the release so it is never out of viewport 2021-04-29 22:46:51 -04:00
Qstick
c7b5e6204c Bump Version 3.1.1 2021-04-29 18:53:40 -04:00
ta264
788404ee27 Utilisation of amended coverlet package to fix randomly failing tests 2021-04-27 14:40:49 +01:00
bakerboy448
8ef4429b9e New: ISO 8601 Date in log files
Closes #6224
2021-04-25 10:36:14 -04:00
Robin Dadswell
7c5fc1e4b0 New: Adds SSL option to Kodi connections (#6219) 2021-04-24 18:43:26 +01:00
Robin Dadswell
c66f7abea5 Fixed: Parsing RSS with null values (#6220) 2021-04-24 18:43:06 +01:00
Robin Dadswell
ce6f52552a Fixed: Incorrectly grabbing revision downgrades (#6194) 2021-04-24 18:14:27 +01:00
Will Segatto
7807e2e13a Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2021-04-23 14:57:01 +00:00
Will Segatto
d5aa73fe8f Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2021-04-23 14:57:00 +00:00
bakerboy448
cb5bf86d8e Update indexer category help text
closes #6209

(cherrypicked from sonarr 8d2d9078ff8f6daf50aef2dded3f96dae93252cc)
2021-04-22 20:22:47 -04:00
Robin Dadswell
8d17f0b1db Fixed: Round durationseconds in Kodi metadata (#6204) 2021-04-20 18:41:54 +01:00
angelsky11
2e62aad279 Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2021-04-20 08:56:58 +00:00
Mark McDowall
f2c9fcde7c New: Remove completed downloads from disk when removing from SABnzbd
(cherry picked from commit ac8283d7339b3d9e8ccf70f3d1ff031d1b0a71d1)
2021-04-19 15:04:22 -04:00
bakerboy448
2716bd6ae1 Fixed: Not capturing D-Z0N3 preceded with .-
Closes #6044
2021-04-17 21:29:35 -04:00
Mark McDowall
b67f6b98ae Set timeout for sending email
Closes #6171
2021-04-17 16:39:13 -04:00
Mark McDowall
7de2c8d41f Refactor Email and add more logging
(cherry picked from sonarr 5301620ecfd6cffb6014e986d1ce5b6bbaace93a)
closes #6168
2021-04-17 16:39:13 -04:00
Mark McDowall
5dabec5cc8 Fixed: Links to Sonarr now uses auth cookie
(cherry picked from commit a47cb2390eb5151ed19388def46b0bb165d27647)
2021-04-13 20:56:18 -04:00
Robin Dadswell
fc61687e82 New: Calendar iCal feed includes Digital Release events 2021-04-13 10:01:15 +01:00
nitsua
398fc4dca2 Add certification and runtime to search results (#6154) 2021-04-12 20:49:37 -04:00
Robin Dadswell
f883cab6db bump to Dotnet 5.0.5 2021-04-12 15:17:11 +01:00
Robin Dadswell
0a18898e36 Sentry logging exceptions and some trace logging
Co-authored-by: Taloth Saldono <Taloth@users.noreply.github.com>
2021-04-12 12:19:51 +01:00
Robin Dadswell
19d533b50a Fixed: Search Missing Movies on Calendar 2021-04-12 12:14:23 +01:00
bakerboy448
4ce98d689d New: Detect 'FRA' and 'FRE' as French Language
Fixes #6136
2021-04-09 21:18:10 +01:00
bakerboy448
ef9c1bf0a4 New: Detect 'castellano' as Spanish Language
Fixes #6152
2021-04-09 21:18:10 +01:00
bakerboy448
bec8312d61 remove a sonarr and show reference 2021-04-09 21:18:10 +01:00
Daniel Martin Gonzalez
ac5736c05b New: Add option to import from any Trakt user's personal list 2021-04-09 12:06:21 +01:00
Robin Dadswell
35abd99b3f Fixed: Some connection settings being invisibly enabled on creation 2021-04-08 15:21:01 +01:00
Florian
0fb8aabb41 Translated using Weblate (French) [skip ci]
Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2021-04-07 17:57:08 +00:00
Qstick
cbc14a1a2c New: Make Rarbg category selection more intuitive
[common]

Fixes #6138
Fixes #6139
2021-04-03 11:56:09 -04:00
kingii98
627ab64fd0 Translated using Weblate (Russian) [skip ci]
Currently translated at 99.1% (1069 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2021-04-02 19:56:52 +00:00
Anonymous
7fdfd0cfb7 Translated using Weblate (Arabic) [skip ci]
Currently translated at 99.7% (1075 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ar/
2021-04-01 16:57:14 +00:00
Anonymous
4052e7160c Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 99.3% (1071 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2021-04-01 16:57:14 +00:00
Anonymous
f5d3defa52 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2021-04-01 16:57:13 +00:00
Will Segatto
4cb87309b2 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2021-04-01 16:57:13 +00:00
Anonymous
c6ec9c316d Translated using Weblate (Thai) [skip ci]
Currently translated at 99.4% (1072 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/th/
2021-04-01 16:57:12 +00:00
Anonymous
fc26f78558 Translated using Weblate (Bulgarian) [skip ci]
Currently translated at 99.4% (1072 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/bg/
2021-04-01 16:57:11 +00:00
Anonymous
4eaad6ca4b Translated using Weblate (Hindi) [skip ci]
Currently translated at 99.4% (1072 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hi/
2021-04-01 16:57:10 +00:00
Anonymous
7abbe2c8c0 Translated using Weblate (Romanian) [skip ci]
Currently translated at 98.9% (1067 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ro/
2021-04-01 16:57:09 +00:00
Anonymous
40839424be Translated using Weblate (Vietnamese) [skip ci]
Currently translated at 99.4% (1072 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/vi/
2021-04-01 16:57:09 +00:00
Anonymous
3234cff09c Translated using Weblate (Turkish) [skip ci]
Currently translated at 99.0% (1068 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/tr/
2021-04-01 16:57:08 +00:00
Anonymous
d715bb4437 Translated using Weblate (Swedish) [skip ci]
Currently translated at 99.4% (1072 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2021-04-01 16:57:08 +00:00
Anonymous
df88d9a8bf Translated using Weblate (Russian) [skip ci]
Currently translated at 99.1% (1069 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2021-04-01 16:57:07 +00:00
Anonymous
a3f4695442 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2021-04-01 16:57:06 +00:00
Anonymous
321ce87d4d Translated using Weblate (Polish) [skip ci]
Currently translated at 99.3% (1071 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pl/
2021-04-01 16:57:05 +00:00
Anonymous
30e9a7a1b9 Translated using Weblate (Dutch) [skip ci]
Currently translated at 99.4% (1072 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2021-04-01 16:57:05 +00:00
Anonymous
f26b00444f Translated using Weblate (Korean) [skip ci]
Currently translated at 99.4% (1072 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ko/
2021-04-01 16:57:04 +00:00
Anonymous
e088a7258e Translated using Weblate (Japanese) [skip ci]
Currently translated at 99.4% (1072 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ja/
2021-04-01 16:57:03 +00:00
Anonymous
f705692fb7 Translated using Weblate (Icelandic) [skip ci]
Currently translated at 99.4% (1072 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/is/
2021-04-01 16:57:03 +00:00
Anonymous
92feeb49a6 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2021-04-01 16:57:02 +00:00
Anonymous
0d7d647291 Translated using Weblate (Hebrew) [skip ci]
Currently translated at 99.4% (1072 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/he/
2021-04-01 16:57:01 +00:00
Anonymous
2ddaef5c50 Translated using Weblate (Finnish) [skip ci]
Currently translated at 99.4% (1072 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fi/
2021-04-01 16:57:01 +00:00
Anonymous
0aaf0f702b Translated using Weblate (Greek) [skip ci]
Currently translated at 98.9% (1067 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/el/
2021-04-01 16:57:00 +00:00
Anonymous
97e9d64397 Translated using Weblate (Danish) [skip ci]
Currently translated at 99.0% (1068 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/da/
2021-04-01 16:56:59 +00:00
Anonymous
f1583dcb13 Translated using Weblate (Czech) [skip ci]
Currently translated at 99.4% (1072 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/cs/
2021-04-01 16:56:58 +00:00
Anonymous
dc4dbf4610 Translated using Weblate (Italian) [skip ci]
Currently translated at 97.3% (1049 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2021-04-01 16:56:58 +00:00
Anonymous
bb21798c42 Translated using Weblate (Spanish) [skip ci]
Currently translated at 99.7% (1075 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2021-04-01 16:56:57 +00:00
Anonymous
07b2890f30 Translated using Weblate (French) [skip ci]
Currently translated at 99.7% (1075 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2021-04-01 16:56:57 +00:00
Anonymous
d9534a857f Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1078 of 1078 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2021-04-01 16:56:51 +00:00
Robin Dadswell
2b17b5310e Fixed: Show size on disk when deleting movies 2021-03-31 13:03:49 +01:00
Anonymous
b330a15431 Translated using Weblate (Arabic) [skip ci]
Currently translated at 99.7% (1074 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ar/
2021-03-31 08:57:12 +00:00
Anonymous
ad79250783 Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 99.3% (1070 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2021-03-31 08:57:12 +00:00
Anonymous
845b96508f Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 99.0% (1067 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2021-03-31 08:57:11 +00:00
Anonymous
cff95eb251 Translated using Weblate (Thai) [skip ci]
Currently translated at 99.4% (1071 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/th/
2021-03-31 08:57:10 +00:00
Anonymous
d8542f4689 Translated using Weblate (Bulgarian) [skip ci]
Currently translated at 99.4% (1071 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/bg/
2021-03-31 08:57:10 +00:00
Anonymous
99642f15fe Translated using Weblate (Hindi) [skip ci]
Currently translated at 99.4% (1071 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hi/
2021-03-31 08:57:09 +00:00
Anonymous
5d1c600062 Translated using Weblate (Romanian) [skip ci]
Currently translated at 98.9% (1066 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ro/
2021-03-31 08:57:08 +00:00
Anonymous
5cee22f207 Translated using Weblate (Vietnamese) [skip ci]
Currently translated at 99.4% (1071 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/vi/
2021-03-31 08:57:07 +00:00
Anonymous
bb3871e9ea Translated using Weblate (Turkish) [skip ci]
Currently translated at 99.0% (1067 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/tr/
2021-03-31 08:57:06 +00:00
Anonymous
434c095c54 Translated using Weblate (Swedish) [skip ci]
Currently translated at 99.4% (1071 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2021-03-31 08:57:06 +00:00
Anonymous
4808fb1429 Translated using Weblate (Russian) [skip ci]
Currently translated at 99.1% (1068 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2021-03-31 08:57:05 +00:00
Anonymous
7dd6805512 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 99.8% (1075 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2021-03-31 08:57:04 +00:00
Anonymous
c31070ab91 Translated using Weblate (Polish) [skip ci]
Currently translated at 99.3% (1070 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pl/
2021-03-31 08:57:04 +00:00
Anonymous
e6974eb99e Translated using Weblate (Dutch) [skip ci]
Currently translated at 99.4% (1071 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2021-03-31 08:57:03 +00:00
Anonymous
a72e3d78d7 Translated using Weblate (Korean) [skip ci]
Currently translated at 99.4% (1071 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ko/
2021-03-31 08:57:03 +00:00
Anonymous
7c707babff Translated using Weblate (Japanese) [skip ci]
Currently translated at 99.4% (1071 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ja/
2021-03-31 08:57:02 +00:00
Anonymous
3b254fd54f Translated using Weblate (Icelandic) [skip ci]
Currently translated at 99.4% (1071 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/is/
2021-03-31 08:57:01 +00:00
Anonymous
d9e9df6c26 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1077 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2021-03-31 08:57:00 +00:00
Anonymous
c6b969cd61 Translated using Weblate (Hebrew) [skip ci]
Currently translated at 99.4% (1071 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/he/
2021-03-31 08:57:00 +00:00
Anonymous
5ccee34107 Translated using Weblate (Finnish) [skip ci]
Currently translated at 99.4% (1071 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fi/
2021-03-31 08:56:59 +00:00
Anonymous
b8724c384a Translated using Weblate (Greek) [skip ci]
Currently translated at 98.9% (1066 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/el/
2021-03-31 08:56:58 +00:00
Anonymous
acd82e36c5 Translated using Weblate (Danish) [skip ci]
Currently translated at 99.0% (1067 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/da/
2021-03-31 08:56:57 +00:00
Anonymous
afd2b7a29e Translated using Weblate (Czech) [skip ci]
Currently translated at 99.4% (1071 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/cs/
2021-03-31 08:56:57 +00:00
Anonymous
74a26b02db Translated using Weblate (Italian) [skip ci]
Currently translated at 97.3% (1048 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2021-03-31 08:56:53 +00:00
Anonymous
356926a445 Translated using Weblate (Spanish) [skip ci]
Currently translated at 99.7% (1074 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2021-03-31 08:56:52 +00:00
Anonymous
19128e70e7 Translated using Weblate (French) [skip ci]
Currently translated at 99.7% (1074 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2021-03-31 08:56:51 +00:00
Anonymous
aa75bc241d Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1077 of 1077 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2021-03-31 08:56:51 +00:00
Robin Dadswell
88780f33a4 New: Health Check for Downloads to Root Folder
[common]
2021-03-30 08:58:36 +01:00
Qstick
1ed30713f5 Fixed: Perform normal search when id search fails
Fixes #6123
2021-03-29 22:33:10 -04:00
Qstick
3b3dbfec60 Fixed: Default Newznab cats and descriptions
Fixes #5965
2021-03-29 22:33:10 -04:00
bakerboy448
e011614570 Update parser tests to be generic
closes #5889
2021-03-29 22:23:07 -04:00
Qstick
2a1b2187ba Update bug_report.md 2021-03-29 22:13:50 -04:00
bakerboy448
ea3a6171fa Fixed: Cleanse Notifiarr APIKey from logs
[common]
2021-03-29 22:09:22 -04:00
woiza
c9477d4b5a Added /rootfolder to swagger.json 2021-03-29 22:20:08 +01:00
ta264
cc466b9e5b Prompt upgrade to mono version on DSM and FreeBSD 2021-03-24 13:21:17 -04:00
bakerboy448
e9ece8a319 Fixed: Typos in Naming Modal 2021-03-24 13:19:02 -04:00
Mark McDowall
22a5304ad8 Fixed: Interactive import modal horizontal scrolling on Firefox mobile
(cherry picked from commit 6c505937dacfa82e965adaaac407c888a1caacce)
2021-03-24 00:30:30 -04:00
Qstick
bcb16d484a Fix discord link in issue template 2021-03-23 17:17:59 -04:00
servarr[bot]
50ebd283dd Fixed: Unnecessary idle cpu usage
sonarr ref 4386

(cherry picked from commit 5a69801877eb72899dd9867c39a1b88b7114fe5b)

Co-authored-by: Taloth Saldono <Taloth@users.noreply.github.com>
2021-03-22 23:21:15 +00:00
bakerboy448
53b9332675 Fixed: Qbittorrent api errors when only one of two seed criteria was configured
Fixed: Qbittorrent API errors when only one of two seed criteria was configured
2021-03-21 21:47:33 +00:00
Robin Dadswell
bfc969c45c New: TMDb Lists using V4 api 2021-03-20 21:08:45 +00:00
Csaba
31770cd889 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1076 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2021-03-19 23:56:47 +00:00
Robin Dadswell
6267497fc0 Fixed: User TMBd lists paging 2021-03-18 09:05:33 +00:00
Robin Dadswell
efeb216383 New: Import List by TMDb Company ID 2021-03-18 09:05:33 +00:00
Robin Dadswell
8eb0f33718 Pull Sonarr commit 'Log Skyhook connection failures with more info.' (#6060)
* Log Skyhook connection failures with more info.

(cherry picked from commit 6672650b6b5e152e82fb3ad38a0a158d66c0b83d)

* Log Skyhook connection failures with more info.

(cherry picked from commit f57cf1561beb7ee4a1b3afcdf391488fc7c04d02)

Co-authored-by: Taloth Saldono <Taloth@users.noreply.github.com>
2021-03-17 15:50:03 +00:00
Havok Dan
176bf7ce32 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 99.1% (1067 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2021-03-15 11:56:46 +00:00
Qstick
4340b6b922 Add a few more cutoff spec logs 2021-03-14 23:38:15 -04:00
Qstick
ec2c7ec5af Bump to Net 5.0.4 2021-03-14 23:07:49 -04:00
nitsua
f3fb67a62e Fixed: Setting seed criteria while torrent is still being loaded by qbittorrent
Taloth fixed, gitextension dropped the cherry pick link
2021-03-14 22:56:17 -04:00
Taloth Saldono
ec8d1c4ae6 Fixed post-install update check not running
(cherry picked from commit eea6be459d5dbfafb9a5285046282c25c4697242)
2021-03-14 22:54:01 -04:00
Anonymous
ea3e523f8d Translated using Weblate (Arabic) [skip ci]
Currently translated at 99.9% (1075 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ar/
2021-03-13 21:57:12 +00:00
Anonymous
e50550bb33 Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 99.5% (1071 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2021-03-13 21:57:11 +00:00
Anonymous
e0957bfd20 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 99.1% (1067 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2021-03-13 21:57:10 +00:00
Anonymous
582322adfb Translated using Weblate (Thai) [skip ci]
Currently translated at 99.6% (1072 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/th/
2021-03-13 21:57:10 +00:00
Anonymous
7a3964c42a Translated using Weblate (Bulgarian) [skip ci]
Currently translated at 99.6% (1072 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/bg/
2021-03-13 21:57:09 +00:00
Anonymous
b2f6c4dcdc Translated using Weblate (Hindi) [skip ci]
Currently translated at 99.6% (1072 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hi/
2021-03-13 21:57:07 +00:00
Anonymous
45f8700689 Translated using Weblate (Romanian) [skip ci]
Currently translated at 99.1% (1067 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ro/
2021-03-13 21:57:06 +00:00
Anonymous
7c5fe561e0 Translated using Weblate (Vietnamese) [skip ci]
Currently translated at 99.6% (1072 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/vi/
2021-03-13 21:57:06 +00:00
Anonymous
5145a4a211 Translated using Weblate (Turkish) [skip ci]
Currently translated at 99.2% (1068 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/tr/
2021-03-13 21:57:05 +00:00
Anonymous
2aa2164763 Translated using Weblate (Swedish) [skip ci]
Currently translated at 99.6% (1072 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2021-03-13 21:57:04 +00:00
Anonymous
05bde70b14 Translated using Weblate (Russian) [skip ci]
Currently translated at 99.3% (1069 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2021-03-13 21:57:03 +00:00
Anonymous
d8c138694d Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (1076 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2021-03-13 21:57:02 +00:00
Anonymous
ad8504fa89 Translated using Weblate (Polish) [skip ci]
Currently translated at 99.5% (1071 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pl/
2021-03-13 21:57:02 +00:00
Anonymous
2f26a955d1 Translated using Weblate (Dutch) [skip ci]
Currently translated at 99.6% (1072 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2021-03-13 21:57:01 +00:00
Anonymous
3d7808745b Translated using Weblate (Korean) [skip ci]
Currently translated at 99.6% (1072 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ko/
2021-03-13 21:57:00 +00:00
Anonymous
1d7082593d Translated using Weblate (Japanese) [skip ci]
Currently translated at 99.6% (1072 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ja/
2021-03-13 21:57:00 +00:00
Anonymous
82420d6956 Translated using Weblate (Icelandic) [skip ci]
Currently translated at 99.6% (1072 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/is/
2021-03-13 21:56:59 +00:00
Anonymous
77b84be8d1 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1076 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2021-03-13 21:56:58 +00:00
Anonymous
24330beca9 Translated using Weblate (Hebrew) [skip ci]
Currently translated at 99.6% (1072 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/he/
2021-03-13 21:56:57 +00:00
Anonymous
dd50f1c564 Translated using Weblate (Finnish) [skip ci]
Currently translated at 99.6% (1072 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fi/
2021-03-13 21:56:56 +00:00
Anonymous
4f63015a3e Translated using Weblate (Greek) [skip ci]
Currently translated at 99.1% (1067 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/el/
2021-03-13 21:56:56 +00:00
Anonymous
568185c908 Translated using Weblate (Danish) [skip ci]
Currently translated at 99.2% (1068 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/da/
2021-03-13 21:56:55 +00:00
Anonymous
b56525de27 Translated using Weblate (Czech) [skip ci]
Currently translated at 99.6% (1072 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/cs/
2021-03-13 21:56:54 +00:00
Anonymous
4673736b67 Translated using Weblate (Italian) [skip ci]
Currently translated at 97.4% (1049 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2021-03-13 21:56:54 +00:00
Anonymous
ffae7d6b31 Translated using Weblate (Spanish) [skip ci]
Currently translated at 99.9% (1075 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2021-03-13 21:56:53 +00:00
Anonymous
42146fc366 Translated using Weblate (French) [skip ci]
Currently translated at 99.9% (1075 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2021-03-13 21:56:46 +00:00
Anonymous
de6a465370 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1076 of 1076 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2021-03-13 21:56:45 +00:00
bakerboy448
bef12f10a8 Fixed: Missing Translates 2021-03-12 16:19:35 -05:00
bakerboy448
8064a43dee Fixed: Updates to System > More Info 2021-03-12 16:19:35 -05:00
nitsua
3c2e127601 Add a donations section to System for each arr
[Common]
2021-03-12 08:43:59 -05:00
ta264
6ea370870d Don't fail build on BSD integration test fail 2021-03-11 00:18:42 +00:00
servarr[bot]
f6f8934ce3 Make it clearer that Maximum size is the global limit.
(cherry picked from commit a848e575cd37eb3cc421a66fc6b4bbfb26782d8e)

Co-authored-by: Taloth Saldono <Taloth@users.noreply.github.com>
2021-03-10 22:21:48 +00:00
Will Segatto
3c59b6aac0 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (1073 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2021-03-09 23:56:43 +00:00
Robin Dadswell
2e0d603f4a Fixed: Spelling of Separate in Email Notification Settings 2021-03-09 22:23:11 +00:00
Mark McDowall
e8972f2273 Fixed: Don't set cookies for static resources
(cherry picked from commit 6619350f87a8f6ddedfea0cc8ca5b1e9ab006091)
2021-03-09 07:19:32 -05:00
Robin Dadswell
578ce25166 Fix: Consistent SSL option for Download Clients
Closes #4323

(cherry picked from commit 85f4cbe94c6f00352e0d4a38f337fb9417d3032b)
2021-03-08 22:59:11 +00:00
Mark McDowall
fc12770495 Fixed: Set SameSite=Strict for SonarrAuth cookie
(cherry picked from commit 675c72f02e7565a937b40c23ec27df6d86f95dc3)
2021-03-08 00:00:35 -05:00
Mark McDowall
5d5e66f0d7 Fixed: Cache headers for static resources
Towards #4356

(cherry picked from commit efd9fe9ad0f08aa55a59a3b8365d8bdd471ffa8b)
2021-03-07 20:14:23 -05:00
Mark McDowall
fe2af13fae Just one Application Version header
(cherry picked from commit ab502ffda41aaae8bccaa4f33c62e3fca61b277f)
2021-03-07 20:13:44 -05:00
Robin Dadswell
10205da1c3 Generalized RateLimit logic to all indexers based on indexer id
Co-authored-by: Taloth Saldono <Taloth@users.noreply.github.com>
2021-03-07 23:28:37 +00:00
Robin Dadswell
914d3764dc linting fix 2021-03-07 17:39:02 -05:00
Mark McDowall
59f8a4d2e2 Fixed: Remove selected in queue
(cherry picked from commit 4ed5fefcc6e362cb5c62ec639ee64571c97f9b5b)
2021-03-07 17:17:30 -05:00
Taloth Saldono
024000275d Added mechanism for package maintainers to produce a health check error.
(cherry picked from commit 7da02c236aa03e6aef011130526040c1cb8399fc)
2021-03-07 11:14:40 -05:00
Mark McDowall
a3723b5ad7 Fixed: Restoring a backup with a different API didn't reload properly 2021-03-07 10:58:26 -05:00
Qstick
e9e034d193 Fixed: Removal of previous service
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2021-03-07 10:54:23 -05:00
Mark McDowall
52dbcfe852 Fixed: Queue refresh closing manual import from queue if items change
(cherry picked from commit e9818b9982d868648d714a37527f1b066486c5df)
2021-03-07 09:31:40 -05:00
Anonymous
f488fe75e0 Translated using Weblate (Hebrew) [skip ci]
Currently translated at 99.6% (1069 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/he/
2021-03-06 23:57:10 +00:00
Anonymous
47e85e6388 Translated using Weblate (Finnish) [skip ci]
Currently translated at 99.6% (1069 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fi/
2021-03-06 23:57:09 +00:00
Anonymous
3264de3a96 Translated using Weblate (Polish) [skip ci]
Currently translated at 99.5% (1068 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pl/
2021-03-06 23:57:08 +00:00
Anonymous
1c04aad92e Translated using Weblate (Greek) [skip ci]
Currently translated at 99.1% (1064 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/el/
2021-03-06 23:57:07 +00:00
Anonymous
3b2cf55788 Translated using Weblate (Danish) [skip ci]
Currently translated at 99.2% (1065 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/da/
2021-03-06 23:57:06 +00:00
Anonymous
b66ce95139 Translated using Weblate (Russian) [skip ci]
Currently translated at 99.3% (1066 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2021-03-06 23:57:06 +00:00
Anonymous
f6753bf2c2 Translated using Weblate (Arabic) [skip ci]
Currently translated at 99.9% (1072 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ar/
2021-03-06 23:57:04 +00:00
Anonymous
2a981c3bbc Translated using Weblate (Portuguese) [skip ci]
Currently translated at 99.9% (1072 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2021-03-06 23:57:03 +00:00
Anonymous
82004b6535 Translated using Weblate (French) [skip ci]
Currently translated at 99.9% (1072 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2021-03-06 23:57:03 +00:00
Anonymous
eb36a1c134 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 99.1% (1064 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2021-03-06 23:57:02 +00:00
Anonymous
02109437e4 Translated using Weblate (Spanish) [skip ci]
Currently translated at 99.9% (1072 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2021-03-06 23:57:01 +00:00
Anonymous
38872ffc0a Translated using Weblate (Vietnamese) [skip ci]
Currently translated at 99.6% (1069 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/vi/
2021-03-06 23:57:00 +00:00
Anonymous
5e940330b4 Translated using Weblate (Bulgarian) [skip ci]
Currently translated at 99.6% (1069 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/bg/
2021-03-06 23:56:59 +00:00
Anonymous
53b3b58477 Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 99.5% (1068 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2021-03-06 23:56:58 +00:00
Anonymous
d6101259ad Translated using Weblate (Dutch) [skip ci]
Currently translated at 99.6% (1069 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2021-03-06 23:56:57 +00:00
Anonymous
cf94178623 Translated using Weblate (Swedish) [skip ci]
Currently translated at 99.6% (1069 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2021-03-06 23:56:56 +00:00
Anonymous
999f6cbcd3 Translated using Weblate (Thai) [skip ci]
Currently translated at 99.6% (1069 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/th/
2021-03-06 23:56:55 +00:00
Anonymous
f0191525a1 Translated using Weblate (Czech) [skip ci]
Currently translated at 99.6% (1069 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/cs/
2021-03-06 23:56:54 +00:00
Anonymous
596803cf0b Translated using Weblate (Romanian) [skip ci]
Currently translated at 99.1% (1064 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ro/
2021-03-06 23:56:53 +00:00
Anonymous
e90465c4ae Translated using Weblate (Hindi) [skip ci]
Currently translated at 99.6% (1069 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hi/
2021-03-06 23:56:52 +00:00
Anonymous
0c21467411 Translated using Weblate (Icelandic) [skip ci]
Currently translated at 99.6% (1069 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/is/
2021-03-06 23:56:51 +00:00
Anonymous
d9d1d8ecad Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1073 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2021-03-06 23:56:50 +00:00
Anonymous
d9faeb11c2 Translated using Weblate (Japanese) [skip ci]
Currently translated at 99.6% (1069 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ja/
2021-03-06 23:56:50 +00:00
Anonymous
7b13ec0dbd Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1073 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2021-03-06 23:56:49 +00:00
Anonymous
6ffc57c106 Translated using Weblate (Italian) [skip ci]
Currently translated at 97.4% (1046 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2021-03-06 23:56:48 +00:00
Anonymous
ee1bcb20dc Translated using Weblate (Korean) [skip ci]
Currently translated at 99.6% (1069 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ko/
2021-03-06 23:56:47 +00:00
Anonymous
19d8604022 Translated using Weblate (Turkish) [skip ci]
Currently translated at 99.2% (1065 of 1073 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/tr/
2021-03-06 23:56:46 +00:00
Robin Dadswell
5926ca5d8a New: On Movie Delete and On Movie File Delete Notifications 2021-03-05 23:30:08 +00:00
Qstick
24de3fdee6 Remove trailing whitespace in HttpResponce 2021-03-04 13:29:15 -05:00
Qstick
be40a0d738 Run Analysis on Linux main build (leaving in failed state to test) 2021-03-04 13:16:44 -05:00
Florian
2b97352661 Translated using Weblate (French) [skip ci]
Currently translated at 99.9% (1067 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2021-03-04 12:56:42 +00:00
Qstick
88bc44f7ba Handle 303 and 307 redirects in Http Requests
(cherry picked from commit d6cf370bcdf0aa0d11010c5791332986afb50ddd)
2021-03-03 23:46:51 -05:00
nameproof
95527218af Translated using Weblate (Swedish) [skip ci]
Currently translated at 99.6% (1064 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2021-03-02 20:56:42 +00:00
Qstick
8a062d1cba Fixed: Remove AwesomeHD
Fixes #5978
2021-02-28 21:30:33 -05:00
Qstick
4acd885f19 Fixed: Cleanse Tracker Announce Keys from logs
Co-Authored-By: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2021-02-28 21:30:33 -05:00
Qstick
a19c292779 Update Contributing [skip ci] 2021-02-28 21:11:10 -05:00
Qstick
aa9880b8dd New: Trakt Recommended Lists
Fixes #5980

Co-Authored-By: Michael Casey <7644535+Snarkenfaugister@users.noreply.github.com>
2021-02-28 21:09:15 -05:00
Qstick
abe8a06c11 Add Parse endpoint to V3 API 2021-02-28 20:51:48 -05:00
bakerboy448
7ea749e93c Fixed: TMDB link in discord notifcation from .com to .org
Closes: #5975
2021-02-26 16:50:59 -05:00
Qstick
f85fc5e578 Update Discord link on MoreInfo page 2021-02-26 12:38:43 -05:00
Mathieu Gagné
20e3a357a5 Updates typo 2021-02-25 21:50:14 -05:00
Qstick
60ac9d3ad7 Update Readme Discord Link 2021-02-24 21:55:58 -05:00
jpalenz77
e5fc423f29 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (1068 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2021-02-24 13:56:41 +00:00
Qstick
3f5ff23210 Update NuGet.config 2021-02-21 13:37:59 -05:00
nitsua
a9792973ee Fixed: Mark as Failed errors (#5939)
Originally by Markus McDowall (cherry picked from commit 12fafb24578d39df2eabd2331558b2da961fe8b6)

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>

Fixes: #5907
Fixes: #5938
2021-02-14 10:28:30 -05:00
Qstick
90289de22c Fix Import List Root Folder Check to run on Import List update 2021-02-14 01:49:21 -05:00
Qstick
a68011988e Fixed: Error checking if files should be deleted after import won't leave import in limbo
Fixes #5917

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2021-02-14 01:19:25 -05:00
Mark McDowall
2fd030bd5c New: Health check for import lists with missing root folders
New: Show missing root folder path in edit for Import List

Closes #5908

(cherry picked from commit ae196af2ad368d49fde2358f0987ed7650c7f29c)
2021-02-14 01:16:36 -05:00
Mark McDowall
33cd9f555e Fixed: Unable to close indexer category select input on mobile
(cherry picked from commit e42d1af5ff8f3eb987195caa7ec8a0bbaf4a00c3)
2021-02-14 01:16:36 -05:00
Robin Dadswell
94df76b6e6 Added default state for release date and cinema release on poster view (#5932) 2021-02-14 01:11:50 -05:00
woiza
065846464d Added RootFolderPath prop in swagger.json (#5880) [skip ci] 2021-02-14 01:01:27 -05:00
ta264
108609d064 New: .NET 5 support for FreeBSD 11+ 2021-02-11 09:17:33 +00:00
nitsua
0fcad533eb Fixed maintenance release not showing as such in AppUpdatedModal
Originally by Taloth 4559eed0ecf4b87b8aa16a86d2161ac72fbf54e5
2021-02-10 16:32:38 -05:00
ta264
c7b5a42bea Bump to .net to 5.0.3 2021-02-10 12:44:44 +00:00
bakerboy448
fa6b7ad287 Fixed: Map 4k H265 releases as 4k 2021-02-08 12:55:18 -05:00
bakerboy448
b51ce06e04 Fixed: Correctly Map 2160p releases that are BRRips as 2160p
Closes #5639
2021-02-08 12:55:18 -05:00
Mark McDowall
63cf10c29a Fixed: Restoring backup from zip file on disk
(cherry picked from commit 5960035d5d660a923e11b0300833b60c64271522)
2021-02-08 12:33:46 -05:00
Qstick
6b5e743583 Fixed: Don't ignore default Boolean in db serialization 2021-02-08 10:35:16 -05:00
Mark McDowall
743946b929 Update column properties when restoring persisted state
(cherry picked from commit 653db8290e0a7737348d911d322c4218c3b5b677)
2021-02-07 20:41:04 -05:00
Qstick
cf89533b37 Translated using Weblate (Arabic) [skip ci]
Currently translated at 100.0% (1068 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ar/
2021-02-07 23:30:46 +00:00
Qstick
7031a8fe44 Added translation using Weblate (Arabic) [skip ci] 2021-02-07 23:26:19 +00:00
Matt Evans
d8c962a911 Fixed: Detect Dolby Vision as HDR
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>

#5860
2021-02-07 17:24:12 -05:00
Qstick
6702c7d21b New: Add Arabic Language
Fixes #5883
2021-02-07 17:13:57 -05:00
Qstick
e64dd799e6 Add API Integration tests to ensure RemoteUrl is really remote 2021-02-07 17:04:44 -05:00
Qstick
47c2a15b70 Fixed: RemoteUrl overridden for Movie call with TmdbId param 2021-02-07 16:13:56 -05:00
Mark McDowall
4bf726cc66 Fixed: Table column order resetting after refresh
#4297

(cherry picked from commit 044cb563a6488c16916ea7617d1f91404330b06f)
2021-02-07 15:34:28 -05:00
Qstick
dd61480d60 Fixed: Settings fields being altered during save
[common]
Fixes #5871
2021-02-07 10:09:46 -05:00
Qstick
b0753ab153 Fix DownloadStation integration in DSM 7
[common]
Fixes #5567
2021-02-07 08:58:29 -05:00
TheCatLady
281afe7d9d Fix typo 2021-02-06 21:22:50 -05:00
TheCatLady
bd0fe16b52 Handle additional groups/encoders that do not follow -RlsGrp format 2021-02-06 21:22:50 -05:00
ta264
901723b8e3 New: Log out body for bad API requests 2021-02-06 21:21:43 -05:00
ta264
3a146ea667 Fixed: Adding indexers from presets 2021-02-06 21:21:43 -05:00
bakerboy448
88b9a47c79 bump chrome driver from 86 to 88
(cherry picked from commit d7813c2255b05e68931503a61c214fa2efc4bde8)
2021-02-06 16:07:23 -05:00
bakerboy448
fe5445ba31 update FR template [skip ci] 2021-02-06 11:26:58 -05:00
foXaCe
39f08b6283 Translated using Weblate (French) [skip ci]
Currently translated at 100.0% (1068 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2021-02-06 05:40:42 +00:00
Qstick
8831fd7b50 Fixed: Grab ImdbId and TmdbId from Rarbg results 2021-02-05 00:06:15 -05:00
Qstick
70e4324a7c Add crossorigin use-credentials attribute to manifest tag
[common]
Fixes #5863
2021-02-04 23:04:26 -05:00
Qstick
35a53c5627 New: Store FileId on Import History Events 2021-02-04 22:22:26 -05:00
Qstick
9b85f328a6 New: Allow Manual Search when Movie not monitored
Fixes #3235
2021-02-04 21:20:32 -05:00
bakerboy448
012fe53acc Fixed: Don't Parse TMDb id and IMDb id as group 2021-02-04 21:05:02 -05:00
bakerboy448
566c1405c2 New: Handle select groups that do not follow -RlsGrp format
Closes #3550
2021-02-04 21:05:02 -05:00
Qstick
83c637e8cb Fixed: Two VideoCodec naming token options
Fixes #5862
2021-02-04 20:54:44 -05:00
ta264
fd612f9258 Bump Dapper to 2.0.78 2021-02-04 20:22:04 -05:00
ta264
621edba82d New: Faster initial movie load 2021-02-04 20:22:04 -05:00
ta264
f03dfda2f0 New: Use System.Text.Json for Nancy and SignalR 2021-02-04 20:22:04 -05:00
Csaba
e623efefd3 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1068 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2021-02-04 09:40:41 +00:00
Qstick
7742a81782 Fixed: Use Tag Label instead of db Id for Kodi Metadata
Fixes #5713
2021-02-03 23:42:48 -05:00
Taloth Saldono
8588d2e2a3 Fixed: Validation of new qbittorrent max-ratio action config
(cherry picked from commit d1c3ae17491726320c58561548a21d83dae7fe7d)
2021-02-03 23:34:12 -05:00
bakerboy448
86c5f06c5b Fixed: Awesome HD website link updated (#5832) 2021-02-02 22:50:33 -05:00
nitsua
6d7fb3de25 Fixed: Status on search showing queue status instead of missing (#5854)
Fix status on search to show a downloading status when it is in queue
Fix for monitor not being set to true when adding from search
2021-02-02 21:57:27 -05:00
Qstick
a0d2af54e8 Fixed: Naming Token Regex can fail on certain Cultures (#5855)
[common]
2021-02-02 21:45:13 -05:00
Qstick
ad3ddd11cf [API Docs] Document Queue endpoints 2021-02-02 21:42:25 -05:00
foXaCe
1372abecc0 Translated using Weblate (French) [skip ci]
Currently translated at 99.9% (1067 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2021-02-02 23:40:48 +00:00
Havok Dan
3ddbd30604 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 99.2% (1060 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2021-02-02 23:40:42 +00:00
reloxx
eff2e11652 Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1068 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2021-02-02 23:40:41 +00:00
Qstick
aa95781d5d Fixed: RootFolders may not load when adding collections
Fixes #5753
2021-02-01 23:20:30 -05:00
Taloth Saldono
6e46720d7b Fixed: FLAC audio channels in media info
(cherry picked from commit ab45910e5643aa8390797ae98af94eac690b3bb5)
2021-02-01 13:08:57 -05:00
Anonymous
7e70166b62 Translated using Weblate (Turkish) [skip ci]
Currently translated at 99.3% (1061 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/tr/
2021-01-31 07:45:10 +00:00
Anonymous
444305aa65 Translated using Weblate (Danish) [skip ci]
Currently translated at 99.3% (1061 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/da/
2021-01-31 07:45:09 +00:00
Anonymous
8fd1f75e21 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 98.9% (1057 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2021-01-31 07:45:07 +00:00
Anonymous
625cdab04a Translated using Weblate (Romanian) [skip ci]
Currently translated at 99.2% (1060 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ro/
2021-01-31 07:45:07 +00:00
Anonymous
325a9c34e3 Translated using Weblate (Hindi) [skip ci]
Currently translated at 99.7% (1065 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hi/
2021-01-31 07:45:06 +00:00
Anonymous
a7e4078c53 Translated using Weblate (German) [skip ci]
Currently translated at 99.7% (1065 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2021-01-31 07:45:04 +00:00
Anonymous
d2bfddc182 Translated using Weblate (Italian) [skip ci]
Currently translated at 97.5% (1042 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2021-01-31 07:45:03 +00:00
Anonymous
a6777015f7 Translated using Weblate (Hebrew) [skip ci]
Currently translated at 99.7% (1065 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/he/
2021-01-31 07:45:02 +00:00
Anonymous
f8b211c561 Translated using Weblate (Polish) [skip ci]
Currently translated at 99.6% (1064 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pl/
2021-01-31 07:45:01 +00:00
Anonymous
fce86db9c5 Translated using Weblate (Russian) [skip ci]
Currently translated at 99.4% (1062 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2021-01-31 07:45:00 +00:00
Anonymous
2ff07a1368 Translated using Weblate (Czech) [skip ci]
Currently translated at 99.7% (1065 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/cs/
2021-01-31 07:44:58 +00:00
Anonymous
208b17e9f5 Translated using Weblate (Thai) [skip ci]
Currently translated at 99.7% (1065 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/th/
2021-01-31 07:44:57 +00:00
Anonymous
e0ce7b3294 Translated using Weblate (Spanish) [skip ci]
Currently translated at 99.9% (1067 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2021-01-31 07:44:56 +00:00
Anonymous
7af75da694 Translated using Weblate (Finnish) [skip ci]
Currently translated at 99.7% (1065 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fi/
2021-01-31 07:44:55 +00:00
Anonymous
86213d91a2 Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 99.6% (1064 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2021-01-31 07:44:54 +00:00
Anonymous
eed4a4ec68 Translated using Weblate (Swedish) [skip ci]
Currently translated at 99.7% (1065 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2021-01-31 07:44:53 +00:00
Anonymous
24d4390550 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 99.9% (1067 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2021-01-31 07:44:52 +00:00
Anonymous
4983cb9745 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 99.9% (1067 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2021-01-31 07:44:51 +00:00
Anonymous
e71e386cb1 Translated using Weblate (Korean) [skip ci]
Currently translated at 99.7% (1065 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ko/
2021-01-31 07:44:50 +00:00
Anonymous
d03a37ed60 Translated using Weblate (Icelandic) [skip ci]
Currently translated at 99.7% (1065 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/is/
2021-01-31 07:44:49 +00:00
Anonymous
5ea88f6bcd Translated using Weblate (Greek) [skip ci]
Currently translated at 99.2% (1060 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/el/
2021-01-31 07:44:48 +00:00
Anonymous
d74415a3d7 Translated using Weblate (Bulgarian) [skip ci]
Currently translated at 99.7% (1065 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/bg/
2021-01-31 07:44:46 +00:00
Anonymous
f4deefd21e Translated using Weblate (Dutch) [skip ci]
Currently translated at 99.7% (1065 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2021-01-31 07:44:45 +00:00
Anonymous
6296356e42 Translated using Weblate (French) [skip ci]
Currently translated at 99.9% (1067 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2021-01-31 07:44:44 +00:00
Anonymous
a777880a91 Translated using Weblate (Vietnamese) [skip ci]
Currently translated at 99.7% (1065 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/vi/
2021-01-31 07:44:43 +00:00
Anonymous
eb311f33ef Translated using Weblate (Japanese) [skip ci]
Currently translated at 99.7% (1065 of 1068 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ja/
2021-01-31 07:44:42 +00:00
bakerboy448
34ba436204 New: Additional Discover Enhancements 2021-01-31 02:16:32 -05:00
bakerboy448
45bb108127 Fixed: Movie Recommendations not excluding movies on the exclusion list 2021-01-31 02:16:32 -05:00
Taloth Saldono
0443cc34c6 Fixed enter in modal confirmation dialogs
(cherry picked from commit 930742ae2c69a530afe60f76a5824f2722540df8)
2021-01-31 02:12:27 -05:00
Mark McDowall
6ad6bf270f New: Parsing of '[WEB]' as WebDL
Fixes #5742

(cherry picked from commit ba2ca7ee2929f8ed5411e11e9a96001a37723dcc)
2021-01-31 02:02:42 -05:00
Jesse Chan
2237624333 Initial support for Flood (#5552)
* Initial support for Flood

* Flip StartOnAdd to AddPaused
2021-01-31 01:46:01 -05:00
Robin Dadswell
39d11b4669 replaced words with icons and matched the sort for consistency 2021-01-31 01:44:42 -05:00
Robin Dadswell
70faa123ee capitlisation 2021-01-31 01:44:42 -05:00
Robin Dadswell
f4869e6bc9 added words next to the release dates 2021-01-31 01:44:42 -05:00
Robin Dadswell
2a3fc81b8a added translation 2021-01-31 01:44:42 -05:00
Robin Dadswell
a2182e2fca removed unnecessary lines 2021-01-31 01:44:42 -05:00
Robin Dadswell
fe23c985a2 linting fixes 2021-01-31 01:44:42 -05:00
Robin Dadswell
4ffd0d2ddb Added missed property 2021-01-31 01:44:42 -05:00
Robin Dadswell
efd3aad6b0 started adding new option for cinema release 2021-01-31 01:44:42 -05:00
Robin Dadswell
11b4967629 tidied up unnecesarry lines and added translation line 2021-01-31 01:44:42 -05:00
Robin Dadswell
b6e46ad8fd updated date order to be InCinemas and then the earlier of either Physical/Digital Release 2021-01-31 01:44:42 -05:00
Robin Dadswell
c28b62da2a added sort by calculated release date 2021-01-31 01:44:42 -05:00
Robin Dadswell
600c7e3391 fixed releasedate sorting for inCinemas/digitalRelease/physicalRelease 2021-01-31 01:44:42 -05:00
Robin Dadswell
7107aeaddc minor fixes based on feedback 2021-01-31 01:44:42 -05:00
Robin Dadswell
913766f9af tidied up to only have getRelativeDate once per item 2021-01-31 01:44:42 -05:00
Robin Dadswell
9e7ea6f55b linting fix 2021-01-31 01:44:42 -05:00
Robin Dadswell
c2c4186965 formatted date 2021-01-31 01:44:42 -05:00
Robin Dadswell
1a755bd3c0 added option and start of info 2021-01-31 01:44:42 -05:00
Qstick
e5f66da087 New: Don't process files during Manual Import if there are more than 100 items
Fixes #5357

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2021-01-31 01:17:01 -05:00
Qstick
2a93686360 New: Reprocess items after selection in Manual Import
Fixes #5199

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2021-01-31 01:06:39 -05:00
Qstick
f33f004aa9 Fixed: Sorting interactive search by quality for unknown movie results
Fixes #5026
2021-01-31 00:39:44 -05:00
Qstick
30293bc7cc Cleanup MoviesSearchService 2021-01-30 23:24:52 -05:00
Qstick
a1db7a8f1e Fixed: Sorting in Interactive search duplicates results
Fixes #5760
Fixes #5765

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2021-01-30 22:47:06 -05:00
Qstick
539fcb91c9 Bump Version to 3.1.0 2021-01-30 22:28:16 -05:00
Taloth Saldono
970848acc3 Fixed: OSX version detection
Fixes #5615
2021-01-30 22:27:08 -05:00
Mark McDowall
2b7a383886 Fixed: Managing display profiles on mobile
Fixes #5761

(cherry picked from commit c2fcdb445776d3898be7938216cf8ace65a1a236)
2021-01-30 22:22:25 -05:00
Qstick
4dc67c027b Fixed accounting for zero terminator in long path limitation
Fixes #5763

Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2021-01-30 22:20:39 -05:00
Taloth Saldono
a12395b468 Cleanup Movie Scanned Handler 2021-01-30 22:16:37 -05:00
Qstick
19dceb35fa Better task interval fetching
Fixes #5700

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2021-01-30 22:04:15 -05:00
Qstick
b56043504b Simplify Quality size limit logic
Fixes #5701
2021-01-30 22:01:29 -05:00
Qstick
f2efdd8b6d Update indexer category parameters for the other nyaa
Fixes #5372
2021-01-30 22:01:04 -05:00
foXaCe
13b14f4d38 Translated using Weblate (French) [skip ci]
Currently translated at 100.0% (1062 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2021-01-31 00:40:46 +00:00
bakerboy448
ecc2996669 Fix: Correct wording for Blacklist Help Text 2021-01-30 19:40:41 -05:00
Taloth Saldono
1df31f9059 Fixed duplicate UpdateHistory items
(cherry picked from commit ad9e709d96a4c8635f52e9ee8623fa805e628de6)
2021-01-30 16:05:03 -05:00
Mark McDowall
79d4e0da80 Fixed: Update modal error
(cherry picked from commit 6d911581c3604a69b4a58c07da39ffb2a10fbf8d)
2021-01-30 16:05:03 -05:00
Taloth Saldono
0dcb07f170 Fixed corrupt Update History due to date-time notation 2021-01-30 16:05:03 -05:00
Taloth Saldono
e8040a0819 Fixed test 2021-01-30 16:05:03 -05:00
Qstick
553a8f2a0a New: Show previously installed version in Updates UI
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2021-01-30 16:05:03 -05:00
Qstick
c892b827af Fixed: Don't run recommendations if Sqlite < 3.9
Fixes #5833
2021-01-30 14:40:44 -05:00
bakerboy448
1b36b512d7 fix sonarresque references 2021-01-28 14:25:13 -05:00
ta264
560dc1ffed Fix logging of startup location 2021-01-27 19:17:45 +00:00
ta264
14d43e6d6b Fixed: Built-in updater for mono version
The change to set ExecutingApplication in 26a04c9fd broke mono - it
returned the location of the mono executable and not radarr.

It seems that there was a change in behaviour in net5.0 which means we
can no longer use the same code in both cases.
2021-01-27 19:17:45 +00:00
Anonymous
bc1e131e49 Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 99.7% (1059 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/zh_CN/
2021-01-27 18:40:59 +00:00
Anonymous
61509b53d1 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 99.0% (1052 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2021-01-27 18:40:58 +00:00
Anonymous
b7f680ac98 Translated using Weblate (Thai) [skip ci]
Currently translated at 99.8% (1060 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/th/
2021-01-27 18:40:58 +00:00
Anonymous
c9526b7dfd Translated using Weblate (Bulgarian) [skip ci]
Currently translated at 99.8% (1060 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/bg/
2021-01-27 18:40:57 +00:00
Anonymous
9f6bca0810 Translated using Weblate (Hindi) [skip ci]
Currently translated at 99.8% (1060 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hi/
2021-01-27 18:40:56 +00:00
Anonymous
114549ca7b Translated using Weblate (Romanian) [skip ci]
Currently translated at 99.3% (1055 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ro/
2021-01-27 18:40:55 +00:00
Anonymous
481863ca1f Translated using Weblate (Vietnamese) [skip ci]
Currently translated at 99.8% (1060 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/vi/
2021-01-27 18:40:54 +00:00
Anonymous
13e55f7c37 Translated using Weblate (Turkish) [skip ci]
Currently translated at 99.4% (1056 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/tr/
2021-01-27 18:40:54 +00:00
Anonymous
397442f32e Translated using Weblate (Swedish) [skip ci]
Currently translated at 99.8% (1060 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2021-01-27 18:40:53 +00:00
Anonymous
71ae27fc0c Translated using Weblate (Russian) [skip ci]
Currently translated at 99.5% (1057 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ru/
2021-01-27 18:40:53 +00:00
Anonymous
286468e6ab Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (1062 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2021-01-27 18:40:52 +00:00
Will Segatto
aafd82ba73 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 100.0% (1062 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt/
2021-01-27 18:40:52 +00:00
Anonymous
cff5c03af3 Translated using Weblate (Polish) [skip ci]
Currently translated at 99.7% (1059 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pl/
2021-01-27 18:40:51 +00:00
Anonymous
c394fcc085 Translated using Weblate (Dutch) [skip ci]
Currently translated at 99.8% (1060 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2021-01-27 18:40:50 +00:00
Anonymous
a6f237bd70 Translated using Weblate (Korean) [skip ci]
Currently translated at 99.8% (1060 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ko/
2021-01-27 18:40:50 +00:00
Anonymous
013915be62 Translated using Weblate (Japanese) [skip ci]
Currently translated at 99.8% (1060 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/ja/
2021-01-27 18:40:49 +00:00
Anonymous
9bec7d2ad0 Translated using Weblate (Icelandic) [skip ci]
Currently translated at 99.8% (1060 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/is/
2021-01-27 18:40:49 +00:00
Anonymous
808797f403 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (1062 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/hu/
2021-01-27 18:40:48 +00:00
Anonymous
230a3df3f3 Translated using Weblate (Hebrew) [skip ci]
Currently translated at 99.8% (1060 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/he/
2021-01-27 18:40:47 +00:00
Anonymous
26f2b6a3d9 Translated using Weblate (Finnish) [skip ci]
Currently translated at 99.8% (1060 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fi/
2021-01-27 18:40:47 +00:00
Anonymous
e039dd81df Translated using Weblate (Greek) [skip ci]
Currently translated at 99.3% (1055 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/el/
2021-01-27 18:40:46 +00:00
Anonymous
cd6dd33359 Translated using Weblate (Danish) [skip ci]
Currently translated at 99.4% (1056 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/da/
2021-01-27 18:40:45 +00:00
Anonymous
8803ef4dbd Translated using Weblate (Czech) [skip ci]
Currently translated at 99.8% (1060 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/cs/
2021-01-27 18:40:45 +00:00
Anonymous
5f0b2c91a1 Translated using Weblate (Italian) [skip ci]
Currently translated at 97.6% (1037 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/it/
2021-01-27 18:40:45 +00:00
Anonymous
1684fbb119 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (1062 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2021-01-27 18:40:41 +00:00
Anonymous
326bcdc18c Translated using Weblate (French) [skip ci]
Currently translated at 96.9% (1030 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/fr/
2021-01-27 18:40:40 +00:00
Anonymous
ac0845eedf Translated using Weblate (German) [skip ci]
Currently translated at 99.8% (1060 of 1062 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/de/
2021-01-27 18:40:40 +00:00
woiza
aa00959010 Fix wrong type for Movie->titleSlug and Rating->value in api docs (#5824) [skip-ci] 2021-01-25 21:31:11 -05:00
Mark McDowall
986f8d43c0 Fixed: Update path before importing to ensure it hasn't changed
Closes #5654
Closes #5682
Closes #5780

(cherry picked from commit ca34f64eb0a8f26be66030988284b17c9d65f460)
2021-01-25 21:26:34 -05:00
Qstick
07f5312d43 Fixed: Don't double load Quality Definitions 2021-01-25 21:20:15 -05:00
ta264
7754589353 New: Check SQLite is at least version 3.9.0 2021-01-25 17:50:16 +00:00
ta264
8428de7a00 Fixed: Update Mono version check now minimum is 5.20 2021-01-25 17:50:16 +00:00
nameproof
d210082dad Translated using Weblate (Swedish) [skip ci]
Currently translated at 99.8% (1059 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/sv/
2021-01-25 16:40:43 +00:00
jpalenz77
4f9df6a114 Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2021-01-25 16:40:39 +00:00
Havok Dan
a5726cd65e Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 99.0% (1051 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2021-01-25 16:40:38 +00:00
tenshiak
3bfb08c3ff Treat subbed as unknown language (#5677)
* Subbed releases shouldn't report as different lang

* Add tests for subbed releases

* Remove whitespace
2021-01-24 23:53:15 -05:00
Mark McDowall
ceeea9f7c6 Fixed: Queue refresh closing manual import from queue if items change
(cherry picked from commit f5d690aa7b703e6fc0cd7eeced177a28cfed4962)
2021-01-24 23:51:35 -05:00
Qstick
83b1e037d5 Fix Enum.GetName call 2021-01-24 23:35:34 -05:00
Qstick
9cc5343547 Fixed: HealthCheck level returns "Type" for Custom Scripts
Fixes #5803
2021-01-24 22:37:15 -05:00
ta264
e3cc4f4cb1 Fixed: Set musl status at compile time
[common]
2021-01-24 22:13:36 -05:00
Laurie Richards
f0bb614360 Fix: Youtube trailers do not play from scraped data
Currently the scraper puts an https:// link, this is not compatible with the YouTube plugin, it needs to be in plugin format with YouTube ID
2021-01-23 12:35:11 -05:00
jpalenz77
9241f4a40d Translated using Weblate (Spanish) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/es/
2021-01-21 14:40:36 +00:00
ta264
8e6157074d Use ghcr.io for test images 2021-01-19 21:43:53 +00:00
Csaba
188b02e5c7 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-20 05:40:36 +00:00
bakerboy448
acb8e1d3c8 New: Renamed Quick Import to Move Automatically
Closes: #5667
2021-01-18 20:50:16 -05:00
bakerboy448
ab31cccfb2 .git updates for labels [skip ci] 2021-01-18 20:49:52 -05:00
bakerboy448
42afaa17ee update bug template [skip ci]
[common]
2021-01-18 20:49:52 -05:00
Qstick
c6123a076f Fix Tests from Site Image Changes 2021-01-18 13:17:10 -05:00
reloxx
0f0aaeef4b 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/
2021-01-18 13:05:47 +00:00
Qstick
2983e27dcd Fixed: Size Filter for Interactive Search missing ValueType 2021-01-18 08:05:38 -05:00
Qstick
a18036eed4 Add Logo to the Loading Screen for.... clarity 2021-01-18 08:05:38 -05:00
Qstick
2013e1f580 Replace SmtpClient with Mailkit 2021-01-18 08:05:38 -05:00
Qstick
1e396ead5e Bump NetFramework to 4.7.2 2021-01-18 08:05:38 -05:00
ta264
5ea3ad45cb Hack: ignore wonky depedencies in signalR js client 2021-01-18 08:05:38 -05:00
ta264
26a04c9fd1 New: Build with NET5 2021-01-18 08:05:38 -05:00
ta264
7f29af6d4d Move test harness packages to Directory.Build.props 2021-01-18 08:05:38 -05:00
Robin Dadswell
92f3a18e17 Fixed: Error handling when cannot create folder in Recycling Bin
(cherry picked from commit c05fccb90d64d92836603b55d4bd30d5cbdb96a5)
2021-01-17 14:06:30 -05:00
bakerboy448
7836246b05 Fixed: Parse standalone UHD as 4K if no other resolution info is present 2021-01-17 13:07:24 -05:00
Taloth Saldono
e2b2061ee1 Fixed: Unnecessary certificate validation errors on localhost/loopback
(cherry picked from commit c28cafba0a1b92f065541ebdae9db06ab1e5ac82)
2021-01-16 23:29:39 -05:00
Taloth Saldono
8d651e6f7a Fixed Agenda Time wrapping
(cherry picked from commit 63607ad5415e9a900696a32933551c27e336784c)
2021-01-16 23:29:12 -05:00
Mark McDowall
25c0ed1cd0 New: Treat Manual Bad in history as failed
(cherry picked from commit ab478fd64bdf2b710fb865006858a1a7dbdbad21)
2021-01-16 21:45:26 -05:00
Qstick
638db3d8d7 Fix name of max NumberInput in QualityDefinition.js
(cherry picked from commit a225b34806be6a206345acef3a6820df5a4be2e0)
2021-01-13 20:16:06 -05:00
nitsua
3a5d18f52d Add tooltips to the icons in the Files tab
Fixes: #5712
2021-01-13 17:44:12 -05:00
nitsua
c8d0a6a4ea Correct an instance of sonarr in one of the validation error output examples 2021-01-13 17:43:21 -05:00
nitsua
553b8b1945 Add movie status to the main search page if the movie is already in the db (label on small screen otherwise progress bar under poster)
Fix issues with yellow/grey movie status color not showing up properly
Refactor the getMovieStatus to be more generic
2021-01-11 22:52:48 -05:00
Qstick
e263d066da Remove TODO [skip ci] 2021-01-11 19:47:07 -05:00
Havok Dan
cdaf88efa1 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 99.1% (1052 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/pt_BR/
2021-01-11 14:40:33 +00:00
bakerboy448
ea801665e4 Fixed: Correctly Parse Release Groups with a - in their name
[common]
2021-01-10 20:32:58 -05:00
bakerboy448
a81b6f41af Fixed: Parse 'Assembly Cut' as an Edition
Closes #5716
2021-01-10 18:10:17 -05:00
faxity
177d77db69 Translated using Weblate (Dutch) [skip ci]
Currently translated at 100.0% (1061 of 1061 strings)

Translation: Servarr/Radarr
Translate-URL: https://translate.servarr.com/projects/radarr/radarr/nl/
2021-01-10 13:40:33 +00:00
1253 changed files with 28858 additions and 33098 deletions

View File

@@ -110,13 +110,13 @@ 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.CA1002.severity = suggestion
dotnet_diagnostic.CA1003.severity = suggestion
dotnet_diagnostic.CA1008.severity = suggestion
dotnet_diagnostic.CA1010.severity = suggestion
@@ -163,10 +163,16 @@ dotnet_diagnostic.CA1304.severity = suggestion
dotnet_diagnostic.CA1305.severity = suggestion
dotnet_diagnostic.CA1307.severity = suggestion
dotnet_diagnostic.CA1308.severity = suggestion
dotnet_diagnostic.CA1309.severity = suggestion
dotnet_diagnostic.CA1310.severity = suggestion
dotnet_diagnostic.CA1401.severity = suggestion
dotnet_diagnostic.CA1416.severity = suggestion
dotnet_diagnostic.CA1507.severity = suggestion
dotnet_diagnostic.CA1508.severity = suggestion
dotnet_diagnostic.CA1707.severity = suggestion
dotnet_diagnostic.CA1708.severity = suggestion
dotnet_diagnostic.CA1710.severity = suggestion
dotnet_diagnostic.CA1711.severity = suggestion
dotnet_diagnostic.CA1712.severity = suggestion
dotnet_diagnostic.CA1714.severity = suggestion
dotnet_diagnostic.CA1715.severity = suggestion
@@ -175,12 +181,14 @@ dotnet_diagnostic.CA1717.severity = suggestion
dotnet_diagnostic.CA1720.severity = suggestion
dotnet_diagnostic.CA1721.severity = suggestion
dotnet_diagnostic.CA1724.severity = suggestion
dotnet_diagnostic.CA1725.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.CA1813.severity = suggestion
dotnet_diagnostic.CA1814.severity = suggestion
dotnet_diagnostic.CA1815.severity = suggestion
dotnet_diagnostic.CA1816.severity = suggestion
@@ -202,6 +210,7 @@ dotnet_diagnostic.CA2101.severity = suggestion
dotnet_diagnostic.CA2119.severity = suggestion
dotnet_diagnostic.CA2153.severity = suggestion
dotnet_diagnostic.CA2200.severity = suggestion
dotnet_diagnostic.CA2201.severity = suggestion
dotnet_diagnostic.CA2207.severity = suggestion
dotnet_diagnostic.CA2208.severity = suggestion
dotnet_diagnostic.CA2211.severity = suggestion
@@ -247,6 +256,8 @@ dotnet_diagnostic.CA5374.severity = suggestion
dotnet_diagnostic.CA5379.severity = suggestion
dotnet_diagnostic.CA5384.severity = suggestion
dotnet_diagnostic.CA5385.severity = suggestion
dotnet_diagnostic.CA5392.severity = suggestion
dotnet_diagnostic.CA5394.severity = suggestion
dotnet_diagnostic.CA5397.severity = suggestion

View File

@@ -1,35 +0,0 @@
---
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!**

73
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,73 @@
name: Bug Report
description: 'Report a new bug, if you are not 100% certain this is a bug please go to our Reddit or Discord first'
labels: ['Type: Bug', 'Status: Needs Triage']
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: A concise description of what you're experiencing.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: A concise description of what you expected to happen.
validations:
required: true
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: false
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **Radarr**: Radarr 3.0.1.4259
- **Docker Install**: Yes
- **Using Reverse Proxy**: No
- **Browser**: Firefox 90 (If UI related)
value: |
- OS:
- Radarr:
- Docker Install:
- Using Reverse Proxy:
- Browser:
render: markdown
validations:
required: true
- type: dropdown
attributes:
label: What branch are you running?
options:
- Master
- Develop
- Nightly
- Other (This issue will be closed)
validations:
required: true
- type: textarea
attributes:
label: Trace Logs?
description: |
Trace Logs (https://wiki.servarr.com/radarr/troubleshooting#logging-and-log-files)
***Generally speaking, all bug reports must have trace logs provided.***
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
Additionally, any additional info? Screenshots? References? Anything that will give us more context about the issue you are encountering!
validations:
required: true

View File

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

View File

@@ -1,20 +0,0 @@
---
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

@@ -0,0 +1,38 @@
name: Feature Request
description: 'Suggest an idea for Radarr'
labels: ['Type: Feature Request', 'Status: Needs Triage']
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the feature you are requesting.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Is your feature request related to a problem? Please describe
description: A clear and concise description of what the problem is.
validations:
required: true
- type: textarea
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: true
- type: textarea
attributes:
label: Anything else?
description: |
Links? References? Mockups? Anything that will give us more context about the feature you are encountering!
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
validations:
required: true

View File

@@ -1,15 +1,16 @@
#### Database Migration
YES | NO
YES - XXXX | NO
#### Description
A few sentences describing the overall goals of the pull request's commits.
#### Screenshot (if UI related)
#### Todos
- [ ] Tests
- [ ] Translation Keys
- [ ] Wiki Updates
- [ ] Translation Keys (./src/NzbDrone.Core/Localization/Core/en.json)
- [ ] [Wiki Updates](https://wiki.servarr.com)
#### Issues Fixed or Closed by this PR
* Fixes #XXXX
* Fixes #XXXX

2
.github/config.yml vendored
View File

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

View File

@@ -1 +0,0 @@

7
.github/stale.yml vendored
View File

@@ -4,13 +4,12 @@ daysUntilStale: 60
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- feature request
- parser
- confirmed
- feature request #legacy
- 'Type: Feature Request'
- 'Status: 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

13
.github/support.yml vendored
View File

@@ -1,13 +0,0 @@
# 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

41
.github/workflows/azuresync.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: Sync issue to Azure DevOps work item
on:
issues:
types:
[opened, edited, deleted, closed, reopened, labeled, unlabeled, assigned]
concurrency: azuresync-${{ github.event.issue.number }}
jobs:
alert:
runs-on: ubuntu-latest
steps:
- uses: danhellem/github-actions-issue-to-work-item@master
if: "${{ contains(github.event.issue.labels.*.name, 'Type: Bug') == true }}"
env:
ado_token: "${{ secrets.ADO_PERSONAL_ACCESS_TOKEN }}"
github_token: "${{ github.token }}"
ado_organization: "Servarr"
ado_project: "Servarr"
ado_area_path: "Servarr\\Radarr"
ado_wit: "Bug"
ado_new_state: "New"
ado_active_state: "Active"
ado_close_state: "Closed"
ado_bypassrules: true
log_level: 100
- uses: danhellem/github-actions-issue-to-work-item@master
if: "${{ contains(github.event.issue.labels.*.name, 'Type: Bug') == false }}"
env:
ado_token: "${{ secrets.ADO_PERSONAL_ACCESS_TOKEN }}"
github_token: "${{ github.token }}"
ado_organization: "Servarr"
ado_project: "Servarr"
ado_area_path: "Servarr\\Radarr"
ado_wit: "User Story"
ado_new_state: "New"
ado_active_state: "Active"
ado_close_state: "Closed"
ado_bypassrules: true
log_level: 100

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

@@ -0,0 +1,21 @@
name: 'Support requests'
on:
issues:
types: [labeled, unlabeled, reopened]
jobs:
support:
runs-on: ubuntu-latest
steps:
- uses: dessant/support-requests@v2
with:
github-token: ${{ github.token }}
support-label: 'Type: Support'
issue-comment: >
:wave: @{issue-author}, 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://radarr.video/discord)
or [Subreddit](https://reddit.com/r/radarr)
close-issue: true
lock-issue: false

View File

@@ -1,49 +1,13 @@
# How to Contribute #
# How to Contribute
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](https://wiki.servarr.com/Radarr) the better.
This file has been moved to the wiki for the latest details please see the [contributing wiki page](https://wiki.servarr.com/radarr/contributing).
## Development ##
## Documentation
### Tools required ###
- 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.
Setup guides, [FAQ](https://wiki.servarr.com/radarr/faq), the more information we have on the [wiki](https://wiki.servarr.com/radarr) the better.
### Getting started ###
## Development
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 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 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
- You're probably going to get some comments or questions from us, they will be to ensure consistency and maintainability
- We'll try to respond to pull requests as soon as possible, if its been a day or two, please reach out to us, we may have missed it
- Each PR should come from its own [feature branch](http://martinfowler.com/bliki/FeatureBranch.html) not develop in your fork, it should have a meaningful branch name (what is being added/fixed)
- new-feature (Good)
- fix-bug (Good)
- patch (Bad)
- develop (Bad)
If you have any questions about any of this, please let us know.
See the [Wiki Page](https://wiki.servarr.com/radarr/contributing)

View File

@@ -1,19 +1,21 @@
# Radarr
[![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)
[![Translated](https://translate.servarr.com/widgets/servarr/-/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)
[![Backers on Open Collective](https://opencollective.com/Radarr/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/Radarr/sponsors/badge.svg)](#sponsors)
[![Mega Sponsors on Open Collective](https://opencollective.com/Radarr/megasponsors/badge.svg)](#mega-sponsors)
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.
Note that only one type of a given movie is supported. If you want both an 4k version and 1080p version of a given movie you will need multiple instances.
## Major Features Include:
## 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.
* Can watch for better quality of the movies you have and do an automatic upgrade. *eg. from DVD to Blu-Ray*
* Can watch for better quality of the movies you have and do an automatic upgrade. *e.g. from DVD to Blu-Ray*
* Automatic failed download handling will try another release if one fails
* Manual search so you can pick any release or to see why a release was not downloaded automatically
* Full integration with SABnzbd and NZBGet
@@ -21,57 +23,60 @@ Radarr is a movie collection manager for Usenet and BitTorrent users. It can mon
* Automatically importing downloaded movies
* Recognizing Special Editions, Director's Cut, etc.
* Identifying releases with hardcoded subs
* QBittorrent, Deluge, rTorrent, Transmission, uTorrent, and other download clients are supported
* Full integration with Kodi, Plex (notification, library update)
* A beautiful UI
* Identifying releases with AKA movie names
* SABnzbd, NZBGet, QBittorrent, Deluge, rTorrent, Transmission, uTorrent, and other download clients are supported and integrated
* Full integration with Kodi and Plex (notifications, library updates)
* 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
* A beautiful UI
## Support
[![Wiki](https://img.shields.io/badge/servarr-wiki-181717.svg?maxAge=60)](https://wiki.servarr.com/radarr)
[![Discord](https://img.shields.io/badge/discord-chat-7289DA.svg?maxAge=60)](https://radarr.video/discord)
[![Reddit](https://img.shields.io/badge/reddit-discussion-FF4500.svg?maxAge=60)](https://www.reddit.com/r/Radarr)
Note: GitHub Issues are for Bugs and Feature Requests Only
[![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)
## Feature Requests
[Feature Requests](https://github.com/Radarr/Radarr/issues/new?assignees=&labels=Type%3A+Enhancement&template=feature_request.md&title=)
## Contributors & Developers
[API Documentation](https://radarr.video/docs/api/)
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>
This project exists thanks to all the people who contribute.
- [Contribute (GitHub)](CONTRIBUTING.md)
- [Contribution (Wiki Article)](https://wiki.servarr.com/radarr/contributing)
[![Contributors List](https://opencollective.com/Radarr/contributors.svg?width=890&button=false)](https://github.com/Radarr/Radarr/graphs/contributors)
## Backers
Thank you to all our backers! 🙏 [Become a backer](https://opencollective.com/Radarr#backer)
<img src="https://opencollective.com/Radarr/backers.svg?width=890"></a>
[![Backers List](https://opencollective.com/Radarr/backers.svg?width=890)](https://opencollective.com/Radarr#backer)
## Sponsors
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>
[![Sponsors List](https://opencollective.com/Radarr/sponsors.svg?width=890)](https://opencollective.com/Radarr#sponsor)
## Mega Sponsors
<img src="https://opencollective.com/Radarr/tiers/mega-sponsor.svg?width=890"></a>
[![Mega Sponsors List](https://opencollective.com/Radarr/tiers/mega-sponsor.svg?width=890)](https://opencollective.com/Radarr#mega-sponsor)
## 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/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
* Copyright 2010-2022

View File

@@ -7,13 +7,14 @@ variables:
outputFolder: './_output'
artifactsFolder: './_artifacts'
testsFolder: './_tests'
majorVersion: '3.0.2'
majorVersion: '4.0.5'
minorVersion: $[counter('minorVersion', 2000)]
radarrVersion: '$(majorVersion).$(minorVersion)'
buildName: '$(Build.SourceBranchName).$(radarrVersion)'
sentryOrg: 'servarr'
sentryUrl: 'https://sentry.servarr.com'
dotnetVersion: '3.1.404'
dotnetVersion: '6.0.101'
innoVersion: '6.2.0'
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
trigger:
@@ -23,7 +24,12 @@ trigger:
- master
pr:
- develop
branches:
include:
- develop
paths:
exclude:
- src/NzbDrone.Core/Localization/Core
stages:
- stage: Setup
@@ -59,18 +65,21 @@ stages:
Linux:
osName: 'Linux'
imageName: 'ubuntu-18.04'
enableAnalysis: 'true'
Mac:
osName: 'Mac'
imageName: 'macos-10.14'
imageName: 'macos-10.15'
enableAnalysis: 'false'
Windows:
osName: 'Windows'
imageName: 'windows-2019'
enableAnalysis: 'false'
pool:
vmImage: $(imageName)
variables:
# Disable stylecop here - linting errors get caught by the analyze task
EnableAnalyzers: 'false'
EnableAnalyzers: $(enableAnalysis)
steps:
- checkout: self
submodules: true
@@ -79,7 +88,18 @@ stages:
displayName: 'Install .net core'
inputs:
version: $(dotnetVersion)
- bash: ./build.sh --backend
- bash: |
BUNDLEDVERSIONS=${AGENT_TOOLSDIRECTORY}/dotnet/sdk/${DOTNETVERSION}/Microsoft.NETCoreSdk.BundledVersions.props
echo $BUNDLEDVERSIONS
grep osx-x64 $BUNDLEDVERSIONS
if grep -q freebsd-x64 $BUNDLEDVERSIONS; then
echo "BSD already enabled"
else
echo "Enabling BSD support"
sed -i.ORI 's/osx-x64/osx-x64;freebsd-x64/' $BUNDLEDVERSIONS
fi
displayName: Enable FreeBSD Support
- bash: ./build.sh --backend --enable-bsd
displayName: Build Radarr Backend
- bash: |
find ${OUTPUTFOLDER} -type f ! -path "*/publish/*" -exec rm -rf {} \;
@@ -92,23 +112,23 @@ stages:
artifact: '$(osName)Backend'
displayName: Publish Backend
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/netcoreapp3.1/win-x64/publish'
- publish: '$(testsFolder)/net6.0/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'
- publish: '$(testsFolder)/net6.0/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'
- publish: '$(testsFolder)/net6.0/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'
- publish: '$(testsFolder)/net6.0/freebsd-x64/publish'
artifact: FreebsdCoreTests
displayName: Publish FreeBSD Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/net6.0/osx-x64/publish'
artifact: MacCoreTests
displayName: Publish MacOS Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
@@ -125,7 +145,7 @@ stages:
imageName: 'ubuntu-18.04'
Mac:
osName: 'Mac'
imageName: 'macos-10.14'
imageName: 'macos-10.15'
Windows:
osName: 'Windows'
imageName: 'windows-2019'
@@ -135,7 +155,7 @@ stages:
- task: NodeTool@0
displayName: Set Node.js version
inputs:
versionSpec: '10.x'
versionSpec: '12.x'
- checkout: self
submodules: true
fetchDepth: 1
@@ -181,16 +201,11 @@ stages:
artifactName: WindowsFrontend
targetPath: _output
displayName: Fetch Frontend
- bash: ./build.sh --packages
displayName: Create Packages
- bash: |
setup/inno/ISCC.exe setup/radarr.iss //DFramework=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
./build.sh --packages --installer
cp setup/output/Radarr.*win-x64.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Radarr.${BUILDNAME}.windows-core-x64-installer.exe
cp setup/output/Radarr.*win-x86.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Radarr.${BUILDNAME}.windows-core-x86-installer.exe
displayName: Create Installers
- publish: $(Build.ArtifactStagingDirectory)
artifact: 'WindowsInstaller'
displayName: Publish Installer
@@ -219,9 +234,10 @@ stages:
artifactName: WindowsFrontend
targetPath: _output
displayName: Fetch Frontend
- bash: ./build.sh --packages
- bash: ./build.sh --packages --enable-bsd
displayName: Create Packages
- bash: |
find . -name "ffprobe" -exec chmod a+x {} \;
find . -name "Radarr" -exec chmod a+x {} \;
find . -name "Radarr.Update" -exec chmod a+x {} \;
displayName: Set executable bits
@@ -231,37 +247,44 @@ stages:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).windows-core-x64.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/win-x64/netcoreapp3.1
rootFolderOrFile: $(artifactsFolder)/win-x64/net6.0
- 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
rootFolderOrFile: $(artifactsFolder)/win-x86/net6.0
- task: ArchiveFiles@2
displayName: Create MacOS Core app
displayName: Create MacOS x64 Core app
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-app-core-x64.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/macos-app/netcoreapp3.1
rootFolderOrFile: $(artifactsFolder)/osx-x64-app/net6.0
- task: ArchiveFiles@2
displayName: Create MacOS Core tar
displayName: Create MacOS x64 Core tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-core-x64.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/macos/netcoreapp3.1
rootFolderOrFile: $(artifactsFolder)/osx-x64/net6.0
- task: ArchiveFiles@2
displayName: Create Linux Mono tar
displayName: Create MacOS arm64 Core app
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux.tar.gz'
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-app-core-arm64.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/osx-arm64-app/net6.0
- task: ArchiveFiles@2
displayName: Create MacOS arm64 Core tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-core-arm64.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-x64/net462
rootFolderOrFile: $(artifactsFolder)/osx-arm64/net6.0
- task: ArchiveFiles@2
displayName: Create Linux Core tar
inputs:
@@ -269,7 +292,7 @@ stages:
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-x64/netcoreapp3.1
rootFolderOrFile: $(artifactsFolder)/linux-x64/net6.0
- task: ArchiveFiles@2
displayName: Create Linux Musl Core tar
inputs:
@@ -277,7 +300,7 @@ stages:
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-musl-x64/netcoreapp3.1
rootFolderOrFile: $(artifactsFolder)/linux-musl-x64/net6.0
- task: ArchiveFiles@2
displayName: Create ARM32 Linux Core tar
inputs:
@@ -285,7 +308,15 @@ stages:
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-arm/netcoreapp3.1
rootFolderOrFile: $(artifactsFolder)/linux-arm/net6.0
- task: ArchiveFiles@2
displayName: Create ARM32 Linux Musl Core tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-musl-core-arm.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-musl-arm/net6.0
- task: ArchiveFiles@2
displayName: Create ARM64 Linux Core tar
inputs:
@@ -293,7 +324,7 @@ stages:
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-arm64/netcoreapp3.1
rootFolderOrFile: $(artifactsFolder)/linux-arm64/net6.0
- task: ArchiveFiles@2
displayName: Create ARM64 Linux Musl Core tar
inputs:
@@ -301,7 +332,15 @@ stages:
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-musl-arm64/netcoreapp3.1
rootFolderOrFile: $(artifactsFolder)/linux-musl-arm64/net6.0
- task: ArchiveFiles@2
displayName: Create FreeBSD Core Core tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).freebsd-core-x64.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/freebsd-x64/net6.0
- publish: $(Build.ArtifactStagingDirectory)
artifact: 'Packages'
displayName: Publish Packages
@@ -355,24 +394,34 @@ stages:
displayName: Unit Native
dependsOn: Prepare
condition: and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0'))
workspace:
clean: all
strategy:
matrix:
MacCore:
osName: 'Mac'
testName: 'MacCore'
imageName: 'macos-10.14'
poolName: 'Azure Pipelines'
imageName: 'macos-10.15'
WindowsCore:
osName: 'Windows'
testName: 'WindowsCore'
poolName: 'Azure Pipelines'
imageName: 'windows-2019'
LinuxCore:
osName: 'Linux'
testName: 'LinuxCore'
poolName: 'Azure Pipelines'
imageName: 'ubuntu-18.04'
pattern: 'Radarr.**.linux-core-x64.tar.gz'
FreebsdCore:
osName: 'Linux'
testName: 'FreebsdCore'
poolName: 'FreeBSD'
imageName:
pool:
name: $(poolName)
vmImage: $(imageName)
steps:
@@ -381,30 +430,20 @@ stages:
displayName: 'Install .net core'
inputs:
version: $(dotnetVersion)
condition: ne(variables['poolName'], 'FreeBSD')
- 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'))
chmod a+x _tests/ffprobe
displayName: Make ffprobe Executable
condition: and(succeeded(), ne(variables['osName'], 'Windows'))
- bash: find ${TESTSFOLDER} -name "Radarr.Test.Dummy" -exec chmod a+x {} \;
displayName: Make Test Dummy Executable
condition: and(succeeded(), ne(variables['osName'], 'Windows'))
@@ -428,22 +467,10 @@ stages:
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
containerImage: ghcr.io/servarr/testimages:alpine
pool:
vmImage: 'ubuntu-18.04'
@@ -464,6 +491,9 @@ stages:
buildType: 'current'
artifactName: $(artifactName)
targetPath: $(testsFolder)
- bash: |
chmod a+x _tests/ffprobe
displayName: Make ffprobe Executable
- bash: find ${TESTSFOLDER} -name "Radarr.Test.Dummy" -exec chmod a+x {} \;
displayName: Make Test Dummy Executable
condition: and(succeeded(), ne(variables['osName'], 'Windows'))
@@ -507,31 +537,23 @@ stages:
MacCore:
osName: 'Mac'
testName: 'MacCore'
imageName: 'macos-10.14'
pattern: 'Radarr.**.osx-core-x64.tar.gz'
imageName: 'macos-10.15'
pattern: 'Radarr.*.osx-core-x64.tar.gz'
WindowsCore:
osName: 'Windows'
testName: 'WindowsCore'
imageName: 'windows-2019'
pattern: 'Radarr.**.windows-core-x64.zip'
pattern: 'Radarr.*.windows-core-x64.zip'
LinuxCore:
osName: 'Linux'
testName: 'LinuxCore'
imageName: 'ubuntu-18.04'
pattern: 'Radarr.**.linux-core-x64.tar.gz'
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:
@@ -571,32 +593,63 @@ stages:
failTaskOnFailedTests: true
displayName: Publish Test Results
- job: Integration_FreeBSD
displayName: Integration Native FreeBSD
dependsOn: Prepare
condition: and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0'))
workspace:
clean: all
variables:
pattern: 'Radarr.*.freebsd-core-x64.tar.gz'
pool:
name: 'FreeBSD'
steps:
- checkout: none
- task: DownloadPipelineArtifact@2
displayName: Download Test Artifact
inputs:
buildType: 'current'
artifactName: 'FreebsdCoreTests'
targetPath: $(testsFolder)
- task: DownloadPipelineArtifact@2
displayName: Download Build Artifact
inputs:
buildType: 'current'
artifactName: Packages
itemPattern: '/$(pattern)'
targetPath: $(Build.ArtifactStagingDirectory)
- bash: |
mkdir -p ${BUILD_ARTIFACTSTAGINGDIRECTORY}/bin
tar xf ${BUILD_ARTIFACTSTAGINGDIRECTORY}/$(pattern) -C ${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: 'FreeBSD 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'
containerImage: ghcr.io/servarr/testimages:alpine
pattern: 'Radarr.*.linux-musl-core-x64.tar.gz'
pool:
vmImage: 'ubuntu-18.04'
@@ -655,17 +708,17 @@ stages:
Linux:
osName: 'Linux'
imageName: 'ubuntu-18.04'
pattern: 'Radarr.**.linux-core-x64.tar.gz'
pattern: 'Radarr.*.linux-core-x64.tar.gz'
failBuild: true
Mac:
osName: 'Mac'
imageName: 'macos-10.14'
pattern: 'Radarr.**.osx-core-x64.tar.gz'
imageName: 'macos-10.15'
pattern: 'Radarr.*.osx-core-x64.tar.gz'
failBuild: true
Windows:
osName: 'Windows'
imageName: 'windows-2019'
pattern: 'Radarr.**.windows-core-x64.zip'
pattern: 'Radarr.*.windows-core-x64.zip'
failBuild: true
pool:
@@ -757,7 +810,7 @@ stages:
- task: NodeTool@0
displayName: Set Node.js version
inputs:
versionSpec: '10.x'
versionSpec: '12.x'
- checkout: self
submodules: true
fetchDepth: 1
@@ -803,6 +856,7 @@ stages:
variables:
disable.coverage.autogenerate: 'true'
EnableAnalyzers: 'false'
pool:
vmImage: windows-2019
@@ -827,12 +881,12 @@ stages:
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.coverage.exclusions=**/Radarr.Api.V3/**/*
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
./build.sh --backend -f net6.0 -r win-x64
TEST_DIR=_tests/net6.0/win-x64/publish/ ./test.sh Windows Unit Coverage
displayName: Coverage Unit Tests
- task: SonarCloudAnalyze@1
condition: eq(variables['System.PullRequest.IsFork'], 'False')
@@ -862,7 +916,7 @@ stages:
- job:
displayName: Discord Notification
pool:
vmImage: 'windows-2019'
vmImage: 'ubuntu-18.04'
steps:
- task: DownloadPipelineArtifact@2
continueOnError: true
@@ -872,7 +926,7 @@ stages:
artifactName: 'WindowsAutomationScreenshots'
targetPath: $(Build.SourcesDirectory)
- checkout: none
- powershell: |
- pwsh: |
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/Servarr/AzureDiscordNotify/master/DiscordNotify.ps1'))
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)

139
build.sh
View File

@@ -1,4 +1,4 @@
#! /bin/bash
#! /usr/bin/env bash
set -e
outputFolder='_output'
@@ -25,6 +25,17 @@ UpdateVersionNumber()
fi
}
EnableBsdSupport()
{
#todo enable sdk with
#SDK_PATH=$(dotnet --list-sdks | grep -P '5\.\d\.\d+' | head -1 | sed 's/\(5\.[0-9]*\.[0-9]*\).*\[\(.*\)\]/\2\/\1/g')
# BUNDLED_VERSIONS="${SDK_PATH}/Microsoft.NETCoreSdk.BundledVersions.props"
if grep -qv freebsd-x64 src/Directory.Build.props; then
sed -i'' -e "s^<RuntimeIdentifiers>\(.*\)</RuntimeIdentifiers>^<RuntimeIdentifiers>\1;freebsd-x64</RuntimeIdentifiers>^g" src/Directory.Build.props
fi
}
LintUI()
{
ProgressStart 'ESLint'
@@ -75,11 +86,11 @@ YarnInstall()
ProgressEnd 'yarn install'
}
RunGulp()
RunWebpack()
{
ProgressStart 'Running gulp'
yarn run build --production
ProgressEnd 'Running gulp'
ProgressStart 'Running webpack'
yarn run build --env production
ProgressEnd 'Running webpack'
}
PackageFiles()
@@ -118,7 +129,7 @@ PackageLinux()
echo "Adding Radarr.Mono to UpdatePackage"
cp $folder/Radarr.Mono.* $folder/Radarr.Update
if [ "$framework" = "netcoreapp3.1" ]; then
if [ "$framework" = "net6.0" ]; then
cp $folder/Mono.Posix.NETStandard.* $folder/Radarr.Update
cp $folder/libMonoPosixHelper.* $folder/Radarr.Update
fi
@@ -129,17 +140,13 @@ PackageLinux()
PackageMacOS()
{
local framework="$1"
local runtime="$2"
ProgressStart "Creating MacOS Package for $framework"
ProgressStart "Creating MacOS Package for $framework $runtime"
local folder=$artifactsFolder/macos/$framework/Radarr
local folder=$artifactsFolder/$runtime/$framework/Radarr
PackageFiles "$folder" "$framework" "osx-x64"
if [ "$framework" = "net462" ]; then
echo "Adding Startup script"
cp macOS/Radarr $folder
fi
PackageFiles "$folder" "$framework" "$runtime"
echo "Removing Service helpers"
rm -f $folder/ServiceUninstall.*
@@ -150,7 +157,7 @@ PackageMacOS()
echo "Adding Radarr.Mono to UpdatePackage"
cp $folder/Radarr.Mono.* $folder/Radarr.Update
if [ "$framework" = "netcoreapp3.1" ]; then
if [ "$framework" = "net6.0" ]; then
cp $folder/Mono.Posix.NETStandard.* $folder/Radarr.Update
cp $folder/libMonoPosixHelper.* $folder/Radarr.Update
fi
@@ -161,10 +168,11 @@ PackageMacOS()
PackageMacOSApp()
{
local framework="$1"
local runtime="$2"
ProgressStart "Creating macOS App Package for $framework"
ProgressStart "Creating macOS App Package for $framework $runtime"
local folder=$artifactsFolder/macos-app/$framework
local folder="$artifactsFolder/$runtime-app/$framework"
rm -rf $folder
mkdir -p $folder
@@ -172,7 +180,7 @@ PackageMacOSApp()
mkdir -p $folder/Radarr.app/Contents/MacOS
echo "Copying Binaries"
cp -r $artifactsFolder/macos/$framework/Radarr/* $folder/Radarr.app/Contents/MacOS
cp -r $artifactsFolder/$runtime/$framework/Radarr/* $folder/Radarr.app/Contents/MacOS
echo "Removing Update Folder"
rm -r $folder/Radarr.app/Contents/MacOS/Radarr.Update
@@ -190,6 +198,7 @@ PackageWindows()
local folder=$artifactsFolder/$runtime/$framework/Radarr
PackageFiles "$folder" "$framework" "$runtime"
cp -r $outputFolder/$framework-windows/$runtime/publish/* $folder
echo "Removing Radarr.Mono"
rm -f $folder/Radarr.Mono.*
@@ -211,19 +220,45 @@ Package()
IFS='-' read -ra SPLIT <<< "$runtime"
case "${SPLIT[0]}" in
linux)
linux|freebsd*)
PackageLinux "$framework" "$runtime"
;;
win)
PackageWindows "$framework" "$runtime"
;;
osx)
PackageMacOS "$framework"
PackageMacOSApp "$framework"
PackageMacOS "$framework" "$runtime"
PackageMacOSApp "$framework" "$runtime"
;;
esac
}
BuildInstaller()
{
local framework="$1"
local runtime="$2"
./_inno/ISCC.exe setup/radarr.iss "//DFramework=$framework" "//DRuntime=$runtime"
}
InstallInno()
{
ProgressStart "Installing portable Inno Setup"
rm -rf _inno
curl -s --output innosetup.exe "https://files.jrsoftware.org/is/6/innosetup-${INNOVERSION:-6.2.0}.exe"
mkdir _inno
./innosetup.exe //portable=1 //silent //currentuser //dir=.\\_inno
rm innosetup.exe
ProgressEnd "Installed portable Inno Setup"
}
RemoveInno()
{
rm -rf _inno
}
PackageTests()
{
local framework="$1"
@@ -255,7 +290,9 @@ if [ $# -eq 0 ]; then
BACKEND=YES
FRONTEND=YES
PACKAGES=YES
INSTALLER=NO
LINT=YES
ENABLE_BSD=NO
fi
while [[ $# -gt 0 ]]
@@ -267,6 +304,10 @@ case $key in
BACKEND=YES
shift # past argument
;;
--enable-bsd)
ENABLE_BSD=YES
shift # past argument
;;
-r|--runtime)
RID="$2"
shift # past argument
@@ -285,6 +326,10 @@ case $key in
PACKAGES=YES
shift # past argument
;;
--installer)
INSTALLER=YES
shift # past argument
;;
--lint)
LINT=YES
shift # past argument
@@ -307,15 +352,22 @@ set -- "${POSITIONAL[@]}" # restore positional parameters
if [ "$BACKEND" = "YES" ];
then
UpdateVersionNumber
if [ "$ENABLE_BSD" = "YES" ];
then
EnableBsdSupport
fi
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"
PackageTests "net6.0" "win-x64"
PackageTests "net6.0" "win-x86"
PackageTests "net6.0" "linux-x64"
PackageTests "net6.0" "linux-musl-x64"
PackageTests "net6.0" "osx-x64"
if [ "$ENABLE_BSD" = "YES" ];
then
PackageTests "net6.0" "freebsd-x64"
fi
else
PackageTests "$FRAMEWORK" "$RID"
fi
@@ -324,7 +376,7 @@ fi
if [ "$FRONTEND" = "YES" ];
then
YarnInstall
RunGulp
RunWebpack
fi
if [ "$LINT" = "YES" ];
@@ -343,16 +395,29 @@ then
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"
Package "net6.0" "win-x64"
Package "net6.0" "win-x86"
Package "net6.0" "linux-x64"
Package "net6.0" "linux-musl-x64"
Package "net6.0" "linux-arm64"
Package "net6.0" "linux-musl-arm64"
Package "net6.0" "linux-arm"
Package "net6.0" "linux-musl-arm"
Package "net6.0" "osx-x64"
Package "net6.0" "osx-arm64"
if [ "$ENABLE_BSD" = "YES" ];
then
Package "net6.0" "freebsd-x64"
fi
else
Package "$FRAMEWORK" "$RID"
fi
fi
if [ "$INSTALLER" = "YES" ];
then
InstallInno
BuildInstaller "net6.0" "win-x64"
BuildInstaller "net6.0" "win-x86"
RemoveInno
fi

View File

@@ -6,8 +6,10 @@ const dirs = fs
.map((dirent) => dirent.name)
.join('|');
const frontendFolder = __dirname;
module.exports = {
parser: 'babel-eslint',
parser: '@babel/eslint-parser',
env: {
browser: true,
@@ -25,6 +27,9 @@ module.exports = {
parserOptions: {
ecmaVersion: 6,
sourceType: 'module',
babelOptions: {
configFile: `${frontendFolder}/babel.config.js`
},
ecmaFeatures: {
modules: true,
impliedStrict: true
@@ -271,7 +276,7 @@ module.exports = {
// ImportSort
'simple-import-sort/sort': 'error',
'simple-import-sort/imports': 'error',
'import/newline-after-import': 'error',
// React
@@ -309,7 +314,7 @@ module.exports = {
{
files: ['*.js'],
rules: {
'simple-import-sort/sort': [
'simple-import-sort/imports': [
'error',
{
groups: [

View File

@@ -0,0 +1,270 @@
const path = require('path');
const webpack = require('webpack');
const FileManagerPlugin = require('filemanager-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const LiveReloadPlugin = require('webpack-livereload-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const TerserPlugin = require('terser-webpack-plugin');
module.exports = (env) => {
const uiFolder = 'UI';
const frontendFolder = path.join(__dirname, '..');
const srcFolder = path.join(frontendFolder, 'src');
const isProduction = !!env.production;
const isProfiling = isProduction && !!env.profile;
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 config = {
mode: isProduction ? 'production' : 'development',
devtool: isProduction ? 'source-map' : 'eval-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'
},
fallback: {
buffer: false,
http: false,
https: false,
url: false,
util: false,
net: false
}
},
output: {
path: distFolder,
publicPath: '/',
filename: '[name].js',
sourceMapFilename: '[file].map'
},
optimization: {
moduleIds: 'deterministic',
chunkIds: 'named',
splitChunks: {
chunks: 'initial',
name: 'vendors'
}
},
performance: {
hints: false
},
plugins: [
new webpack.DefinePlugin({
__DEV__: !isProduction,
'process.env.NODE_ENV': isProduction ? JSON.stringify('production') : JSON.stringify('development')
}),
new MiniCssExtractPlugin({
filename: 'Content/styles.css'
}),
new HtmlWebpackPlugin({
template: 'frontend/src/index.ejs',
filename: 'index.html',
publicPath: '/'
}),
new FileManagerPlugin({
events: {
onEnd: {
copy: [
// HTML
{
source: 'frontend/src/*.html',
destination: distFolder
},
// Fonts
{
source: 'frontend/src/Content/Fonts/*.*',
destination: path.join(distFolder, 'Content/Fonts')
},
// Icon Images
{
source: 'frontend/src/Content/Images/Icons/*.*',
destination: path.join(distFolder, 'Content/Images/Icons')
},
// Images
{
source: 'frontend/src/Content/Images/*.*',
destination: path.join(distFolder, 'Content/Images')
},
// Robots
{
source: 'frontend/src/Content/robots.txt',
destination: path.join(distFolder, 'Content/robots.txt')
}
]
}
}
}),
new LiveReloadPlugin()
],
resolveLoader: {
modules: [
'node_modules',
'frontend/build/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: {
postcssOptions: {
config: '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
}
})
];
}
return config;
};

View File

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

View File

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

View File

@@ -1,42 +0,0 @@
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

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

View File

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

View File

@@ -1,24 +0,0 @@
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;

View File

@@ -1,19 +0,0 @@
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));

View File

@@ -1,271 +0,0 @@
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

@@ -1,23 +1,32 @@
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': {}
}
};
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);
return config;
};
const mixinsFiles = [
'frontend/src/Styles/Mixins/cover.css',
'frontend/src/Styles/Mixins/linkOverlay.css',
'frontend/src/Styles/Mixins/scroller.css',
'frontend/src/Styles/Mixins/truncate.css'
];
module.exports = {
plugins: [
['postcss-mixins', {
mixinsFiles
}],
['postcss-simple-vars', {
variables: () =>
cssVarsFiles.reduce((acc, vars) => {
return Object.assign(acc, reload(vars));
}, {})
}],
'postcss-color-function',
'postcss-nested'
]
};

View File

@@ -1,160 +0,0 @@
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

@@ -19,9 +19,9 @@ 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';
import BlocklistRowConnector from './BlocklistRowConnector';
class Blacklist extends Component {
class Blocklist extends Component {
//
// Lifecycle
@@ -101,8 +101,8 @@ class Blacklist extends Component {
columns,
totalRecords,
isRemoving,
isClearingBlacklistExecuting,
onClearBlacklistPress,
isClearingBlocklistExecuting,
onClearBlocklistPress,
...otherProps
} = this.props;
@@ -116,11 +116,11 @@ class Blacklist extends Component {
const selectedIds = this.getSelectedIds();
return (
<PageContent title={translate('Blacklist')}>
<PageContent title={translate('Blocklist')}>
<PageToolbar>
<PageToolbarSection>
<PageToolbarButton
label="Remove Selected"
label={translate('RemoveSelected')}
iconName={icons.REMOVE}
isDisabled={!selectedIds.length}
isSpinning={isRemoving}
@@ -130,8 +130,8 @@ class Blacklist extends Component {
<PageToolbarButton
label={translate('Clear')}
iconName={icons.CLEAR}
isSpinning={isClearingBlacklistExecuting}
onPress={onClearBlacklistPress}
isSpinning={isClearingBlocklistExecuting}
onPress={onClearBlocklistPress}
/>
</PageToolbarSection>
@@ -157,7 +157,7 @@ class Blacklist extends Component {
{
!isFetching && !!error &&
<div>
{translate('UnableToLoadBlacklist')}
{translate('UnableToLoadBlocklist')}
</div>
}
@@ -183,7 +183,7 @@ class Blacklist extends Component {
{
items.map((item) => {
return (
<BlacklistRowConnector
<BlocklistRowConnector
key={item.id}
isSelected={selectedState[item.id] || false}
columns={columns}
@@ -209,7 +209,7 @@ class Blacklist extends Component {
isOpen={isConfirmRemoveModalOpen}
kind={kinds.DANGER}
title={translate('RemoveSelected')}
message={translate('AreYouSureYouWantToRemoveTheSelectedItemsFromBlacklist')}
message={translate('AreYouSureYouWantToRemoveTheSelectedItemsFromBlocklist')}
confirmLabel={translate('RemoveSelected')}
onConfirm={this.onRemoveSelectedConfirmed}
onCancel={this.onConfirmRemoveModalClose}
@@ -219,7 +219,7 @@ class Blacklist extends Component {
}
}
Blacklist.propTypes = {
Blocklist.propTypes = {
isFetching: PropTypes.bool.isRequired,
isPopulated: PropTypes.bool.isRequired,
error: PropTypes.object,
@@ -227,9 +227,9 @@ Blacklist.propTypes = {
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
totalRecords: PropTypes.number,
isRemoving: PropTypes.bool.isRequired,
isClearingBlacklistExecuting: PropTypes.bool.isRequired,
isClearingBlocklistExecuting: PropTypes.bool.isRequired,
onRemoveSelected: PropTypes.func.isRequired,
onClearBlacklistPress: PropTypes.func.isRequired
onClearBlocklistPress: PropTypes.func.isRequired
};
export default Blacklist;
export default Blocklist;

View File

@@ -0,0 +1,152 @@
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 blocklistActions from 'Store/Actions/blocklistActions';
import { executeCommand } from 'Store/Actions/commandActions';
import createCommandExecutingSelector from 'Store/Selectors/createCommandExecutingSelector';
import { registerPagePopulator, unregisterPagePopulator } from 'Utilities/pagePopulator';
import Blocklist from './Blocklist';
function createMapStateToProps() {
return createSelector(
(state) => state.blocklist,
createCommandExecutingSelector(commandNames.CLEAR_BLOCKLIST),
(blocklist, isClearingBlocklistExecuting) => {
return {
isClearingBlocklistExecuting,
...blocklist
};
}
);
}
const mapDispatchToProps = {
...blocklistActions,
executeCommand
};
class BlocklistConnector extends Component {
//
// Lifecycle
componentDidMount() {
const {
useCurrentPage,
fetchBlocklist,
gotoBlocklistFirstPage
} = this.props;
registerPagePopulator(this.repopulate);
if (useCurrentPage) {
fetchBlocklist();
} else {
gotoBlocklistFirstPage();
}
}
componentDidUpdate(prevProps) {
if (prevProps.isClearingBlocklistExecuting && !this.props.isClearingBlocklistExecuting) {
this.props.gotoBlocklistFirstPage();
}
}
componentWillUnmount() {
this.props.clearBlocklist();
unregisterPagePopulator(this.repopulate);
}
//
// Control
repopulate = () => {
this.props.fetchBlocklist();
}
//
// Listeners
onFirstPagePress = () => {
this.props.gotoBlocklistFirstPage();
}
onPreviousPagePress = () => {
this.props.gotoBlocklistPreviousPage();
}
onNextPagePress = () => {
this.props.gotoBlocklistNextPage();
}
onLastPagePress = () => {
this.props.gotoBlocklistLastPage();
}
onPageSelect = (page) => {
this.props.gotoBlocklistPage({ page });
}
onRemoveSelected = (ids) => {
this.props.removeBlocklistItems({ ids });
}
onSortPress = (sortKey) => {
this.props.setBlocklistSort({ sortKey });
}
onTableOptionChange = (payload) => {
this.props.setBlocklistTableOption(payload);
if (payload.pageSize) {
this.props.gotoBlocklistFirstPage();
}
}
onClearBlocklistPress = () => {
this.props.executeCommand({ name: commandNames.CLEAR_BLOCKLIST });
}
//
// Render
render() {
return (
<Blocklist
onFirstPagePress={this.onFirstPagePress}
onPreviousPagePress={this.onPreviousPagePress}
onNextPagePress={this.onNextPagePress}
onLastPagePress={this.onLastPagePress}
onPageSelect={this.onPageSelect}
onRemoveSelected={this.onRemoveSelected}
onSortPress={this.onSortPress}
onTableOptionChange={this.onTableOptionChange}
onClearBlocklistPress={this.onClearBlocklistPress}
{...this.props}
/>
);
}
}
BlocklistConnector.propTypes = {
useCurrentPage: PropTypes.bool.isRequired,
isClearingBlocklistExecuting: PropTypes.bool.isRequired,
items: PropTypes.arrayOf(PropTypes.object).isRequired,
fetchBlocklist: PropTypes.func.isRequired,
gotoBlocklistFirstPage: PropTypes.func.isRequired,
gotoBlocklistPreviousPage: PropTypes.func.isRequired,
gotoBlocklistNextPage: PropTypes.func.isRequired,
gotoBlocklistLastPage: PropTypes.func.isRequired,
gotoBlocklistPage: PropTypes.func.isRequired,
removeBlocklistItems: PropTypes.func.isRequired,
setBlocklistSort: PropTypes.func.isRequired,
setBlocklistTableOption: PropTypes.func.isRequired,
clearBlocklist: PropTypes.func.isRequired,
executeCommand: PropTypes.func.isRequired
};
export default withCurrentPage(
connect(createMapStateToProps, mapDispatchToProps)(BlocklistConnector)
);

View File

@@ -10,7 +10,7 @@ import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import translate from 'Utilities/String/translate';
class BlacklistDetailsModal extends Component {
class BlocklistDetailsModal extends Component {
//
// Render
@@ -78,7 +78,7 @@ class BlacklistDetailsModal extends Component {
}
}
BlacklistDetailsModal.propTypes = {
BlocklistDetailsModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
sourceTitle: PropTypes.string.isRequired,
protocol: PropTypes.string.isRequired,
@@ -87,4 +87,4 @@ BlacklistDetailsModal.propTypes = {
onModalClose: PropTypes.func.isRequired
};
export default BlacklistDetailsModal;
export default BlocklistDetailsModal;

View File

@@ -11,10 +11,10 @@ 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';
import BlocklistDetailsModal from './BlocklistDetailsModal';
import styles from './BlocklistRow.css';
class BlacklistRow extends Component {
class BlocklistRow extends Component {
//
// Lifecycle
@@ -166,7 +166,7 @@ class BlacklistRow extends Component {
/>
<IconButton
title={translate('RemoveFromBlacklist')}
title={translate('RemoveFromBlocklist')}
name={icons.REMOVE}
kind={kinds.DANGER}
onPress={onRemovePress}
@@ -179,7 +179,7 @@ class BlacklistRow extends Component {
})
}
<BlacklistDetailsModal
<BlocklistDetailsModal
isOpen={this.state.isDetailsModalOpen}
sourceTitle={sourceTitle}
protocol={protocol}
@@ -193,7 +193,7 @@ class BlacklistRow extends Component {
}
BlacklistRow.propTypes = {
BlocklistRow.propTypes = {
id: PropTypes.number.isRequired,
movie: PropTypes.object.isRequired,
sourceTitle: PropTypes.string.isRequired,
@@ -210,4 +210,4 @@ BlacklistRow.propTypes = {
onRemovePress: PropTypes.func.isRequired
};
export default BlacklistRow;
export default BlocklistRow;

View File

@@ -1,8 +1,8 @@
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { removeBlacklistItem } from 'Store/Actions/blacklistActions';
import { removeBlocklistItem } from 'Store/Actions/blocklistActions';
import createMovieSelector from 'Store/Selectors/createMovieSelector';
import BlacklistRow from './BlacklistRow';
import BlocklistRow from './BlocklistRow';
function createMapStateToProps() {
return createSelector(
@@ -18,9 +18,9 @@ function createMapStateToProps() {
function createMapDispatchToProps(dispatch, props) {
return {
onRemovePress() {
dispatch(removeBlacklistItem({ id: props.id }));
dispatch(removeBlocklistItem({ id: props.id }));
}
};
}
export default connect(createMapStateToProps, createMapDispatchToProps)(BlacklistRow);
export default connect(createMapStateToProps, createMapDispatchToProps)(BlocklistRow);

View File

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

View File

@@ -32,6 +32,8 @@ class Queue extends Component {
constructor(props, context) {
super(props, context);
this._shouldBlockRefresh = false;
this.state = {
allSelected: false,
allUnselected: false,
@@ -43,6 +45,14 @@ class Queue extends Component {
};
}
shouldComponentUpdate() {
if (this._shouldBlockRefresh) {
return false;
}
return true;
}
componentDidUpdate(prevProps) {
const {
items,
@@ -85,6 +95,10 @@ class Queue extends Component {
//
// Listeners
onQueueRowModalOpenOrClose = (isOpen) => {
this._shouldBlockRefresh = isOpen;
}
onSelectAllChange = ({ value }) => {
this.setState(selectAll(this.state.selectedState, value));
}
@@ -100,15 +114,19 @@ class Queue extends Component {
}
onRemoveSelectedPress = () => {
this.setState({ isConfirmRemoveModalOpen: true });
this.setState({ isConfirmRemoveModalOpen: true }, () => {
this._shouldBlockRefresh = true;
});
}
onRemoveSelectedConfirmed = (payload) => {
this._shouldBlockRefresh = false;
this.props.onRemoveSelectedPress({ ids: this.getSelectedIds(), ...payload });
this.setState({ isConfirmRemoveModalOpen: false });
}
onConfirmRemoveModalClose = () => {
this._shouldBlockRefresh = false;
this.setState({ isConfirmRemoveModalOpen: false });
}
@@ -208,7 +226,7 @@ class Queue extends Component {
}
{
isPopulated && !hasError && !items.length &&
isAllPopulated && !hasError && !items.length &&
<div>
{translate('QueueIsEmpty')}
</div>
@@ -237,6 +255,7 @@ class Queue extends Component {
columns={columns}
{...item}
onSelectedChange={this.onSelectedChange}
onQueueRowModalOpenOrClose={this.onQueueRowModalOpenOrClose}
/>
);
})
@@ -263,6 +282,17 @@ class Queue extends Component {
return !!(item && item.movieId);
})
)}
allPending={isConfirmRemoveModalOpen && (
selectedIds.every((id) => {
const item = items.find((i) => i.id === id);
if (!item) {
return false;
}
return item.status === 'delay' || item.status === 'downloadClientUnavailable';
})
)}
onRemovePress={this.onRemoveSelectedConfirmed}
onModalClose={this.onConfirmRemoveModalClose}
/>

View File

@@ -43,6 +43,7 @@ class QueueConnector extends Component {
const {
useCurrentPage,
fetchQueue,
fetchQueueStatus,
gotoQueueFirstPage
} = this.props;
@@ -53,6 +54,8 @@ class QueueConnector extends Component {
} else {
gotoQueueFirstPage();
}
fetchQueueStatus();
}
componentDidUpdate(prevProps) {
@@ -152,6 +155,7 @@ QueueConnector.propTypes = {
useCurrentPage: PropTypes.bool.isRequired,
items: PropTypes.arrayOf(PropTypes.object).isRequired,
fetchQueue: PropTypes.func.isRequired,
fetchQueueStatus: PropTypes.func.isRequired,
gotoQueueFirstPage: PropTypes.func.isRequired,
gotoQueuePreviousPage: PropTypes.func.isRequired,
gotoQueueNextPage: PropTypes.func.isRequired,

View File

@@ -42,20 +42,33 @@ class QueueRow extends Component {
this.setState({ isRemoveQueueItemModalOpen: true });
}
onRemoveQueueItemModalConfirmed = (blacklist) => {
this.props.onRemoveQueueItemPress(blacklist);
onRemoveQueueItemModalConfirmed = (blocklist) => {
const {
onRemoveQueueItemPress,
onQueueRowModalOpenOrClose
} = this.props;
onQueueRowModalOpenOrClose(false);
onRemoveQueueItemPress(blocklist);
this.setState({ isRemoveQueueItemModalOpen: false });
}
onRemoveQueueItemModalClose = () => {
this.props.onQueueRowModalOpenOrClose(false);
this.setState({ isRemoveQueueItemModalOpen: false });
}
onInteractiveImportPress = () => {
this.props.onQueueRowModalOpenOrClose(true);
this.setState({ isInteractiveImportModalOpen: true });
}
onInteractiveImportModalClose = () => {
this.props.onQueueRowModalOpenOrClose(false);
this.setState({ isInteractiveImportModalOpen: false });
}
@@ -319,6 +332,7 @@ class QueueRow extends Component {
isOpen={isRemoveQueueItemModalOpen}
sourceTitle={title}
canIgnore={!!movie}
isPending={isPending}
onRemovePress={this.onRemoveQueueItemModalConfirmed}
onModalClose={this.onRemoveQueueItemModalClose}
/>
@@ -359,7 +373,8 @@ QueueRow.propTypes = {
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
onSelectedChange: PropTypes.func.isRequired,
onGrabPress: PropTypes.func.isRequired,
onRemoveQueueItemPress: PropTypes.func.isRequired
onRemoveQueueItemPress: PropTypes.func.isRequired,
onQueueRowModalOpenOrClose: PropTypes.func.isRequired
};
QueueRow.defaultProps = {

View File

@@ -22,7 +22,7 @@ class RemoveQueueItemModal extends Component {
this.state = {
remove: true,
blacklist: false
blocklist: false
};
}
@@ -32,7 +32,7 @@ class RemoveQueueItemModal extends Component {
resetState = function() {
this.setState({
remove: true,
blacklist: false
blocklist: false
});
}
@@ -43,8 +43,8 @@ class RemoveQueueItemModal extends Component {
this.setState({ remove: value });
}
onBlacklistChange = ({ value }) => {
this.setState({ blacklist: value });
onBlocklistChange = ({ value }) => {
this.setState({ blocklist: value });
}
onRemoveConfirmed = () => {
@@ -66,10 +66,11 @@ class RemoveQueueItemModal extends Component {
const {
isOpen,
sourceTitle,
canIgnore
canIgnore,
isPending
} = this.props;
const { remove, blacklist } = this.state;
const { remove, blocklist } = this.state;
return (
<Modal
@@ -89,27 +90,31 @@ class RemoveQueueItemModal extends Component {
{translate('RemoveFromQueueText', [sourceTitle])}
</div>
<FormGroup>
<FormLabel>{translate('RemoveFromDownloadClient')}</FormLabel>
{
isPending ?
null :
<FormGroup>
<FormLabel>{translate('RemoveFromDownloadClient')}</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="remove"
value={remove}
helpTextWarning={translate('RemoveHelpTextWarning')}
isDisabled={!canIgnore}
onChange={this.onRemoveChange}
/>
</FormGroup>
<FormInputGroup
type={inputTypes.CHECK}
name="remove"
value={remove}
helpTextWarning={translate('RemoveHelpTextWarning')}
isDisabled={!canIgnore}
onChange={this.onRemoveChange}
/>
</FormGroup>
}
<FormGroup>
<FormLabel>{translate('BlacklistRelease')}</FormLabel>
<FormLabel>{translate('BlocklistRelease')}</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="blacklist"
value={blacklist}
helpText={translate('BlacklistHelpText')}
onChange={this.onBlacklistChange}
name="blocklist"
value={blocklist}
helpText={translate('BlocklistHelpText')}
onChange={this.onBlocklistChange}
/>
</FormGroup>
@@ -137,6 +142,7 @@ RemoveQueueItemModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
sourceTitle: PropTypes.string.isRequired,
canIgnore: PropTypes.bool.isRequired,
isPending: PropTypes.bool.isRequired,
onRemovePress: PropTypes.func.isRequired,
onModalClose: PropTypes.func.isRequired
};

View File

@@ -23,7 +23,7 @@ class RemoveQueueItemsModal extends Component {
this.state = {
remove: true,
blacklist: false
blocklist: false
};
}
@@ -33,7 +33,7 @@ class RemoveQueueItemsModal extends Component {
resetState = function() {
this.setState({
remove: true,
blacklist: false
blocklist: false
});
}
@@ -44,8 +44,8 @@ class RemoveQueueItemsModal extends Component {
this.setState({ remove: value });
}
onBlacklistChange = ({ value }) => {
this.setState({ blacklist: value });
onBlocklistChange = ({ value }) => {
this.setState({ blocklist: value });
}
onRemoveConfirmed = () => {
@@ -67,10 +67,11 @@ class RemoveQueueItemsModal extends Component {
const {
isOpen,
selectedCount,
canIgnore
canIgnore,
allPending
} = this.props;
const { remove, blacklist } = this.state;
const { remove, blocklist } = this.state;
return (
<Modal
@@ -82,38 +83,42 @@ class RemoveQueueItemsModal extends Component {
onModalClose={this.onModalClose}
>
<ModalHeader>
Remove Selected Item{selectedCount > 1 ? 's' : ''}
{selectedCount > 1 ? translate('RemoveSelectedItems') : translate('RemoveSelectedItem')}
</ModalHeader>
<ModalBody>
<div className={styles.message}>
{translate('AreYouSureYouWantToRemoveSelectedItemsFromQueue', [selectedCount, selectedCount > 1 ? 's' : ''])}
{selectedCount > 1 ? translate('AreYouSureYouWantToRemoveSelectedItemsFromQueue', selectedCount) : translate('AreYouSureYouWantToRemoveSelectedItemFromQueue')}
</div>
<FormGroup>
<FormLabel>{translate('RemoveFromDownloadClient')}</FormLabel>
{
allPending ?
null :
<FormGroup>
<FormLabel>{translate('RemoveFromDownloadClient')}</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="remove"
value={remove}
helpTextWarning={translate('RemoveHelpTextWarning')}
isDisabled={!canIgnore}
onChange={this.onRemoveChange}
/>
</FormGroup>
<FormInputGroup
type={inputTypes.CHECK}
name="remove"
value={remove}
helpTextWarning={translate('RemoveHelpTextWarning')}
isDisabled={!canIgnore}
onChange={this.onRemoveChange}
/>
</FormGroup>
}
<FormGroup>
<FormLabel>
Blacklist Release{selectedCount > 1 ? 's' : ''}
{selectedCount > 1 ? translate('BlocklistReleases') : translate('BlocklistRelease')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="blacklist"
value={blacklist}
helpText={translate('BlacklistHelpText')}
onChange={this.onBlacklistChange}
name="blocklist"
value={blocklist}
helpText={translate('BlocklistHelpText')}
onChange={this.onBlocklistChange}
/>
</FormGroup>
@@ -141,6 +146,7 @@ RemoveQueueItemsModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
selectedCount: PropTypes.number.isRequired,
canIgnore: PropTypes.bool.isRequired,
allPending: PropTypes.bool.isRequired,
onRemovePress: PropTypes.func.isRequired,
onModalClose: PropTypes.func.isRequired
};

View File

@@ -81,7 +81,8 @@ class AddNewMovie extends Component {
const {
error,
items,
hasExistingMovies
hasExistingMovies,
colorImpairedMode
} = this.props;
const term = this.state.term;
@@ -102,7 +103,7 @@ class AddNewMovie extends Component {
className={styles.searchInput}
name="movieLookup"
value={term}
placeholder="eg. The Dark Knight, tmdb:155, imdb:tt0468569"
placeholder="e.g. The Dark Knight, tmdb:155, imdb:tt0468569"
autoFocus={true}
onChange={this.onSearchInputChange}
/>
@@ -141,6 +142,7 @@ class AddNewMovie extends Component {
return (
<AddNewMovieSearchResultConnector
key={item.tmdbId}
colorImpairedMode={colorImpairedMode}
{...item}
/>
);
@@ -159,7 +161,7 @@ class AddNewMovie extends Component {
{translate('YouCanAlsoSearch')}
</div>
<div>
<Link to="https://wiki.servarr.com/Radarr_FAQ#Why_cant_I_add_a_new_movie_to_Radarr">
<Link to="https://wiki.servarr.com/radarr/faq#why-can-i-not-add-a-new-movie-to-radarr">
{translate('CantFindMovie')}
</Link>
</div>
@@ -213,7 +215,8 @@ AddNewMovie.propTypes = {
items: PropTypes.arrayOf(PropTypes.object).isRequired,
hasExistingMovies: PropTypes.bool.isRequired,
onMovieLookupChange: PropTypes.func.isRequired,
onClearMovieLookup: PropTypes.func.isRequired
onClearMovieLookup: PropTypes.func.isRequired,
colorImpairedMode: PropTypes.bool.isRequired
};
export default AddNewMovie;

View File

@@ -3,8 +3,10 @@ import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { clearAddMovie, lookupMovie } from 'Store/Actions/addMovieActions';
import { clearQueueDetails, fetchQueueDetails } from 'Store/Actions/queueActions';
import { fetchRootFolders } from 'Store/Actions/rootFolderActions';
import { fetchImportExclusions } from 'Store/Actions/Settings/importExclusions';
import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector';
import parseUrl from 'Utilities/String/parseUrl';
import AddNewMovie from './AddNewMovie';
@@ -13,13 +15,15 @@ function createMapStateToProps() {
(state) => state.addMovie,
(state) => state.movies.items.length,
(state) => state.router.location,
(addMovie, existingMoviesCount, location) => {
createUISettingsSelector(),
(addMovie, existingMoviesCount, location, uiSettings) => {
const { params } = parseUrl(location.search);
return {
...addMovie,
term: params.term,
hasExistingMovies: existingMoviesCount > 0
hasExistingMovies: existingMoviesCount > 0,
colorImpairedMode: uiSettings.enableColorImpairedMode
};
}
);
@@ -29,7 +33,9 @@ const mapDispatchToProps = {
lookupMovie,
clearAddMovie,
fetchRootFolders,
fetchImportExclusions
fetchImportExclusions,
fetchQueueDetails,
clearQueueDetails
};
class AddNewMovieConnector extends Component {
@@ -46,6 +52,7 @@ class AddNewMovieConnector extends Component {
componentDidMount() {
this.props.fetchRootFolders();
this.props.fetchImportExclusions();
this.props.fetchQueueDetails();
}
componentWillUnmount() {
@@ -54,6 +61,7 @@ class AddNewMovieConnector extends Component {
}
this.props.clearAddMovie();
this.props.clearQueueDetails();
}
//
@@ -102,7 +110,9 @@ AddNewMovieConnector.propTypes = {
lookupMovie: PropTypes.func.isRequired,
clearAddMovie: PropTypes.func.isRequired,
fetchRootFolders: PropTypes.func.isRequired,
fetchImportExclusions: PropTypes.func.isRequired
fetchImportExclusions: PropTypes.func.isRequired,
fetchQueueDetails: PropTypes.func.isRequired,
clearQueueDetails: PropTypes.func.isRequired
};
export default connect(createMapStateToProps, mapDispatchToProps)(AddNewMovieConnector);

View File

@@ -27,9 +27,11 @@
}
.poster {
flex: 0 0 170px;
position: relative;
display: block;
margin-right: 20px;
height: 250px;
background-color: $defaultColor;
}
.content {
@@ -86,6 +88,28 @@
pointer-events: all;
}
.posterContainer {
position: relative;
}
.certification {
margin-left: 2px;
padding: 0 5px;
border: 1px solid;
border-radius: 5px;
font-size: 16px;
}
.runtime {
margin-left: 8px;
font-size: 16px;
}
.statusContainer {
margin-right: 22px;
font-weight: bold;
}
@media only screen and (max-width: $breakpointMedium) {
.titleRow {
justify-content: space-between;

View File

@@ -7,7 +7,10 @@ import Link from 'Components/Link/Link';
import Tooltip from 'Components/Tooltip/Tooltip';
import { icons, kinds, sizes, tooltipPositions } from 'Helpers/Props';
import MovieDetailsLinks from 'Movie/Details/MovieDetailsLinks';
import MovieStatusLabel from 'Movie/Details/MovieStatusLabel';
import MovieIndexProgressBar from 'Movie/Index/ProgressBar/MovieIndexProgressBar';
import MoviePoster from 'Movie/MoviePoster';
import formatRuntime from 'Utilities/Date/formatRuntime';
import translate from 'Utilities/String/translate';
import AddNewMovieModal from './AddNewMovieModal';
import styles from './AddNewMovieSearchResult.css';
@@ -65,7 +68,17 @@ class AddNewMovieSearchResult extends Component {
images,
isExistingMovie,
isExclusionMovie,
isSmallScreen
isSmallScreen,
colorImpairedMode,
id,
monitored,
hasFile,
isAvailable,
queueStatus,
queueState,
runtime,
movieRuntimeFormat,
certification
} = this.props;
const {
@@ -73,6 +86,13 @@ class AddNewMovieSearchResult extends Component {
} = this.state;
const linkProps = isExistingMovie ? { to: `/movie/${titleSlug}` } : { onPress: this.onPress };
const posterWidth = 167;
const posterHeight = 250;
const elementStyle = {
width: `${posterWidth}px`,
height: `${posterHeight}px`
};
return (
<div className={styles.searchResult}>
@@ -85,12 +105,31 @@ class AddNewMovieSearchResult extends Component {
{
isSmallScreen ?
null :
<MoviePoster
className={styles.poster}
images={images}
size={250}
overflow={true}
/>
<div>
<div className={styles.posterContainer}>
<MoviePoster
className={styles.poster}
style={elementStyle}
images={images}
size={250}
overflow={true}
/>
</div>
{
isExistingMovie &&
<MovieIndexProgressBar
monitored={monitored}
hasFile={hasFile}
status={status}
posterWidth={posterWidth}
detailedProgressBar={true}
queueStatus={queueStatus}
queueState={queueState}
isAvailable={isAvailable}
/>
}
</div>
}
<div className={styles.content}>
@@ -133,10 +172,26 @@ class AddNewMovieSearchResult extends Component {
</div>
</div>
<div>
{
!!certification &&
<span className={styles.certification}>
{certification}
</span>
}
{
!!runtime &&
<span className={styles.runtime}>
{formatRuntime(runtime, movieRuntimeFormat)}
</span>
}
</div>
<div>
<Label size={sizes.LARGE}>
<HeartRating
rating={ratings.value}
ratings={ratings}
iconSize={13}
/>
</Label>
@@ -176,13 +231,15 @@ class AddNewMovieSearchResult extends Component {
/>
{
status === 'ended' &&
<Label
kind={kinds.DANGER}
size={sizes.LARGE}
>
Ended
</Label>
isExistingMovie && isSmallScreen &&
<MovieStatusLabel
hasMovieFiles={hasFile}
monitored={monitored}
isAvailable={isAvailable}
id={id}
useLabel={true}
colorImpairedMode={colorImpairedMode}
/>
}
</div>
@@ -222,7 +279,18 @@ AddNewMovieSearchResult.propTypes = {
images: PropTypes.arrayOf(PropTypes.object).isRequired,
isExistingMovie: PropTypes.bool.isRequired,
isExclusionMovie: PropTypes.bool.isRequired,
isSmallScreen: PropTypes.bool.isRequired
isSmallScreen: PropTypes.bool.isRequired,
id: PropTypes.number,
queueItems: PropTypes.arrayOf(PropTypes.object),
monitored: PropTypes.bool.isRequired,
hasFile: PropTypes.bool.isRequired,
isAvailable: PropTypes.bool.isRequired,
colorImpairedMode: PropTypes.bool,
queueStatus: PropTypes.string,
queueState: PropTypes.string,
runtime: PropTypes.number.isRequired,
movieRuntimeFormat: PropTypes.string.isRequired,
certification: PropTypes.string
};
export default AddNewMovieSearchResult;

View File

@@ -10,11 +10,17 @@ function createMapStateToProps() {
createExistingMovieSelector(),
createExclusionMovieSelector(),
createDimensionsSelector(),
(isExistingMovie, isExclusionMovie, dimensions) => {
(state) => state.queue.details.items,
(state, { internalId }) => internalId,
(isExistingMovie, isExclusionMovie, dimensions, queueItems, internalId) => {
const firstQueueItem = queueItems.find((q) => q.movieId === internalId && internalId > 0);
return {
isExistingMovie,
isExclusionMovie,
isSmallScreen: dimensions.isSmallScreen
isSmallScreen: dimensions.isSmallScreen,
queueStatus: firstQueueItem ? firstQueueItem.status : null,
queueState: firstQueueItem ? firstQueueItem.trackedDownloadState : null
};
}
);

View File

@@ -30,3 +30,9 @@
.importButtonIcon {
margin-right: 8px;
}
.addErrorAlert {
composes: alert from '~Components/Alert.css';
margin: 20px 0;
}

View File

@@ -1,5 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import Alert from 'Components/Alert';
import FieldSet from 'Components/FieldSet';
import FileBrowserModal from 'Components/FileBrowser/FileBrowserModal';
import Icon from 'Components/Icon';
@@ -72,23 +73,29 @@ class ImportMovieSelectFolder extends Component {
isWindows,
isFetching,
isPopulated,
isSaving,
error,
saveError,
items
} = this.props;
const hasRootFolders = items.length > 0;
return (
<PageContent title={translate('ImportMovies')}>
<PageContentBody>
{
isFetching && !isPopulated &&
<LoadingIndicator />
isFetching && !isPopulated ?
<LoadingIndicator /> :
null
}
{
!isFetching && !!error &&
!isFetching && error ?
<div>
{translate('UnableToLoadRootFolders')}
</div>
</div> :
null
}
{
@@ -108,7 +115,7 @@ class ImportMovieSelectFolder extends Component {
</div>
{
items.length > 0 ?
hasRootFolders ?
<div className={styles.recentFolders}>
<FieldSet legend={translate('RecentFolders')}>
<Table
@@ -131,35 +138,51 @@ class ImportMovieSelectFolder extends Component {
</TableBody>
</Table>
</FieldSet>
<Button
kind={kinds.PRIMARY}
size={sizes.LARGE}
onPress={this.onAddNewRootFolderPress}
>
<Icon
className={styles.importButtonIcon}
name={icons.DRIVE}
/>
{translate('ChooseAnotherFolder')}
</Button>
</div> :
<div className={styles.startImport}>
<Button
kind={kinds.PRIMARY}
size={sizes.LARGE}
onPress={this.onAddNewRootFolderPress}
>
<Icon
className={styles.importButtonIcon}
name={icons.DRIVE}
/>
{translate('StartImport')}
</Button>
</div>
null
}
{
!isSaving && saveError ?
<Alert
className={styles.addErrorAlert}
kind={kinds.DANGER}
>
{translate('UnableToAddRootFolder')}
<ul>
{
saveError.responseJSON.map((e, index) => {
return (
<li key={index}>
{e.errorMessage}
</li>
);
})
}
</ul>
</Alert> :
null
}
<div className={hasRootFolders ? undefined : styles.startImport}>
<Button
kind={kinds.PRIMARY}
size={sizes.LARGE}
onPress={this.onAddNewRootFolderPress}
>
<Icon
className={styles.importButtonIcon}
name={icons.DRIVE}
/>
{
hasRootFolders ?
translate('ChooseAnotherFolder') :
translate('StartImport')
}
</Button>
</div>
<FileBrowserModal
isOpen={this.state.isAddNewRootFolderModalOpen}
name="rootFolderPath"
@@ -179,7 +202,9 @@ ImportMovieSelectFolder.propTypes = {
isWindows: PropTypes.bool.isRequired,
isFetching: PropTypes.bool.isRequired,
isPopulated: PropTypes.bool.isRequired,
isSaving: PropTypes.bool.isRequired,
error: PropTypes.object,
saveError: PropTypes.object,
items: PropTypes.arrayOf(PropTypes.object).isRequired,
onNewRootFolderSelect: PropTypes.func.isRequired,
onDeleteRootFolderPress: PropTypes.func.isRequired

View File

@@ -1,7 +1,7 @@
import PropTypes from 'prop-types';
import React from 'react';
import { Redirect, Route } from 'react-router-dom';
import BlacklistConnector from 'Activity/Blacklist/BlacklistConnector';
import BlocklistConnector from 'Activity/Blocklist/BlocklistConnector';
import HistoryConnector from 'Activity/History/HistoryConnector';
import QueueConnector from 'Activity/Queue/QueueConnector';
import AddNewMovieConnector from 'AddMovie/AddNewMovie/AddNewMovieConnector';
@@ -111,8 +111,8 @@ function AppRoutes(props) {
/>
<Route
path="/activity/blacklist"
component={BlacklistConnector}
path="/activity/blocklist"
component={BlocklistConnector}
/>
{/*

View File

@@ -11,9 +11,47 @@ import UpdateChanges from 'System/Updates/UpdateChanges';
import translate from 'Utilities/String/translate';
import styles from './AppUpdatedModalContent.css';
function mergeUpdates(items, version, prevVersion) {
let installedIndex = items.findIndex((u) => u.version === version);
let installedPreviouslyIndex = items.findIndex((u) => u.version === prevVersion);
if (installedIndex === -1) {
installedIndex = 0;
}
if (installedPreviouslyIndex === -1) {
installedPreviouslyIndex = items.length;
} else if (installedPreviouslyIndex === installedIndex && items.length) {
installedPreviouslyIndex += 1;
}
const appliedUpdates = items.slice(installedIndex, installedPreviouslyIndex);
if (!appliedUpdates.length) {
return null;
}
const appliedChanges = { new: [], fixed: [] };
appliedUpdates.forEach((u) => {
if (u.changes) {
appliedChanges.new.push(... u.changes.new);
appliedChanges.fixed.push(... u.changes.fixed);
}
});
const mergedUpdate = Object.assign({}, appliedUpdates[0], { changes: appliedChanges });
if (!appliedChanges.new.length && !appliedChanges.fixed.length) {
mergedUpdate.changes = null;
}
return mergedUpdate;
}
function AppUpdatedModalContent(props) {
const {
version,
prevVersion,
isPopulated,
error,
items,
@@ -21,7 +59,7 @@ function AppUpdatedModalContent(props) {
onModalClose
} = props;
const update = items[0];
const update = mergeUpdates(items, version, prevVersion);
return (
<ModalContent onModalClose={onModalClose}>
@@ -89,6 +127,7 @@ function AppUpdatedModalContent(props) {
AppUpdatedModalContent.propTypes = {
version: PropTypes.string.isRequired,
prevVersion: PropTypes.string,
isPopulated: PropTypes.bool.isRequired,
error: PropTypes.object,
items: PropTypes.arrayOf(PropTypes.object).isRequired,

View File

@@ -8,8 +8,9 @@ import AppUpdatedModalContent from './AppUpdatedModalContent';
function createMapStateToProps() {
return createSelector(
(state) => state.app.version,
(state) => state.app.prevVersion,
(state) => state.system.updates,
(version, updates) => {
(version, prevVersion, updates) => {
const {
isPopulated,
error,
@@ -18,6 +19,7 @@ function createMapStateToProps() {
return {
version,
prevVersion,
isPopulated,
error,
items

View File

@@ -29,7 +29,7 @@
}
.time {
flex: 0 0 120px;
flex: 0 0 125px;
margin-right: 10px;
border: none !important;
}
@@ -54,20 +54,24 @@
composes: downloaded from '~Calendar/Events/CalendarEvent.css';
}
.downloading {
composes: downloading from '~Calendar/Events/CalendarEvent.css';
.queue {
composes: queue from '~Calendar/Events/CalendarEvent.css';
}
.unmonitored {
composes: unmonitored from '~Calendar/Events/CalendarEvent.css';
}
.missing {
composes: missing from '~Calendar/Events/CalendarEvent.css';
.missingUnmonitored {
composes: missingUnmonitored from '~Calendar/Events/CalendarEvent.css';
}
.unreleased {
composes: unreleased from '~Calendar/Events/CalendarEvent.css';
.missingMonitored {
composes: missingMonitored from '~Calendar/Events/CalendarEvent.css';
}
.continuing {
composes: continuing from '~Calendar/Events/CalendarEvent.css';
}
@media only screen and (max-width: $breakpointSmall) {

View File

@@ -3,10 +3,10 @@ import moment from 'moment';
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import CalendarEventQueueDetails from 'Calendar/Events/CalendarEventQueueDetails';
import getStatusStyle from 'Calendar/getStatusStyle';
import Icon from 'Components/Icon';
import Link from 'Components/Link/Link';
import { icons, kinds } from 'Helpers/Props';
import getStatusStyle from 'Utilities/Movie/getStatusStyle';
import translate from 'Utilities/String/translate';
import styles from './AgendaEvent.css';
@@ -82,7 +82,7 @@ class AgendaEvent extends Component {
startTime = moment(startTime);
const downloading = !!(queueItem || grabbed);
const isMonitored = monitored;
const statusStyle = getStatusStyle(hasFile, downloading, isAvailable, isMonitored);
const statusStyle = getStatusStyle(null, isMonitored, hasFile, isAvailable, 'style', downloading);
const joinedGenres = genres.slice(0, 2).join(', ');
const link = `/movie/${titleSlug}`;

View File

@@ -24,7 +24,7 @@ function createMissingMovieIdsSelector() {
const inCinemas = movie.inCinemas;
if (
!movie.movieFileId &&
!movie.hasFile &&
moment(inCinemas).isAfter(start) &&
moment(inCinemas).isBefore(end) &&
isBefore(movie.inCinemas) &&

View File

@@ -60,39 +60,30 @@
}
}
.downloading {
.queue {
border-left-color: $purple !important;
}
.unmonitored {
border-left-color: $gray !important;
}
.missingUnmonitored {
border-left-color: $warningColor !important;
&:global(.colorImpaired) {
background: repeating-linear-gradient(45deg, $colorImpairedGradientDark, $colorImpairedGradientDark 5px, $colorImpairedGradient 5px, $colorImpairedGradient 10px);
}
}
.onAir {
border-left-color: $warningColor !important;
&:global(.colorImpaired) {
background: repeating-linear-gradient(90deg, $colorImpairedGradientDark, $colorImpairedGradientDark 5px, $colorImpairedGradient 5px, $colorImpairedGradient 10px);
}
}
.missing {
.missingMonitored {
border-left-color: $dangerColor !important;
&:global(.colorImpaired) {
border-left-color: color($dangerColor saturation(+15%)) !important;
background: repeating-linear-gradient(90deg, $colorImpairedGradientDark, $colorImpairedGradientDark 5px, $colorImpairedGradient 5px, $colorImpairedGradient 10px);
}
}
.unreleased {
.continuing {
border-left-color: $primaryColor !important;
&:global(.colorImpaired) {
background: repeating-linear-gradient(90deg, $colorImpairedGradientDark, $colorImpairedGradientDark 5px, $colorImpairedGradient 5px, $colorImpairedGradient 10px);
}
}

View File

@@ -2,10 +2,10 @@ import classNames from 'classnames';
import moment from 'moment';
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import getStatusStyle from 'Calendar/getStatusStyle';
import Icon from 'Components/Icon';
import Link from 'Components/Link/Link';
import { icons, kinds } from 'Helpers/Props';
import getStatusStyle from 'Utilities/Movie/getStatusStyle';
import translate from 'Utilities/String/translate';
import CalendarEventQueueDetails from './CalendarEventQueueDetails';
import styles from './CalendarEvent.css';
@@ -38,20 +38,20 @@ class CalendarEvent extends Component {
const isDownloading = !!(queueItem || grabbed);
const isMonitored = monitored;
const statusStyle = getStatusStyle(hasFile, isDownloading, isAvailable, isMonitored);
const statusStyle = getStatusStyle(null, isMonitored, hasFile, isAvailable, 'style', isDownloading);
const joinedGenres = genres.slice(0, 2).join(', ');
const link = `/movie/${titleSlug}`;
const eventType = [];
if (moment(date).isSame(moment(inCinemas), 'day')) {
if (inCinemas && moment(date).isSame(moment(inCinemas), 'day')) {
eventType.push('Cinemas');
}
if (moment(date).isSame(moment(physicalRelease), 'day')) {
if (physicalRelease && moment(date).isSame(moment(physicalRelease), 'day')) {
eventType.push('Physical');
}
if (moment(date).isSame(moment(digitalRelease), 'day')) {
if (digitalRelease && moment(date).isSame(moment(digitalRelease), 'day')) {
eventType.push('Digital');
}

View File

@@ -1,23 +0,0 @@
function getStatusStyle(hasFile, downloading, isAvailable, isMonitored) {
if (hasFile) {
return 'downloaded';
}
if (downloading) {
return 'downloading';
}
if (!isMonitored) {
return 'unmonitored';
}
if (isAvailable && !hasFile) {
return 'missing';
}
return 'unreleased';
}
export default getStatusStyle;

View File

@@ -22,7 +22,7 @@ function getUrls(state) {
tags
} = state;
let icalUrl = `${window.location.host}${window.Radarr.urlBase}/feed/calendar/Radarr.ics?`;
let icalUrl = `${window.location.host}${window.Radarr.urlBase}/feed/v3/calendar/Radarr.ics?`;
if (unmonitored) {
icalUrl += 'unmonitored=true&';

View File

@@ -1,7 +1,7 @@
export const APPLICATION_UPDATE = 'ApplicationUpdate';
export const BACKUP = 'Backup';
export const REFRESH_MONITORED_DOWNLOADS = 'RefreshMonitoredDownloads';
export const CLEAR_BLACKLIST = 'ClearBlacklist';
export const CLEAR_BLOCKLIST = 'ClearBlocklist';
export const CLEAR_LOGS = 'ClearLog';
export const CUTOFF_UNMET_MOVIES_SEARCH = 'CutoffUnmetMoviesSearch';
export const DELETE_LOG_FILES = 'DeleteLogFiles';

View File

@@ -16,4 +16,9 @@
color: #3a3f51;
font-size: 21px;
line-height: inherit;
&.small {
color: #909293;
font-size: 18px;
}
}

View File

@@ -1,5 +1,7 @@
import classNames from 'classnames';
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { sizes } from 'Helpers/Props';
import styles from './FieldSet.css';
class FieldSet extends Component {
@@ -9,13 +11,14 @@ class FieldSet extends Component {
render() {
const {
size,
legend,
children
} = this.props;
return (
<fieldset className={styles.fieldSet}>
<legend className={styles.legend}>
<legend className={classNames(styles.legend, (size === sizes.SMALL) && styles.small)}>
{legend}
</legend>
{children}
@@ -26,8 +29,13 @@ class FieldSet extends Component {
}
FieldSet.propTypes = {
size: PropTypes.oneOf(sizes.all).isRequired,
legend: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),
children: PropTypes.node
};
FieldSet.defaultProps = {
size: sizes.MEDIUM
};
export default FieldSet;

View File

@@ -129,7 +129,7 @@ class FileBrowserModalContent extends Component {
className={styles.mappedDrivesWarning}
kind={kinds.WARNING}
>
<Link to="https://wiki.servarr.com/Radarr_FAQ#Why_cant_Radarr_see_my_files_on_a_remote_server">
<Link to="https://wiki.servarr.com/radarr/faq#why-cant-radarr-see-my-files-on-a-remote-server">
{translate('MappedDrivesRunningAsService')}
</Link> .
</Alert>

View File

@@ -166,7 +166,9 @@ class FilterBuilderModalContent extends Component {
</div>
</div>
<div className={styles.label}>Filters</div>
<div className={styles.label}>
{translate('Filters')}
</div>
<div className={styles.rows}>
{

View File

@@ -16,7 +16,7 @@ function createTagListSelector() {
(selectedFilterBuilderProp.type === filterBuilderTypes.NUMBER ||
selectedFilterBuilderProp.type === filterBuilderTypes.STRING) &&
filterType !== filterTypes.EQUAL &&
filterType !== filterBuilderTypes.NOT_EQUAL ||
filterType !== filterTypes.NOT_EQUAL ||
!selectedFilterBuilderProp.optionsSelector
) {
return [];

View File

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

View File

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

View File

@@ -85,3 +85,21 @@
display: inline-block;
margin: 5px -5px 5px 0;
}
.mobileCloseButtonContainer {
display: flex;
justify-content: flex-end;
height: 40px;
border-bottom: 1px solid $borderColor;
}
.mobileCloseButton {
width: 40px;
height: 40px;
text-align: center;
line-height: 40px;
&:hover {
color: $modalCloseButtonHoverColor;
}
}

View File

@@ -479,6 +479,7 @@ class EnhancedSelectInput extends Component {
<OptionComponent
key={v.key}
id={v.key}
dividerAfter={v.dividerAfter}
depth={depth}
isSelected={isSelectedItem(index, this.props)}
isDisabled={parentSelected}
@@ -518,6 +519,18 @@ class EnhancedSelectInput extends Component {
scrollDirection={scrollDirections.NONE}
>
<Scroller className={styles.optionsModalScroller}>
<div className={styles.mobileCloseButtonContainer}>
<Link
className={styles.mobileCloseButton}
onPress={this.onOptionsModalClose}
>
<Icon
name={icons.CLOSE}
size={18}
/>
</Link>
</div>
{
values.map((v, index) => {
const hasParent = v.parentKey !== undefined;
@@ -527,6 +540,7 @@ class EnhancedSelectInput extends Component {
<OptionComponent
key={v.key}
id={v.key}
dividerAfter={v.dividerAfter}
depth={depth}
isSelected={isSelectedItem(index, this.props)}
isMultiSelect={isMultiSelect}

View File

@@ -54,4 +54,8 @@
&:last-child {
border: none;
}
&:hover {
background-color: unset;
}
}

View File

@@ -12,7 +12,9 @@ class EnhancedSelectInputOption extends Component {
//
// Listeners
onPress = () => {
onPress = (e) => {
e.preventDefault();
const {
id,
onSelect

View File

@@ -8,11 +8,13 @@ import AvailabilitySelectInput from './AvailabilitySelectInput';
import CaptchaInputConnector from './CaptchaInputConnector';
import CheckInput from './CheckInput';
import DeviceInputConnector from './DeviceInputConnector';
import DownloadClientSelectInputConnector from './DownloadClientSelectInputConnector';
import EnhancedSelectInput from './EnhancedSelectInput';
import EnhancedSelectInputConnector from './EnhancedSelectInputConnector';
import FormInputHelpText from './FormInputHelpText';
import IndexerFlagsSelectInputConnector from './IndexerFlagsSelectInputConnector';
import KeyValueListInput from './KeyValueListInput';
import LanguageSelectInputConnector from './LanguageSelectInputConnector';
import MovieMonitoredSelectInput from './MovieMonitoredSelectInput';
import NumberInput from './NumberInput';
import OAuthInputConnector from './OAuthInputConnector';
@@ -72,6 +74,12 @@ function getComponent(type) {
case inputTypes.INDEXER_FLAGS_SELECT:
return IndexerFlagsSelectInputConnector;
case inputTypes.DOWNLOAD_CLIENT_SELECT:
return DownloadClientSelectInputConnector;
case inputTypes.LANGUAGE_SELECT:
return LanguageSelectInputConnector;
case inputTypes.SELECT:
return EnhancedSelectInput;

View File

@@ -21,3 +21,8 @@
color: $darkGray;
font-size: $smallFontSize;
}
.divider {
border: none;
border-bottom: 1px solid $lightGray;
}

View File

@@ -12,37 +12,46 @@ function HintedSelectInputOption(props) {
depth,
isSelected,
isDisabled,
dividerAfter,
isMultiSelect,
isMobile,
...otherProps
} = props;
return (
<EnhancedSelectInputOption
id={id}
depth={depth}
isSelected={isSelected}
isDisabled={isDisabled}
isHidden={isDisabled}
isMultiSelect={isMultiSelect}
isMobile={isMobile}
{...otherProps}
>
<div className={classNames(
styles.optionText,
isMobile && styles.isMobile
)}
<div>
<EnhancedSelectInputOption
id={id}
depth={depth}
isSelected={isSelected}
isDisabled={isDisabled}
isHidden={isDisabled}
isMultiSelect={isMultiSelect}
isMobile={isMobile}
{...otherProps}
>
<div>{value}</div>
<div className={classNames(
styles.optionText,
isMobile && styles.isMobile
)}
>
<div>{value}</div>
{
hint != null &&
<div className={styles.hintText}>
{hint}
</div>
}
</div>
</EnhancedSelectInputOption>
{
hint != null &&
<div className={styles.hintText}>
{hint}
</div>
}
</div>
</EnhancedSelectInputOption>
{
dividerAfter ?
<div className={styles.divider} /> :
null
}
</div>
);
}
@@ -50,15 +59,18 @@ HintedSelectInputOption.propTypes = {
id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
value: PropTypes.string.isRequired,
hint: PropTypes.node,
name: PropTypes.string,
depth: PropTypes.number,
isSelected: PropTypes.bool.isRequired,
isDisabled: PropTypes.bool.isRequired,
dividerAfter: PropTypes.bool.isRequired,
isMultiSelect: PropTypes.bool.isRequired,
isMobile: PropTypes.bool.isRequired
};
HintedSelectInputOption.defaultProps = {
isDisabled: false,
dividerAfter: false,
isHidden: false,
isMultiSelect: false
};

View File

@@ -0,0 +1,52 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import EnhancedSelectInput from './EnhancedSelectInput';
function createMapStateToProps() {
return createSelector(
(state, { values }) => values,
( languages ) => {
const minId = languages.reduce((min, v) => (v.key < 1 ? v.key : min), languages[0].key);
const values = languages.map(({ key, value }) => {
return {
key,
value,
dividerAfter: minId < 1 ? key === minId : false
};
});
return {
values
};
}
);
}
class LanguageSelectInputConnector extends Component {
//
// Render
render() {
return (
<EnhancedSelectInput
{...this.props}
onChange={this.props.onChange}
/>
);
}
}
LanguageSelectInputConnector.propTypes = {
name: PropTypes.string.isRequired,
value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]).isRequired,
values: PropTypes.arrayOf(PropTypes.object).isRequired,
onChange: PropTypes.func.isRequired
};
export default connect(createMapStateToProps)(LanguageSelectInputConnector);

View File

@@ -49,6 +49,7 @@ function getSelectValues(selectOptions) {
result.push({
key: option.value,
value: option.name,
dividerAfter: option.dividerAfter,
hint: option.hint
});
@@ -63,6 +64,7 @@ function ProviderFieldFormGroup(props) {
label,
helpText,
helpLink,
placeholder,
value,
type,
advanced,
@@ -95,6 +97,7 @@ function ProviderFieldFormGroup(props) {
label={label}
helpText={helpText}
helpLink={helpLink}
placeholder={placeholder}
value={value}
values={getSelectValues(selectOptions)}
errors={errors}
@@ -120,6 +123,7 @@ ProviderFieldFormGroup.propTypes = {
label: PropTypes.string.isRequired,
helpText: PropTypes.string,
helpLink: PropTypes.string,
placeholder: PropTypes.string,
value: PropTypes.any,
type: PropTypes.string.isRequired,
advanced: PropTypes.bool.isRequired,

View File

@@ -10,13 +10,16 @@ const ADD_NEW_KEY = 'addNew';
function createMapStateToProps() {
return createSelector(
(state) => state.rootFolders,
(state, { value }) => value,
(state, { includeMissingValue }) => includeMissingValue,
(state, { includeNoChange }) => includeNoChange,
(rootFolders, includeNoChange) => {
(rootFolders, value, includeMissingValue, includeNoChange) => {
const values = rootFolders.items.map((rootFolder) => {
return {
key: rootFolder.path,
value: rootFolder.path,
freeSpace: rootFolder.freeSpace
freeSpace: rootFolder.freeSpace,
isMissing: false
};
});
@@ -24,7 +27,8 @@ function createMapStateToProps() {
values.unshift({
key: 'noChange',
value: 'No Change',
isDisabled: true
isDisabled: true,
isMissing: false
});
}
@@ -37,6 +41,15 @@ function createMapStateToProps() {
});
}
if (includeMissingValue && !values.find((v) => v.key === value)) {
values.push({
key: value,
value,
isMissing: true,
isDisabled: true
});
}
values.push({
key: ADD_NEW_KEY,
value: 'Add a new path'
@@ -151,7 +164,8 @@ RootFolderSelectInputConnector.propTypes = {
};
RootFolderSelectInputConnector.defaultProps = {
includeNoChange: false
includeNoChange: false,
value: ''
};
export default connect(createMapStateToProps, createMapDispatchToProps)(RootFolderSelectInputConnector);

View File

@@ -29,3 +29,9 @@
color: $darkGray;
font-size: $smallFontSize;
}
.isMissing {
margin-left: 15px;
color: $dangerColor;
font-size: $smallFontSize;
}

View File

@@ -10,6 +10,7 @@ function RootFolderSelectInputOption(props) {
id,
value,
freeSpace,
isMissing,
movieFolder,
isMobile,
isWindows,
@@ -43,11 +44,20 @@ function RootFolderSelectInputOption(props) {
</div>
{
freeSpace != null &&
freeSpace == null ?
null :
<div className={styles.freeSpace}>
{formatBytes(freeSpace)} Free
</div>
}
{
isMissing ?
<div className={styles.isMissing}>
Missing
</div> :
null
}
</div>
</EnhancedSelectInputOption>
);
@@ -58,6 +68,7 @@ RootFolderSelectInputOption.propTypes = {
value: PropTypes.string.isRequired,
freeSpace: PropTypes.number,
movieFolder: PropTypes.string,
isMissing: PropTypes.boolean,
isMobile: PropTypes.bool.isRequired,
isWindows: PropTypes.bool
};

View File

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

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

View File

@@ -19,6 +19,10 @@
&.outline {
color: $dangerColor;
}
&:global(.colorImpaired) {
background: repeating-linear-gradient(90deg, color($dangerColor shade(5%)), color($dangerColor shade(5%)) 5px, color($dangerColor shade(15%)) 5px, color($dangerColor shade(15%)) 10px);
}
}
.default {
@@ -85,6 +89,10 @@
&.outline {
color: $warningColor;
}
&:global(.colorImpaired) {
background: repeating-linear-gradient(45deg, $warningColor, $warningColor 5px, color($warningColor tint(15%)) 5px, color($warningColor tint(15%)) 10px);
}
}
.queue {

View File

@@ -11,6 +11,7 @@ function Label(props) {
size,
outline,
children,
colorImpairedMode,
...otherProps
} = props;
@@ -20,7 +21,8 @@ function Label(props) {
className,
styles[kind],
styles[size],
outline && styles.outline
outline && styles.outline,
colorImpairedMode && 'colorImpaired'
)}
{...otherProps}
>
@@ -34,14 +36,16 @@ Label.propTypes = {
kind: PropTypes.oneOf(kinds.all).isRequired,
size: PropTypes.oneOf(sizes.all).isRequired,
outline: PropTypes.bool.isRequired,
children: PropTypes.node.isRequired
children: PropTypes.node.isRequired,
colorImpairedMode: PropTypes.bool
};
Label.defaultProps = {
className: styles.label,
kind: kinds.DEFAULT,
size: sizes.SMALL,
outline: false
outline: false,
colorImpairedMode: false
};
export default Label;

View File

@@ -38,11 +38,12 @@ class Link extends Component {
const linkProps = { target };
let el = component;
if (to) {
if (to && typeof to === 'string') {
if ((/\w+?:\/\//).test(to)) {
el = 'a';
linkProps.href = to;
linkProps.target = target || '_blank';
linkProps.rel = 'noreferrer';
} else if (noRouter) {
el = 'a';
linkProps.href = to;
@@ -52,6 +53,18 @@ class Link extends Component {
linkProps.to = `${window.Radarr.urlBase}/${to.replace(/^\//, '')}`;
linkProps.target = target;
}
} else if (to && typeof to === 'object') {
el = RouterLink;
linkProps.target = target;
if (to.pathname.startsWith(`${window.Radarr.urlBase}/`)) {
linkProps.to = to;
} else {
const pathname = `${window.Radarr.urlBase}/${to.pathname.replace(/^\//, '')}`;
linkProps.to = {
...to,
pathname
};
}
}
if (el === 'button' || el === 'input') {
@@ -82,7 +95,7 @@ class Link extends Component {
Link.propTypes = {
className: PropTypes.string,
component: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),
to: PropTypes.string,
to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
target: PropTypes.string,
isDisabled: PropTypes.bool,
noRouter: PropTypes.bool,

View File

@@ -1,5 +1,5 @@
.loadingMessage {
margin: 50px 10px 0;
margin: 10px 10px 0;
text-align: center;
font-weight: 300;
font-size: 36px;

View File

@@ -12,7 +12,7 @@ const messages = [
'Hum something loud while others stare',
'Loading humorous message... Please Wait',
'I could\'ve been faster in Python',
'Don\'t forget to rewind your tracks',
'Don\'t forget to rewind your movies',
'Congratulations! you are the 1000th visitor.',
'HELP! I\'m being held hostage and forced to write these stupid lines!',
'RE-calibrating the internet...',

View File

@@ -30,10 +30,10 @@ function ConfirmModal(props) {
useEffect(() => {
if (isOpen) {
bindShortcut('enter', onConfirm);
} else {
unbindShortcut('enter', onConfirm);
return () => unbindShortcut('enter', onConfirm);
}
}, [onConfirm]);
}, [isOpen, onConfirm]);
return (
<Modal

View File

@@ -53,7 +53,13 @@ class PageHeader extends Component {
return (
<div className={styles.header}>
<div className={styles.logoContainer}>
<Link to={'/'}>
<Link
className={styles.logoLink}
to={{
pathname: '/',
state: { restoreScrollPosition: true }
}}
>
<img
className={isSmallScreen ? styles.logo : styles.logoFull}
src={isSmallScreen ? `${window.Radarr.urlBase}/Content/Images/logo.png` : `${window.Radarr.urlBase}/Content/Images/logo-full.png`}
@@ -75,7 +81,7 @@ class PageHeader extends Component {
<IconButton
className={styles.donate}
name={icons.HEART}
to="https://opencollective.com/radarr"
to="https://radarr.video/donate"
size={14}
/>
<IconButton

View File

@@ -1,3 +1,11 @@
.page {
composes: page from '~./Page.css';
}
.logoFull {
margin-top: 50px;
margin-right: auto;
margin-left: auto;
width: 120px;
height: 40px;
}

File diff suppressed because one or more lines are too long

View File

@@ -100,7 +100,9 @@ class PageJumpBar extends Component {
// Listeners
onMeasure = ({ height }) => {
this.setState({ height });
if (height > 0) {
this.setState({ height });
}
}
//

View File

@@ -61,8 +61,8 @@ const links = [
to: '/activity/history'
},
{
title: translate('Blacklist'),
to: '/activity/blacklist'
title: translate('Blocklist'),
to: '/activity/blocklist'
}
]
},

View File

@@ -10,6 +10,7 @@ import SpinnerIcon from 'Components/SpinnerIcon';
import { forEach } from 'Helpers/elementChildren';
import { align, icons } from 'Helpers/Props';
import dimensions from 'Styles/Variables/dimensions';
import translate from 'Utilities/String/translate';
import styles from './PageToolbarSection.css';
const BUTTON_WIDTH = parseInt(dimensions.toolbarButtonWidth);
@@ -161,7 +162,7 @@ class PageToolbarSection extends Component {
<ToolbarMenuButton
className={styles.overflowMenuButton}
iconName={icons.OVERFLOW}
text="More"
text={translate('More')}
/>
<MenuContent>

View File

@@ -49,7 +49,7 @@
background-color: $dangerColor;
&:global(.colorImpaired) {
background: repeating-linear-gradient(90deg, color($dangerColor shade(5%)), color($dangerColor shade(5%)) 5px, color($dangerColor shade(15%)) 5px, color($dangerColor shade(15%)) 10px);
background: repeating-linear-gradient(90deg, $dangerColor, $dangerColor 5px, $dangerColor 5px, $dimColor 10px);
}
}
@@ -65,7 +65,7 @@
background-color: $warningColor;
&:global(.colorImpaired) {
background: repeating-linear-gradient(45deg, $warningColor, $warningColor 5px, color($warningColor tint(15%)) 5px, color($warningColor tint(15%)) 10px);
background: repeating-linear-gradient(45deg, $warningColor, $warningColor 5px, $warningColor 5px, $dimColor 10px);
}
}

View File

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

View File

@@ -0,0 +1,58 @@
import PropTypes from 'prop-types';
import React, { PureComponent } from 'react';
import styles from './RottenTomatoRating.css';
class RottenTomatoRating extends PureComponent {
//
// Render
render() {
const {
ratings,
hideIcon,
iconSize
} = this.props;
const rtRotten = 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNTYwIDU2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDQ1LjE4NSA0NDQuNjg0Yy03OS4zNjkgNC4xNjctOTUuNTg3LTg2LjY1Mi0xMjYuNzI2LTg2LjAwNi0xMy4yNjguMjc5LTIzLjcyNiAxNC4xNTEtMTkuMTMzIDMwLjMyIDIuNTI1IDguODg4IDkuNTMgMjEuOTIzIDEzLjk0NCAzMC4wMTEgMTUuNTcgMjguNTQ0LTcuNDQ3IDYwLjg0NS0zNC4zODMgNjMuNTc3LTQ0Ljc2IDQuNTQtNjMuNDMzLTIxLjQyNi02Mi4yNzgtNDguMDA3IDEuMy0yOS44NCAyNi42LTYwLjMzMS42NS03My4zMDUtMjcuMTk0LTEzLjU5Ny00OS4zMDEgMzkuNTcyLTc1LjMyNSA1MS40MzktMjMuNTUzIDEwLjc0MS01Ni4yNDggMi40MTMtNjcuODcyLTIzLjc0MS04LjE2NC0xOC4zNzktNi42OC01My43NjggMjkuNjctNjcuMjcgMjIuNzA2LTguNDMzIDczLjMwNSAxMS4wMjkgNzUuOS0xMy42MjMgMi45OTItMjguNDE2LTUzLjE1NS0zMC44MTItNzAuMDYtMzcuNjI2LTI5LjkxMi0xMi4wNTUtNDcuNTY3LTM3Ljg1LTMzLjczNC02NS41MjIgMTAuMzc4LTIwLjc1NyA0MC45MTUtMjkuMjAzIDY0LjIyMy0yMC4xMSAyNy45MjIgMTAuODkyIDMyLjQwNCAzOS44NTMgNDYuNzEgNTEuODk3IDEyLjMyNCAxMC4zOCAyOS4xOSAxMS42OCA0MC4yMiA0LjU0MyA4LjEzNS01LjI2NSAxMC44NDMtMTYuODI4IDcuNzc0LTI3LjM5LTQuMDctMTQuMDIzLTE0Ljg3NS0yMi43NzMtMjUuNDE1LTMxLjM0Ni0xOC43NTgtMTUuMjQ5LTQ1LjI0LTI4LjM2LTI5LjIyMi02OS45ODMgMTMuMTMtMzQuMTEgNTEuNjQyLTM1LjM0IDUxLjY0Mi0zNS4zNCAxNS4zLTEuNzIgMjkuMDAyIDIuOSA0MC4xNjcgMTIuODc1IDE0LjkyNyAxMy4zMzUgMTcuODM0IDMxLjE2IDE1LjMzNiA1MC4xNzYtMi4yODMgMTcuMzU4LTguNDI2IDMyLjU2LTExLjYzIDQ5Ljc1OS0zLjcxNyAxOS45NjYgNi45NTQgNDAuMDg2IDI3LjI0OSA0MC44NjkgMjYuNjk0IDEuMDMxIDM0LjY5OC0xOS40ODYgMzcuOTY0LTMyLjQ5MiA0Ljc4Mi0xOS4wMjggMTEuMDU4LTM2LjY5NCAyOC43MTgtNDcuODIgMjUuMzQ2LTE1Ljk3IDYwLjU1Mi0xMi40NyA3Ni44ODYgMTguMjIyIDEyLjkyIDI0LjI4NCA4Ljc3MiA1Ny43MTUtMTEuMDQ3IDc1Ljk3LTguODkyIDguMTg4LTE5LjU4NCAxMS4wNzUtMzEuMTQ4IDExLjE1Ni0xNi41ODUuMTE3LTMzLjE2Mi0uMjktNDguNTU2IDcuNDcxLTEwLjQ4IDUuMjgxLTE1LjA0NyAxMy44ODgtMTUuMDQ1IDI1LjQyMyAwIDExLjI0MiA1Ljg1MyAxOC41ODUgMTUuMzM2IDIzLjM2MyAxNy44NiA5LjAwMyAzNy41NzcgMTAuODQzIDU2Ljg3MSAxNC4yMjIgMjcuOTggNC45IDUyLjU4MSAxNC43NTUgNjguMzc1IDQwLjcyLjE0Mi4yMjguMjguNDU4LjQxNS42OSAxOC4xMzkgMzAuNzQxLS44MzEgNzUuMDA1LTM2LjQ3NiA3Ni44NzgiIGZpbGw9IiMwQUM4NTUiLz48L3N2Zz4=';
const rtFresh = 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNTYwIDU2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtNDc4LjI5IDI5Ni45OGMtMy45OS02My45NjYtMzYuNTItMTExLjgyLTg1LjQ2OC0xMzguNTggMC4yNzggMS41Ni0xLjEwOSAzLjUwOC0yLjY4OCAyLjgxOC0zMi4wMTYtMTQuMDA2LTg2LjMyOCAzMS4zMi0xMjQuMjggNy41ODQgMC4yODUgOC41MTktMS4zNzggNTAuMDcyLTU5LjkxNCA1Mi40ODMtMS4zODIgMC4wNTYtMi4xNDItMS4zNTUtMS4yNjgtMi4zNTQgNy44MjgtOC45MjkgMTUuNzMyLTMxLjUzNSA0LjM2Ny00My41ODYtMjQuMzM4IDIxLjgxLTM4LjQ3MiAzMC4wMTctODUuMTM4IDE5LjE4Ni0yOS44NzggMzEuMjQxLTQ2LjgwOSA3NC00My40ODUgMTI3LjI2IDYuNzggMTA4Ljc0IDEwOC42MyAxNzAuODkgMjExLjE5IDE2NC40OSAxMDIuNTYtNi4zOTUgMTkzLjQ3LTgwLjU3MiAxODYuNjgtMTg5LjMxIiBmaWxsPSIjRkEzMjBBIi8+PHBhdGggZD0iTTI5MS4zNzUgMTMyLjI5M2MyMS4wNzUtNS4wMjMgODEuNjkzLS40OSAxMDEuMTE0IDI1LjI3NCAxLjE2NiAxLjU0NS0uNDc1IDQuNDY4LTIuMzU1IDMuNjQ4LTMyLjAxNi0xNC4wMDYtODYuMzI4IDMxLjMyLTEyNC4yODIgNy41ODQuMjg1IDguNTE5LTEuMzc4IDUwLjA3Mi01OS45MTQgNTIuNDgzLTEuMzgyLjA1Ni0yLjE0Mi0xLjM1NS0xLjI2OC0yLjM1NCA3LjgyOC04LjkyOSAxNS43My0zMS41MzUgNC4zNjctNDMuNTg2LTI2LjUxMiAyMy43NTgtNDAuODg0IDMxLjM5Mi05OC40MjYgMTUuODM4LTEuODgzLS41MDgtMS4yNDEtMy41MzUuNzYyLTQuMjk4IDEwLjg3Ni00LjE1NyAzNS41MTUtMjIuMzYxIDU4LjgyNC0zMC4zODUgNC40MzgtMS41MjYgOC44NjItMi43MSAxMy4xOC0zLjQtMjUuNjY1LTIuMjkzLTM3LjIzNS01Ljg2Mi01My41NTktMy40LTEuNzg5LjI3LTMuMDA0LTEuODEzLTEuODk1LTMuMjQxIDIxLjk5NS0yOC4zMzIgNjIuNTEzLTM2Ljg4OCA4Ny41MTItMjEuODM3LTE1LjQxLTE5LjA5NC0yNy40OC0zNC4zMjEtMjcuNDgtMzQuMzIxbDI4LjYwMS0xNi4yNDZzMTEuODE3IDI2LjQgMjAuNDE0IDQ1LjYxNGMyMS4yNzUtMzEuNDM1IDYwLjg2LTM0LjMzNiA3Ny41ODUtMTIuMDMzLjk5MiAxLjMyNi0uMDQ1IDMuMjEtMS43MDIgMy4xNzEtMTMuNjEyLS4zMzEtMjEuMTA3IDEyLjA1LTIxLjY3NSAyMS40NjZsLjE5Ny4wMjMiIGZpbGw9IiMwMDkxMkQiLz48L3N2Zz4=';
const rating = ratings.rottenTomatoes;
let ratingString = '0%';
if (rating) {
ratingString = `${rating.value}%`;
}
return (
<span>
{
!hideIcon &&
<img
className={styles.image}
src={rating.value > 50 ? rtFresh : rtRotten}
style={{
height: `${iconSize}px`
}}
/>
}
{ratingString}
</span>
);
}
}
RottenTomatoRating.propTypes = {
ratings: PropTypes.object.isRequired,
iconSize: PropTypes.number.isRequired,
hideIcon: PropTypes.bool
};
RottenTomatoRating.defaultProps = {
iconSize: 14
};
export default RottenTomatoRating;

View File

@@ -1,8 +1,8 @@
import _ from 'lodash';
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { DndProvider } from 'react-dnd';
import { HTML5Backend } from 'react-dnd-html5-backend';
import { DndProvider } from 'react-dnd-multi-backend';
import HTML5toTouch from 'react-dnd-multi-backend/dist/esm/HTML5toTouch';
import Form from 'Components/Form/Form';
import FormGroup from 'Components/Form/FormGroup';
import FormInputGroup from 'Components/Form/FormInputGroup';
@@ -128,7 +128,7 @@ class TableOptionsModal extends Component {
const isDraggingDown = isDragging && dropIndex > dragIndex;
return (
<DndProvider backend={HTML5Backend}>
<DndProvider options={HTML5toTouch}>
<Modal
isOpen={isOpen}
onModalClose={onModalClose}

View File

@@ -39,7 +39,8 @@ class VirtualTable extends Component {
super(props, context);
this.state = {
width: 0
width: 0,
scrollRestored: false
};
this._grid = null;
@@ -48,11 +49,13 @@ class VirtualTable extends Component {
componentDidUpdate(prevProps, prevState) {
const {
items,
scrollIndex
scrollIndex,
scrollTop
} = this.props;
const {
width
width,
scrollRestored
} = this.state;
if (this._grid &&
@@ -68,6 +71,11 @@ class VirtualTable extends Component {
columnIndex: 0
});
}
if (this._grid && scrollTop !== undefined && scrollTop !== 0 && !scrollRestored) {
this.setState({ scrollRestored: true });
this._grid.scrollToPosition({ scrollTop });
}
}
//
@@ -96,6 +104,7 @@ class VirtualTable extends Component {
items,
scroller,
focusScroller,
scrollTop: ignored,
header,
headerHeight,
rowRenderer,
@@ -180,6 +189,7 @@ VirtualTable.propTypes = {
className: PropTypes.string.isRequired,
items: PropTypes.arrayOf(PropTypes.object).isRequired,
scrollIndex: PropTypes.number,
scrollTop: PropTypes.number,
scroller: PropTypes.instanceOf(Element).isRequired,
focusScroller: PropTypes.bool.isRequired,
header: PropTypes.node.isRequired,

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