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,