diff --git a/frontend/src/Components/Filter/Builder/FilterBuilderRow.js b/frontend/src/Components/Filter/Builder/FilterBuilderRow.js
index b5f52bf8b..9fd450d2e 100644
--- a/frontend/src/Components/Filter/Builder/FilterBuilderRow.js
+++ b/frontend/src/Components/Filter/Builder/FilterBuilderRow.js
@@ -16,6 +16,7 @@ import MovieFilterBuilderRowValue from './MovieFilterBuilderRowValue';
import ProtocolFilterBuilderRowValue from './ProtocolFilterBuilderRowValue';
import QualityFilterBuilderRowValueConnector from './QualityFilterBuilderRowValueConnector';
import QualityProfileFilterBuilderRowValue from './QualityProfileFilterBuilderRowValue';
+import QueueStatusFilterBuilderRowValue from './QueueStatusFilterBuilderRowValue';
import ReleaseStatusFilterBuilderRowValue from './ReleaseStatusFilterBuilderRowValue';
import TagFilterBuilderRowValueConnector from './TagFilterBuilderRowValueConnector';
import styles from './FilterBuilderRow.css';
@@ -80,6 +81,9 @@ function getRowValueConnector(selectedFilterBuilderProp) {
case filterBuilderValueTypes.QUALITY_PROFILE:
return QualityProfileFilterBuilderRowValue;
+ case filterBuilderValueTypes.QUEUE_STATUS:
+ return QueueStatusFilterBuilderRowValue;
+
case filterBuilderValueTypes.MOVIE:
return MovieFilterBuilderRowValue;
diff --git a/frontend/src/Components/Filter/Builder/QueueStatusFilterBuilderRowValue.tsx b/frontend/src/Components/Filter/Builder/QueueStatusFilterBuilderRowValue.tsx
new file mode 100644
index 000000000..1127493a5
--- /dev/null
+++ b/frontend/src/Components/Filter/Builder/QueueStatusFilterBuilderRowValue.tsx
@@ -0,0 +1,67 @@
+import React from 'react';
+import translate from 'Utilities/String/translate';
+import FilterBuilderRowValue from './FilterBuilderRowValue';
+import FilterBuilderRowValueProps from './FilterBuilderRowValueProps';
+
+const statusTagList = [
+ {
+ id: 'queued',
+ get name() {
+ return translate('Queued');
+ },
+ },
+ {
+ id: 'paused',
+ get name() {
+ return translate('Paused');
+ },
+ },
+ {
+ id: 'downloading',
+ get name() {
+ return translate('Downloading');
+ },
+ },
+ {
+ id: 'completed',
+ get name() {
+ return translate('Completed');
+ },
+ },
+ {
+ id: 'failed',
+ get name() {
+ return translate('Failed');
+ },
+ },
+ {
+ id: 'warning',
+ get name() {
+ return translate('Warning');
+ },
+ },
+ {
+ id: 'delay',
+ get name() {
+ return translate('Delay');
+ },
+ },
+ {
+ id: 'downloadClientUnavailable',
+ get name() {
+ return translate('DownloadClientUnavailable');
+ },
+ },
+ {
+ id: 'fallback',
+ get name() {
+ return translate('Fallback');
+ },
+ },
+];
+
+function QueueStatusFilterBuilderRowValue(props: FilterBuilderRowValueProps) {
+ return ;
+}
+
+export default QueueStatusFilterBuilderRowValue;
diff --git a/frontend/src/Components/Filter/Builder/ReleaseStatusFilterBuilderRowValue.js b/frontend/src/Components/Filter/Builder/ReleaseStatusFilterBuilderRowValue.js
index a2aabae20..d3feadb4f 100644
--- a/frontend/src/Components/Filter/Builder/ReleaseStatusFilterBuilderRowValue.js
+++ b/frontend/src/Components/Filter/Builder/ReleaseStatusFilterBuilderRowValue.js
@@ -2,7 +2,7 @@ import React from 'react';
import translate from 'Utilities/String/translate';
import FilterBuilderRowValue from './FilterBuilderRowValue';
-const protocols = [
+const statusTagList = [
{ id: 'tba', name: 'TBA' },
{
id: 'announced',
@@ -33,7 +33,7 @@ const protocols = [
function ReleaseStatusFilterBuilderRowValue(props) {
return (
);
diff --git a/frontend/src/Helpers/Props/filterBuilderValueTypes.js b/frontend/src/Helpers/Props/filterBuilderValueTypes.js
index 3e2d599ba..a27b11dfc 100644
--- a/frontend/src/Helpers/Props/filterBuilderValueTypes.js
+++ b/frontend/src/Helpers/Props/filterBuilderValueTypes.js
@@ -8,6 +8,7 @@ export const LANGUAGE = 'language';
export const PROTOCOL = 'protocol';
export const QUALITY = 'quality';
export const QUALITY_PROFILE = 'qualityProfile';
+export const QUEUE_STATUS = 'queueStatus';
export const MOVIE = 'movie';
export const RELEASE_STATUS = 'releaseStatus';
export const MINIMUM_AVAILABILITY = 'minimumAvailability';
diff --git a/frontend/src/Store/Actions/queueActions.js b/frontend/src/Store/Actions/queueActions.js
index 214ea92ab..1196eff50 100644
--- a/frontend/src/Store/Actions/queueActions.js
+++ b/frontend/src/Store/Actions/queueActions.js
@@ -201,6 +201,12 @@ export const defaultState = {
label: () => translate('Protocol'),
type: filterBuilderTypes.EQUAL,
valueType: filterBuilderValueTypes.PROTOCOL
+ },
+ {
+ name: 'status',
+ label: () => translate('Status'),
+ type: filterBuilderTypes.EQUAL,
+ valueType: filterBuilderValueTypes.QUEUE_STATUS
}
]
},
diff --git a/src/NzbDrone.Core/Download/Pending/PendingReleaseService.cs b/src/NzbDrone.Core/Download/Pending/PendingReleaseService.cs
index 9ea33e5ce..75299e6c5 100644
--- a/src/NzbDrone.Core/Download/Pending/PendingReleaseService.cs
+++ b/src/NzbDrone.Core/Download/Pending/PendingReleaseService.cs
@@ -17,6 +17,7 @@ using NzbDrone.Core.Parser;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Profiles.Delay;
using NzbDrone.Core.Qualities;
+using NzbDrone.Core.Queue;
namespace NzbDrone.Core.Download.Pending
{
@@ -340,7 +341,7 @@ namespace NzbDrone.Core.Download.Pending
Timeleft = timeleft,
EstimatedCompletionTime = ect,
Added = pendingRelease.Added,
- Status = pendingRelease.Reason.ToString(),
+ Status = Enum.TryParse(pendingRelease.Reason.ToString(), out QueueStatus outValue) ? outValue : QueueStatus.Unknown,
Protocol = pendingRelease.RemoteMovie.Release.DownloadProtocol,
Indexer = pendingRelease.RemoteMovie.Release.Indexer,
DownloadClient = downloadClientName
diff --git a/src/NzbDrone.Core/Localization/Core/ar.json b/src/NzbDrone.Core/Localization/Core/ar.json
index b00ff949b..bcbad9212 100644
--- a/src/NzbDrone.Core/Localization/Core/ar.json
+++ b/src/NzbDrone.Core/Localization/Core/ar.json
@@ -923,7 +923,6 @@
"DownloadedButNotMonitored": "تم التنزيل (غير مراقب)",
"DownloadedAndMonitored": "تم التنزيل (مراقب)",
"Downloaded": "تم التنزيل",
- "DownloadClientUnavailable": "عميل التنزيل غير متوفر",
"DownloadClientStatusCheckSingleClientMessage": "برامج التنزيل غير متاحة بسبب الإخفاقات: {downloadClientNames}",
"DownloadClientStatusCheckAllClientMessage": "جميع عملاء التنزيل غير متاحين بسبب الفشل",
"DownloadClientsSettingsSummary": "تنزيل العملاء وتنزيل المناولة وتعيينات المسار البعيد",
diff --git a/src/NzbDrone.Core/Localization/Core/bg.json b/src/NzbDrone.Core/Localization/Core/bg.json
index 6d274927b..56fd6e3e4 100644
--- a/src/NzbDrone.Core/Localization/Core/bg.json
+++ b/src/NzbDrone.Core/Localization/Core/bg.json
@@ -177,7 +177,6 @@
"DownloadClients": "Изтеглете клиенти",
"DownloadClientSettings": "Изтеглете настройките на клиента",
"DownloadClientsSettingsSummary": "Изтегляне на клиенти, обработка на изтегляния и отдалечени картографски пътища",
- "DownloadClientUnavailable": "Клиентът за изтегляне не е наличен",
"Downloaded": "Изтеглено",
"DownloadedAndMonitored": "Изтеглено (контролирано)",
"DownloadedButNotMonitored": "Изтеглено (Без наблюдение)",
diff --git a/src/NzbDrone.Core/Localization/Core/ca.json b/src/NzbDrone.Core/Localization/Core/ca.json
index 643729a68..7372592c9 100644
--- a/src/NzbDrone.Core/Localization/Core/ca.json
+++ b/src/NzbDrone.Core/Localization/Core/ca.json
@@ -449,7 +449,6 @@
"DownloadClientCheckDownloadingToRoot": "El client de baixada {downloadClientName} col·loca les baixades a la carpeta arrel {path}. No s'hauria de baixar a una carpeta arrel.",
"DownloadClientCheckUnableToCommunicateMessage": "No es pot comunicar amb {downloadClientName}. {errorMessage}",
"DownloadClientsSettingsSummary": "Descàrrega de clients, gestió de descàrregues i mapes de camins remots",
- "DownloadClientUnavailable": "El client de descàrrega no està disponible",
"Downloaded": "S'ha baixat",
"DownloadedAndMonitored": "S'ha baixat (nonitorat)",
"DownloadedButNotMonitored": "S'ha baixat (no monitorat)",
diff --git a/src/NzbDrone.Core/Localization/Core/cs.json b/src/NzbDrone.Core/Localization/Core/cs.json
index b09adad33..3f4a4854d 100644
--- a/src/NzbDrone.Core/Localization/Core/cs.json
+++ b/src/NzbDrone.Core/Localization/Core/cs.json
@@ -49,7 +49,6 @@
"Discord": "Svár",
"DownloadClients": "Stáhnout klienty",
"DownloadClientsSettingsSummary": "Stahování klientů, zpracování stahování a mapování vzdálených cest",
- "DownloadClientUnavailable": "Stahovací klient není k dispozici",
"DownloadPropersAndRepacks": "Sponzoři a přebalení",
"DownloadPropersAndRepacksHelpTextWarning": "Použijte automatické formáty pro automatické upgrady na Propers / Repacks",
"EditPerson": "Upravit osobu",
diff --git a/src/NzbDrone.Core/Localization/Core/da.json b/src/NzbDrone.Core/Localization/Core/da.json
index 1caf847de..7a8d2b97f 100644
--- a/src/NzbDrone.Core/Localization/Core/da.json
+++ b/src/NzbDrone.Core/Localization/Core/da.json
@@ -522,7 +522,6 @@
"DoneEditingGroups": "Udført redigering af grupper",
"DoNotPrefer": "Foretrækker ikke",
"DownloadClientSettings": "Download klientindstillinger",
- "DownloadClientUnavailable": "Downloadklienten er ikke tilgængelig",
"DownloadedAndMonitored": "Downloadet (overvåget)",
"DownloadedButNotMonitored": "Downloadet (ikke overvåget)",
"Downloading": "Downloader",
diff --git a/src/NzbDrone.Core/Localization/Core/de.json b/src/NzbDrone.Core/Localization/Core/de.json
index f6e5af185..0660da23e 100644
--- a/src/NzbDrone.Core/Localization/Core/de.json
+++ b/src/NzbDrone.Core/Localization/Core/de.json
@@ -619,7 +619,6 @@
"DownloadWarning": "Download Warnung: {0}",
"Downloading": "Lädt herunter",
"DownloadFailed": "Download fehlgeschlagen",
- "DownloadClientUnavailable": "Downloader ist nicht verfügbar",
"DeleteTagMessageText": "Bist du sicher, dass du den Tag '{label}' wirklich löschen willst?",
"DeleteRestrictionHelpText": "Beschränkung '{0}' wirklich löschen?",
"DeleteNotificationMessageText": "Bist du sicher, dass du die Benachrichtigung '{name}' wirklich löschen willst?",
diff --git a/src/NzbDrone.Core/Localization/Core/el.json b/src/NzbDrone.Core/Localization/Core/el.json
index b5ce922fe..ca97f319d 100644
--- a/src/NzbDrone.Core/Localization/Core/el.json
+++ b/src/NzbDrone.Core/Localization/Core/el.json
@@ -510,7 +510,6 @@
"DoneEditingGroups": "Έγινε επεξεργασία ομάδων",
"DoNotPrefer": "Μην προτιμάτε",
"DoNotUpgradeAutomatically": "Μην κάνετε αυτόματη αναβάθμιση",
- "DownloadClientUnavailable": "Ο πελάτης λήψης δεν είναι διαθέσιμος",
"DownloadedAndMonitored": "Λήψη (Παρακολούθηση)",
"DownloadedButNotMonitored": "Λήψη (Χωρίς παρακολούθηση)",
"Downloading": "Λήψη",
diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json
index 86e7267ca..2f92b35dd 100644
--- a/src/NzbDrone.Core/Localization/Core/en.json
+++ b/src/NzbDrone.Core/Localization/Core/en.json
@@ -222,6 +222,7 @@
"ColonReplacementFormatHelpText": "Change how {appName} handles colon replacement",
"Columns": "Columns",
"Complete": "Complete",
+ "Completed": "Completed",
"CompletedDownloadHandling": "Completed Download Handling",
"Component": "Component",
"ConditionUsingRegularExpressions": "This condition matches using Regular Expressions. Note that the characters `\\^$.|?*+()[{` have special meanings and need escaping with a `\\`",
@@ -291,6 +292,7 @@
"DefaultNameCopiedProfile": "{name} - Copy",
"DefaultNameCopiedSpecification": "{name} - Copy",
"DefaultNotFoundMessage": "You must be lost, nothing to see here.",
+ "Delay": "Delay",
"DelayMinutes": "{delay} Minutes",
"DelayProfile": "Delay Profile",
"DelayProfileMovieTagsHelpText": "Applies to movies with at least one matching tag",
@@ -517,7 +519,7 @@
"DownloadClientTransmissionSettingsDirectoryHelpText": "Optional location to put downloads in, leave blank to use the default Transmission location",
"DownloadClientTransmissionSettingsUrlBaseHelpText": "Adds a prefix to the {clientName} rpc url, eg {url}, defaults to '{defaultUrl}'",
"DownloadClientUTorrentTorrentStateError": "uTorrent is reporting an error",
- "DownloadClientUnavailable": "Download client is unavailable",
+ "DownloadClientUnavailable": "Download Client Unavailable",
"DownloadClientValidationApiKeyIncorrect": "API Key Incorrect",
"DownloadClientValidationApiKeyRequired": "API Key Required",
"DownloadClientValidationAuthenticationFailure": "Authentication Failure",
@@ -628,6 +630,7 @@
"FailedToFetchUpdates": "Failed to fetch updates",
"FailedToLoadMovieFromAPI": "Failed to load movie from API",
"FailedToUpdateSettings": "Failed to update settings",
+ "Fallback": "Fallback",
"False": "False",
"FavoriteFolderAdd": "Add Favorite Folder",
"FavoriteFolderRemove": "Remove Favorite Folder",
@@ -1842,6 +1845,7 @@
"WantMoreControlAddACustomFormat": "Want more control over which downloads are preferred? Add a [Custom Format](/settings/customformats)",
"Wanted": "Wanted",
"Warn": "Warn",
+ "Warning": "Warning",
"Week": "Week",
"WeekColumnHeader": "Week Column Header",
"WeekColumnHeaderHelpText": "Shown above each column when week is the active view",
diff --git a/src/NzbDrone.Core/Localization/Core/es.json b/src/NzbDrone.Core/Localization/Core/es.json
index 0b6e76257..c4b2f95b7 100644
--- a/src/NzbDrone.Core/Localization/Core/es.json
+++ b/src/NzbDrone.Core/Localization/Core/es.json
@@ -620,7 +620,6 @@
"DownloadWarning": "Alerta de descarga: {warningMessage}",
"Downloading": "Descargando",
"DownloadFailed": "La descarga ha fallado",
- "DownloadClientUnavailable": "El cliente de descargas no está disponible",
"DeleteTagMessageText": "¿Estás seguro que quieres eliminar la etiqueta '{label}'?",
"DeleteRestrictionHelpText": "¿Estás seguro que quieres eliminar esta restricción?",
"DeleteNotificationMessageText": "¿Estás seguro que quieres eliminar la notificación '{name}'?",
diff --git a/src/NzbDrone.Core/Localization/Core/fi.json b/src/NzbDrone.Core/Localization/Core/fi.json
index c1b027cd2..42f51d294 100644
--- a/src/NzbDrone.Core/Localization/Core/fi.json
+++ b/src/NzbDrone.Core/Localization/Core/fi.json
@@ -502,7 +502,6 @@
"EditCustomFormat": "Muokkaa mukautettua muotoa",
"DownloadClientsSettingsSummary": "Lataustyökalut, latausten käsittely ja etäsijaintien kohdistukset.",
"DownloadClientStatusCheckSingleClientMessage": "Lataustyökaluja ei ole ongelmien vuoksi käytettävissä: {downloadClientNames}",
- "DownloadClientUnavailable": "Lataustyökalu ei ole käytettävissä",
"Downloaded": "Ladattu",
"DownloadedAndMonitored": "Ladattu (valvottu)",
"DownloadedButNotMonitored": "Ladattu (valvomaton)",
diff --git a/src/NzbDrone.Core/Localization/Core/fr.json b/src/NzbDrone.Core/Localization/Core/fr.json
index b56e681f5..f487342b3 100644
--- a/src/NzbDrone.Core/Localization/Core/fr.json
+++ b/src/NzbDrone.Core/Localization/Core/fr.json
@@ -421,7 +421,6 @@
"EnableAutomaticSearchHelpText": "Sera utilisé lorsque les recherches automatiques sont effectuées via l'interface utilisateur ou par {appName}",
"DownloadWarning": "Avertissement de téléchargement : {warningMessage}",
"Downloading": "Téléchargement",
- "DownloadClientUnavailable": "Le client de téléchargement n'est pas disponible",
"DeleteRestrictionHelpText": "Voulez-vous vraiment supprimer cette restriction ?",
"DeleteIndexerMessageText": "Voulez-vous vraiment supprimer l'indexeur « {name} » ?",
"CopyToClipboard": "Copier dans le presse-papier",
diff --git a/src/NzbDrone.Core/Localization/Core/he.json b/src/NzbDrone.Core/Localization/Core/he.json
index f5ca3654b..68da6154d 100644
--- a/src/NzbDrone.Core/Localization/Core/he.json
+++ b/src/NzbDrone.Core/Localization/Core/he.json
@@ -40,7 +40,6 @@
"DeleteEmptyFolders": "מחק תיקיות ריקות",
"DeleteFile": "מחק קובץ",
"DestinationPath": "נתיב יעד",
- "DownloadClientUnavailable": "לקוח ההורדות אינו זמין",
"EditMovie": "ערוך את הסרט",
"EnableCompletedDownloadHandlingHelpText": "ייבא אוטומטית הורדות שהושלמו מלקוח ההורדות",
"AnalyseVideoFilesHelpText": "חלץ מידע וידאו כגון רזולוציה, זמן ריצה ומידע קודק מקבצים. זה מחייב את {appName} לקרוא חלקים מהקובץ שעלולים לגרום לדיסק גבוה או לפעילות רשת במהלך הסריקות.",
diff --git a/src/NzbDrone.Core/Localization/Core/hi.json b/src/NzbDrone.Core/Localization/Core/hi.json
index f4cb70953..fbabfabb9 100644
--- a/src/NzbDrone.Core/Localization/Core/hi.json
+++ b/src/NzbDrone.Core/Localization/Core/hi.json
@@ -63,7 +63,6 @@
"DeleteTagMessageText": "क्या आप वाकई '{0}' टैग हटाना चाहते हैं?",
"DestinationRelativePath": "गंतव्य सापेक्ष पथ",
"DetailedProgressBar": "विस्तृत प्रगति पट्टी",
- "DownloadClientUnavailable": "डाउनलोड क्लाइंट अनुपलब्ध है",
"DownloadPropersAndRepacksHelpTextWarning": "Propers / Repacks में स्वचालित उन्नयन के लिए कस्टम स्वरूपों का उपयोग करें",
"EditQualityProfile": "गुणवत्ता प्रोफ़ाइल संपादित करें",
"EditRemotePathMapping": "दूरस्थ पथ मानचित्रण संपादित करें",
diff --git a/src/NzbDrone.Core/Localization/Core/hu.json b/src/NzbDrone.Core/Localization/Core/hu.json
index 8dbec6fea..00bb36530 100644
--- a/src/NzbDrone.Core/Localization/Core/hu.json
+++ b/src/NzbDrone.Core/Localization/Core/hu.json
@@ -42,7 +42,6 @@
"DownloadedButNotMonitored": "Letöltve, (nincs Figyelve)",
"DownloadedAndMonitored": "Letöltve (Figyelve)",
"Downloaded": "Letöltve",
- "DownloadClientUnavailable": "Letöltőkliens nem elérhető",
"DownloadClientStatusCheckSingleClientMessage": "Letöltőkliens hiba miatt nem elérhető: {downloadClientNames}",
"DownloadClientStatusCheckAllClientMessage": "Az összes letöltőkliens elérhetetlen, hiba miatt",
"DownloadClientsSettingsSummary": "Kliensek letöltése, letöltéskezelés és távoli útvonalleképezések",
diff --git a/src/NzbDrone.Core/Localization/Core/is.json b/src/NzbDrone.Core/Localization/Core/is.json
index 304c96c68..c81a2d810 100644
--- a/src/NzbDrone.Core/Localization/Core/is.json
+++ b/src/NzbDrone.Core/Localization/Core/is.json
@@ -537,7 +537,6 @@
"AnalyseVideoFiles": "Greindu vídeóskrár",
"AnalyticsEnabledHelpText": "Sendu nafnlausar upplýsingar um notkun og villur á netþjóna {appName}. Þetta felur í sér upplýsingar í vafranum þínum, hvaða {appName} WebUI síður þú notar, villuskýrslur sem og stýrikerfi og keyrsluútgáfu. Við munum nota þessar upplýsingar til að forgangsraða eiginleikum og villuleiðréttingum.",
"AppDataDirectory": "AppData skrá",
- "DownloadClientUnavailable": "Niðurhalsþjónn er ekki tiltækur",
"Downloaded": "Sótt",
"DownloadedAndMonitored": "Sótt (fylgst með)",
"DownloadedButNotMonitored": "Sótt (óeftirlit)",
diff --git a/src/NzbDrone.Core/Localization/Core/it.json b/src/NzbDrone.Core/Localization/Core/it.json
index 109a9f91a..779757c0a 100644
--- a/src/NzbDrone.Core/Localization/Core/it.json
+++ b/src/NzbDrone.Core/Localization/Core/it.json
@@ -579,7 +579,6 @@
"DownloadFailed": "Download fallito",
"DownloadedButNotMonitored": "Scaricato (non monitorato)",
"DownloadedAndMonitored": "Scaricato (Monitorato)",
- "DownloadClientUnavailable": "Il client di download non è disponibile",
"DeleteTagMessageText": "Sei sicuro di voler eliminare l'etichetta '{label}'?",
"DeleteRestrictionHelpText": "Sei sicuro di voler eliminare questa restrizione?",
"DeleteNotificationMessageText": "Sei sicuro di voler eliminare la notifica '{name}'?",
diff --git a/src/NzbDrone.Core/Localization/Core/ja.json b/src/NzbDrone.Core/Localization/Core/ja.json
index e9c1f6e5f..a994ae89b 100644
--- a/src/NzbDrone.Core/Localization/Core/ja.json
+++ b/src/NzbDrone.Core/Localization/Core/ja.json
@@ -39,7 +39,6 @@
"DeleteSelectedMovieFiles": "選択したムービーファイルを削除する",
"DownloadClientCheckUnableToCommunicateMessage": "{downloadClientName}と通信できません。",
"DownloadClientsSettingsSummary": "クライアントのダウンロード、ダウンロード処理、リモートパスマッピング",
- "DownloadClientUnavailable": "ダウンロードクライアントは利用できません",
"DownloadedAndMonitored": "ダウンロード(監視)",
"DownloadPropersAndRepacks": "適切なものと再梱包",
"EditCustomFormat": "カスタムフォーマットの編集",
diff --git a/src/NzbDrone.Core/Localization/Core/ko.json b/src/NzbDrone.Core/Localization/Core/ko.json
index 5e855d052..4fcaf8989 100644
--- a/src/NzbDrone.Core/Localization/Core/ko.json
+++ b/src/NzbDrone.Core/Localization/Core/ko.json
@@ -500,7 +500,6 @@
"DownloadClientSettings": "클라이언트 설정 다운로드",
"DownloadClientsSettingsSummary": "클라이언트 다운로드, 다운로드 처리 및 원격 경로 매핑",
"DownloadClientStatusCheckSingleClientMessage": "실패로 인해 다운 불러올 수 없는 클라이언트 : {downloadClientNames}",
- "DownloadClientUnavailable": "다운로드 클라이언트를 사용할 수 없습니다.",
"Downloaded": "다운로드됨",
"DownloadedAndMonitored": "다운로드됨 (모니터링됨)",
"DownloadedButNotMonitored": "다운로드됨 (모니터링되지 않음)",
diff --git a/src/NzbDrone.Core/Localization/Core/nl.json b/src/NzbDrone.Core/Localization/Core/nl.json
index 2ce670347..7291b9f3b 100644
--- a/src/NzbDrone.Core/Localization/Core/nl.json
+++ b/src/NzbDrone.Core/Localization/Core/nl.json
@@ -626,7 +626,6 @@
"DownloadWarning": "Download waarschuwing: {warningMessage}",
"Downloading": "Downloaden",
"DownloadFailed": "Download mislukt",
- "DownloadClientUnavailable": "Downloader is onbeschikbaar",
"DeleteTagMessageText": "Weet je zeker dat je de tag '{label}' wil verwijderen?",
"DeleteRestrictionHelpText": "Bent u zeker dat u deze restrictie wilt verwijderen?",
"DeleteNotificationMessageText": "Weet je zeker dat je de notificatie ‘{name}’ wil verwijderen?",
diff --git a/src/NzbDrone.Core/Localization/Core/pl.json b/src/NzbDrone.Core/Localization/Core/pl.json
index 18a076608..96330360d 100644
--- a/src/NzbDrone.Core/Localization/Core/pl.json
+++ b/src/NzbDrone.Core/Localization/Core/pl.json
@@ -512,7 +512,6 @@
"DownloadClientSettings": "Pobierz ustawienia klienta",
"DownloadClientsSettingsSummary": "Pobieranie klientów, obsługa pobierania i mapowanie ścieżek zdalnych",
"DownloadClientStatusCheckSingleClientMessage": "Klienci pobierania niedostępni z powodu błędów: {downloadClientNames}",
- "DownloadClientUnavailable": "Klient pobierania jest niedostępny",
"Downloaded": "Pobrano",
"DownloadedAndMonitored": "Pobrane (monitorowane)",
"DownloadedButNotMonitored": "Pobrane (niemonitorowane)",
diff --git a/src/NzbDrone.Core/Localization/Core/pt.json b/src/NzbDrone.Core/Localization/Core/pt.json
index ecf70ee3c..c4c6761aa 100644
--- a/src/NzbDrone.Core/Localization/Core/pt.json
+++ b/src/NzbDrone.Core/Localization/Core/pt.json
@@ -588,7 +588,6 @@
"DownloadFailed": "Falha na transferência",
"DownloadedButNotMonitored": "Transferido (Não monitorado)",
"DownloadedAndMonitored": "Transferido (Monitorado)",
- "DownloadClientUnavailable": "O cliente de transferências está indisponível",
"Disabled": "Desativado",
"DeleteTagMessageText": "Tem a certeza que quer eliminar a etiqueta \"{label}\"?",
"DeleteRestrictionHelpText": "Tem a certeza de que quer eliminar esta restrição?",
diff --git a/src/NzbDrone.Core/Localization/Core/pt_BR.json b/src/NzbDrone.Core/Localization/Core/pt_BR.json
index 74e66b24d..0c4ecda79 100644
--- a/src/NzbDrone.Core/Localization/Core/pt_BR.json
+++ b/src/NzbDrone.Core/Localization/Core/pt_BR.json
@@ -174,7 +174,6 @@
"DownloadedButNotMonitored": "Baixado (não monitorado)",
"DownloadedAndMonitored": "Baixado (monitorado)",
"Downloaded": "Baixado",
- "DownloadClientUnavailable": "O cliente de download está indisponível",
"DownloadClientStatusCheckSingleClientMessage": "Clientes de download indisponíveis devido a falhas: {downloadClientNames}",
"DownloadClientStatusCheckAllClientMessage": "Todos os clientes de download estão indisponíveis devido a falhas",
"DownloadClientsSettingsSummary": "Clientes de download, gerenciamento de download e mapeamentos de caminhos remotos",
diff --git a/src/NzbDrone.Core/Localization/Core/ro.json b/src/NzbDrone.Core/Localization/Core/ro.json
index 0929f7950..c1bf34373 100644
--- a/src/NzbDrone.Core/Localization/Core/ro.json
+++ b/src/NzbDrone.Core/Localization/Core/ro.json
@@ -638,7 +638,6 @@
"DoNotPrefer": "Nu preferați",
"DoNotUpgradeAutomatically": "Nu faceți upgrade automat",
"DownloadClientSettings": "Setări client de descărcare",
- "DownloadClientUnavailable": "Clientul de descărcare nu este disponibil",
"DownloadedAndMonitored": "Descărcat (monitorizat)",
"DownloadedButNotMonitored": "Descărcat (fără monitorizare)",
"Downloading": "Descărcarea",
diff --git a/src/NzbDrone.Core/Localization/Core/ru.json b/src/NzbDrone.Core/Localization/Core/ru.json
index b8f626871..082234428 100644
--- a/src/NzbDrone.Core/Localization/Core/ru.json
+++ b/src/NzbDrone.Core/Localization/Core/ru.json
@@ -634,7 +634,6 @@
"DownloadedButNotMonitored": "Скачано (неотслеживается)",
"DownloadedAndMonitored": "Скачано (Отслежено)",
"Downloaded": "Скачано",
- "DownloadClientUnavailable": "Программа для скачивания недоступна",
"PhysicalRelease": "Релиз на носителе",
"PhysicalReleaseDate": "Дата релиза на носителе",
"MountCheckMessage": "Смонтированный путь к фильму смонтировано режиме только для чтения: ",
diff --git a/src/NzbDrone.Core/Localization/Core/sv.json b/src/NzbDrone.Core/Localization/Core/sv.json
index a62218602..0f9c43346 100644
--- a/src/NzbDrone.Core/Localization/Core/sv.json
+++ b/src/NzbDrone.Core/Localization/Core/sv.json
@@ -301,7 +301,6 @@
"Edition": "Utgåva",
"Downloading": "Laddar ner",
"DownloadFailed": "Misslyckad nedladdning",
- "DownloadClientUnavailable": "Nedladdningsklient är otillgänglig",
"DownloadClientSettings": "Inställningar för Nedladdningsklient",
"Docker": "Docker",
"Disabled": "Inaktiverad",
diff --git a/src/NzbDrone.Core/Localization/Core/th.json b/src/NzbDrone.Core/Localization/Core/th.json
index 2c27ee265..eb159fbd3 100644
--- a/src/NzbDrone.Core/Localization/Core/th.json
+++ b/src/NzbDrone.Core/Localization/Core/th.json
@@ -587,7 +587,6 @@
"DownloadClientSettings": "ดาวน์โหลด Client Settings",
"DownloadClientsSettingsSummary": "ดาวน์โหลดไคลเอนต์การจัดการการดาวน์โหลดและการแมปเส้นทางระยะไกล",
"DownloadClientStatusCheckSingleClientMessage": "ดาวน์โหลดไคลเอ็นต์ไม่ได้เนื่องจากความล้มเหลว: {downloadClientNames}",
- "DownloadClientUnavailable": "ไม่สามารถดาวน์โหลดไคลเอนต์ได้",
"Downloaded": "ดาวน์โหลดแล้ว",
"DownloadedButNotMonitored": "ดาวน์โหลด (ไม่ได้ตรวจสอบ)",
"DownloadFailed": "ดาวน์โหลดล้มเหลว",
diff --git a/src/NzbDrone.Core/Localization/Core/tr.json b/src/NzbDrone.Core/Localization/Core/tr.json
index 4c31719ae..c716df3da 100644
--- a/src/NzbDrone.Core/Localization/Core/tr.json
+++ b/src/NzbDrone.Core/Localization/Core/tr.json
@@ -694,7 +694,6 @@
"DownloadClientSettings": "İstemci Ayarlarını İndir",
"DownloadClientsSettingsSummary": "İndirme İstemcileri, indirme işlemleri ve uzaktan yol eşlemeleri",
"DownloadClientStatusCheckSingleClientMessage": "Hatalar nedeniyle indirilemeyen istemciler: {downloadClientNames}",
- "DownloadClientUnavailable": "İndirme istemcisi kullanılamıyor",
"DownloadedAndMonitored": "İndirildi (Takip Ediliyor)",
"DownloadedButNotMonitored": "İndirildi (Takip Edilmiyor)",
"DownloadFailed": "Yükleme başarısız",
diff --git a/src/NzbDrone.Core/Localization/Core/uk.json b/src/NzbDrone.Core/Localization/Core/uk.json
index bfa87bd86..f1238e8b1 100644
--- a/src/NzbDrone.Core/Localization/Core/uk.json
+++ b/src/NzbDrone.Core/Localization/Core/uk.json
@@ -569,7 +569,6 @@
"DeleteQualityProfile": "Видалити профіль якості",
"DeleteRestriction": "Видалити обмеження",
"DownloadedAndMonitored": "Завантажено (Відстежується)",
- "DownloadClientUnavailable": "Клієнт завантажувача недоступний",
"DownloadedButNotMonitored": "Завантажено (Не відстежується)",
"DownloadFailed": "Помилка завантаження",
"DownloadWarning": "Попередження про завантаження: {0}",
diff --git a/src/NzbDrone.Core/Localization/Core/vi.json b/src/NzbDrone.Core/Localization/Core/vi.json
index d6ba547cb..6b1d33ebf 100644
--- a/src/NzbDrone.Core/Localization/Core/vi.json
+++ b/src/NzbDrone.Core/Localization/Core/vi.json
@@ -59,7 +59,6 @@
"DeleteSelectedMovieFiles": "Xóa các tệp phim đã chọn",
"DownloadClient": "Tải xuống ứng dụng khách",
"DownloadClientSettings": "Tải xuống cài đặt ứng dụng khách",
- "DownloadClientUnavailable": "Ứng dụng khách tải xuống không khả dụng",
"DownloadPropersAndRepacksHelpTextWarning": "Sử dụng các định dạng tùy chỉnh để tự động nâng cấp lên Người ủng hộ / Đóng gói lại",
"EditImportListExclusion": "Chỉnh sửa Loại trừ Danh sách",
"EditRemotePathMapping": "Chỉnh sửa ánh xạ đường dẫn từ xa",
diff --git a/src/NzbDrone.Core/Localization/Core/zh_CN.json b/src/NzbDrone.Core/Localization/Core/zh_CN.json
index 789eb94a5..5a82b02a9 100644
--- a/src/NzbDrone.Core/Localization/Core/zh_CN.json
+++ b/src/NzbDrone.Core/Localization/Core/zh_CN.json
@@ -408,7 +408,6 @@
"DownloadWarning": "下载警告:{warningMessage}",
"DownloadedButNotMonitored": "已下载(未追踪)",
"DownloadedAndMonitored": "已下载(已追踪)",
- "DownloadClientUnavailable": "下载客户端不可用",
"DownloadClientStatusCheckSingleClientMessage": "所有下载客户端都不可用: {downloadClientNames}",
"DownloadClientStatusCheckAllClientMessage": "下载客户端因故障均不可用",
"DownloadClientsSettingsSummary": "下载客户端、下载处理和远程路径映射",
diff --git a/src/NzbDrone.Core/Queue/Queue.cs b/src/NzbDrone.Core/Queue/Queue.cs
index 41612a793..acfd7bbd9 100644
--- a/src/NzbDrone.Core/Queue/Queue.cs
+++ b/src/NzbDrone.Core/Queue/Queue.cs
@@ -21,7 +21,7 @@ namespace NzbDrone.Core.Queue
public TimeSpan? Timeleft { get; set; }
public DateTime? EstimatedCompletionTime { get; set; }
public DateTime? Added { get; set; }
- public string Status { get; set; }
+ public QueueStatus Status { get; set; }
public TrackedDownloadStatus? TrackedDownloadStatus { get; set; }
public TrackedDownloadState? TrackedDownloadState { get; set; }
public List StatusMessages { get; set; }
diff --git a/src/NzbDrone.Core/Queue/QueueService.cs b/src/NzbDrone.Core/Queue/QueueService.cs
index e33e79496..92ec87237 100644
--- a/src/NzbDrone.Core/Queue/QueueService.cs
+++ b/src/NzbDrone.Core/Queue/QueueService.cs
@@ -64,7 +64,7 @@ namespace NzbDrone.Core.Queue
Size = trackedDownload.DownloadItem.TotalSize,
Sizeleft = trackedDownload.DownloadItem.RemainingSize,
Timeleft = trackedDownload.DownloadItem.RemainingTime,
- Status = trackedDownload.DownloadItem.Status.ToString(),
+ Status = Enum.TryParse(trackedDownload.DownloadItem.Status.ToString(), out QueueStatus outValue) ? outValue : QueueStatus.Unknown,
TrackedDownloadStatus = trackedDownload.Status,
TrackedDownloadState = trackedDownload.State,
StatusMessages = trackedDownload.StatusMessages.ToList(),
diff --git a/src/NzbDrone.Core/Queue/QueueStatus.cs b/src/NzbDrone.Core/Queue/QueueStatus.cs
new file mode 100644
index 000000000..77b0751d9
--- /dev/null
+++ b/src/NzbDrone.Core/Queue/QueueStatus.cs
@@ -0,0 +1,16 @@
+namespace NzbDrone.Core.Queue
+{
+ public enum QueueStatus
+ {
+ Unknown,
+ Queued,
+ Paused,
+ Downloading,
+ Completed,
+ Failed,
+ Warning,
+ Delay,
+ DownloadClientUnavailable,
+ Fallback
+ }
+}
diff --git a/src/Radarr.Api.V3/Queue/QueueController.cs b/src/Radarr.Api.V3/Queue/QueueController.cs
index 03f95cad8..0b506fea4 100644
--- a/src/Radarr.Api.V3/Queue/QueueController.cs
+++ b/src/Radarr.Api.V3/Queue/QueueController.cs
@@ -136,7 +136,7 @@ namespace Radarr.Api.V3.Queue
[HttpGet]
[Produces("application/json")]
- public PagingResource GetQueue([FromQuery] PagingRequestResource paging, bool includeUnknownMovieItems = false, bool includeMovie = false, [FromQuery] int[] movieIds = null, DownloadProtocol? protocol = null, [FromQuery] int[] languages = null, [FromQuery] int[] quality = null)
+ public PagingResource GetQueue([FromQuery] PagingRequestResource paging, bool includeUnknownMovieItems = false, bool includeMovie = false, [FromQuery] int[] movieIds = null, DownloadProtocol? protocol = null, [FromQuery] int[] languages = null, [FromQuery] int[] quality = null, [FromQuery] QueueStatus[] status = null)
{
var pagingResource = new PagingResource(paging);
var pagingSpec = pagingResource.MapToPagingSpec(
@@ -160,10 +160,10 @@ namespace Radarr.Api.V3.Queue
"timeleft",
SortDirection.Ascending);
- return pagingSpec.ApplyToPage((spec) => GetQueue(spec, movieIds?.ToHashSet(), protocol, languages?.ToHashSet(), quality?.ToHashSet(), includeUnknownMovieItems), (q) => MapToResource(q, includeMovie));
+ return pagingSpec.ApplyToPage((spec) => GetQueue(spec, movieIds?.ToHashSet(), protocol, languages?.ToHashSet(), quality?.ToHashSet(), status?.ToHashSet(), includeUnknownMovieItems), (q) => MapToResource(q, includeMovie));
}
- private PagingSpec GetQueue(PagingSpec pagingSpec, HashSet movieIds, DownloadProtocol? protocol, HashSet languages, HashSet quality, bool includeUnknownMovieItems)
+ private PagingSpec GetQueue(PagingSpec pagingSpec, HashSet movieIds, DownloadProtocol? protocol, HashSet languages, HashSet quality, HashSet status, bool includeUnknownMovieItems)
{
var ascending = pagingSpec.SortDirection == SortDirection.Ascending;
var orderByFunc = GetOrderByFunc(pagingSpec);
@@ -175,6 +175,7 @@ namespace Radarr.Api.V3.Queue
var hasMovieIdFilter = movieIds.Any();
var hasLanguageFilter = languages.Any();
var hasQualityFilter = quality.Any();
+ var hasStatusFilter = status.Any();
var fullQueue = filteredQueue.Concat(pending).Where(q =>
{
@@ -200,6 +201,11 @@ namespace Radarr.Api.V3.Queue
include &= quality.Contains(q.Quality.Quality.Id);
}
+ if (include && hasStatusFilter)
+ {
+ include &= status.Contains(q.Status);
+ }
+
return include;
}).ToList();
@@ -279,7 +285,7 @@ namespace Radarr.Api.V3.Queue
switch (pagingSpec.SortKey)
{
case "status":
- return q => q.Status;
+ return q => q.Status.ToString();
case "movies.sortTitle":
return q => q.Movie?.MovieMetadata.Value.SortTitle ?? q.Title;
case "title":
diff --git a/src/Radarr.Api.V3/Queue/QueueResource.cs b/src/Radarr.Api.V3/Queue/QueueResource.cs
index d19ab42fc..e3826396b 100644
--- a/src/Radarr.Api.V3/Queue/QueueResource.cs
+++ b/src/Radarr.Api.V3/Queue/QueueResource.cs
@@ -1,11 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using NzbDrone.Common.Extensions;
using NzbDrone.Core.Download.TrackedDownloads;
using NzbDrone.Core.Indexers;
using NzbDrone.Core.Languages;
using NzbDrone.Core.Qualities;
+using NzbDrone.Core.Queue;
using Radarr.Api.V3.CustomFormats;
using Radarr.Api.V3.Movies;
using Radarr.Http.REST;
@@ -26,7 +26,7 @@ namespace Radarr.Api.V3.Queue
public TimeSpan? Timeleft { get; set; }
public DateTime? EstimatedCompletionTime { get; set; }
public DateTime? Added { get; set; }
- public string Status { get; set; }
+ public QueueStatus Status { get; set; }
public TrackedDownloadStatus? TrackedDownloadStatus { get; set; }
public TrackedDownloadState? TrackedDownloadState { get; set; }
public List StatusMessages { get; set; }
@@ -66,7 +66,7 @@ namespace Radarr.Api.V3.Queue
Timeleft = model.Timeleft,
EstimatedCompletionTime = model.EstimatedCompletionTime,
Added = model.Added,
- Status = model.Status.FirstCharToLower(),
+ Status = model.Status,
TrackedDownloadStatus = model.TrackedDownloadStatus,
TrackedDownloadState = model.TrackedDownloadState,
StatusMessages = model.StatusMessages,