New: Filter queue by status

(cherry picked from commit fb540040ef66e90c55b82539b85df378d6c76bd3)

Closes #10648
This commit is contained in:
Mark McDowall 2024-11-03 15:28:48 -08:00 committed by Bogdan
parent 3b9bd696fb
commit ff09da3a69
41 changed files with 118 additions and 42 deletions

View file

@ -16,6 +16,7 @@ import MovieFilterBuilderRowValue from './MovieFilterBuilderRowValue';
import ProtocolFilterBuilderRowValue from './ProtocolFilterBuilderRowValue'; import ProtocolFilterBuilderRowValue from './ProtocolFilterBuilderRowValue';
import QualityFilterBuilderRowValueConnector from './QualityFilterBuilderRowValueConnector'; import QualityFilterBuilderRowValueConnector from './QualityFilterBuilderRowValueConnector';
import QualityProfileFilterBuilderRowValue from './QualityProfileFilterBuilderRowValue'; import QualityProfileFilterBuilderRowValue from './QualityProfileFilterBuilderRowValue';
import QueueStatusFilterBuilderRowValue from './QueueStatusFilterBuilderRowValue';
import ReleaseStatusFilterBuilderRowValue from './ReleaseStatusFilterBuilderRowValue'; import ReleaseStatusFilterBuilderRowValue from './ReleaseStatusFilterBuilderRowValue';
import TagFilterBuilderRowValueConnector from './TagFilterBuilderRowValueConnector'; import TagFilterBuilderRowValueConnector from './TagFilterBuilderRowValueConnector';
import styles from './FilterBuilderRow.css'; import styles from './FilterBuilderRow.css';
@ -80,6 +81,9 @@ function getRowValueConnector(selectedFilterBuilderProp) {
case filterBuilderValueTypes.QUALITY_PROFILE: case filterBuilderValueTypes.QUALITY_PROFILE:
return QualityProfileFilterBuilderRowValue; return QualityProfileFilterBuilderRowValue;
case filterBuilderValueTypes.QUEUE_STATUS:
return QueueStatusFilterBuilderRowValue;
case filterBuilderValueTypes.MOVIE: case filterBuilderValueTypes.MOVIE:
return MovieFilterBuilderRowValue; return MovieFilterBuilderRowValue;

View file

@ -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 <FilterBuilderRowValue {...props} tagList={statusTagList} />;
}
export default QueueStatusFilterBuilderRowValue;

View file

@ -2,7 +2,7 @@ import React from 'react';
import translate from 'Utilities/String/translate'; import translate from 'Utilities/String/translate';
import FilterBuilderRowValue from './FilterBuilderRowValue'; import FilterBuilderRowValue from './FilterBuilderRowValue';
const protocols = [ const statusTagList = [
{ id: 'tba', name: 'TBA' }, { id: 'tba', name: 'TBA' },
{ {
id: 'announced', id: 'announced',
@ -33,7 +33,7 @@ const protocols = [
function ReleaseStatusFilterBuilderRowValue(props) { function ReleaseStatusFilterBuilderRowValue(props) {
return ( return (
<FilterBuilderRowValue <FilterBuilderRowValue
tagList={protocols} tagList={statusTagList}
{...props} {...props}
/> />
); );

View file

@ -8,6 +8,7 @@ export const LANGUAGE = 'language';
export const PROTOCOL = 'protocol'; export const PROTOCOL = 'protocol';
export const QUALITY = 'quality'; export const QUALITY = 'quality';
export const QUALITY_PROFILE = 'qualityProfile'; export const QUALITY_PROFILE = 'qualityProfile';
export const QUEUE_STATUS = 'queueStatus';
export const MOVIE = 'movie'; export const MOVIE = 'movie';
export const RELEASE_STATUS = 'releaseStatus'; export const RELEASE_STATUS = 'releaseStatus';
export const MINIMUM_AVAILABILITY = 'minimumAvailability'; export const MINIMUM_AVAILABILITY = 'minimumAvailability';

View file

@ -201,6 +201,12 @@ export const defaultState = {
label: () => translate('Protocol'), label: () => translate('Protocol'),
type: filterBuilderTypes.EQUAL, type: filterBuilderTypes.EQUAL,
valueType: filterBuilderValueTypes.PROTOCOL valueType: filterBuilderValueTypes.PROTOCOL
},
{
name: 'status',
label: () => translate('Status'),
type: filterBuilderTypes.EQUAL,
valueType: filterBuilderValueTypes.QUEUE_STATUS
} }
] ]
}, },

View file

@ -17,6 +17,7 @@
using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Profiles.Delay; using NzbDrone.Core.Profiles.Delay;
using NzbDrone.Core.Qualities; using NzbDrone.Core.Qualities;
using NzbDrone.Core.Queue;
namespace NzbDrone.Core.Download.Pending namespace NzbDrone.Core.Download.Pending
{ {
@ -340,7 +341,7 @@ private Queue.Queue GetQueueItem(PendingRelease pendingRelease, Lazy<DateTime> n
Timeleft = timeleft, Timeleft = timeleft,
EstimatedCompletionTime = ect, EstimatedCompletionTime = ect,
Added = pendingRelease.Added, Added = pendingRelease.Added,
Status = pendingRelease.Reason.ToString(), Status = Enum.TryParse(pendingRelease.Reason.ToString(), out QueueStatus outValue) ? outValue : QueueStatus.Unknown,
Protocol = pendingRelease.RemoteMovie.Release.DownloadProtocol, Protocol = pendingRelease.RemoteMovie.Release.DownloadProtocol,
Indexer = pendingRelease.RemoteMovie.Release.Indexer, Indexer = pendingRelease.RemoteMovie.Release.Indexer,
DownloadClient = downloadClientName DownloadClient = downloadClientName

View file

@ -923,7 +923,6 @@
"DownloadedButNotMonitored": "تم التنزيل (غير مراقب)", "DownloadedButNotMonitored": "تم التنزيل (غير مراقب)",
"DownloadedAndMonitored": "تم التنزيل (مراقب)", "DownloadedAndMonitored": "تم التنزيل (مراقب)",
"Downloaded": "تم التنزيل", "Downloaded": "تم التنزيل",
"DownloadClientUnavailable": "عميل التنزيل غير متوفر",
"DownloadClientStatusCheckSingleClientMessage": "برامج التنزيل غير متاحة بسبب الإخفاقات: {downloadClientNames}", "DownloadClientStatusCheckSingleClientMessage": "برامج التنزيل غير متاحة بسبب الإخفاقات: {downloadClientNames}",
"DownloadClientStatusCheckAllClientMessage": "جميع عملاء التنزيل غير متاحين بسبب الفشل", "DownloadClientStatusCheckAllClientMessage": "جميع عملاء التنزيل غير متاحين بسبب الفشل",
"DownloadClientsSettingsSummary": "تنزيل العملاء وتنزيل المناولة وتعيينات المسار البعيد", "DownloadClientsSettingsSummary": "تنزيل العملاء وتنزيل المناولة وتعيينات المسار البعيد",

View file

@ -177,7 +177,6 @@
"DownloadClients": "Изтеглете клиенти", "DownloadClients": "Изтеглете клиенти",
"DownloadClientSettings": "Изтеглете настройките на клиента", "DownloadClientSettings": "Изтеглете настройките на клиента",
"DownloadClientsSettingsSummary": "Изтегляне на клиенти, обработка на изтегляния и отдалечени картографски пътища", "DownloadClientsSettingsSummary": "Изтегляне на клиенти, обработка на изтегляния и отдалечени картографски пътища",
"DownloadClientUnavailable": "Клиентът за изтегляне не е наличен",
"Downloaded": "Изтеглено", "Downloaded": "Изтеглено",
"DownloadedAndMonitored": "Изтеглено (контролирано)", "DownloadedAndMonitored": "Изтеглено (контролирано)",
"DownloadedButNotMonitored": "Изтеглено (Без наблюдение)", "DownloadedButNotMonitored": "Изтеглено (Без наблюдение)",

View file

@ -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.", "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}", "DownloadClientCheckUnableToCommunicateMessage": "No es pot comunicar amb {downloadClientName}. {errorMessage}",
"DownloadClientsSettingsSummary": "Descàrrega de clients, gestió de descàrregues i mapes de camins remots", "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", "Downloaded": "S'ha baixat",
"DownloadedAndMonitored": "S'ha baixat (nonitorat)", "DownloadedAndMonitored": "S'ha baixat (nonitorat)",
"DownloadedButNotMonitored": "S'ha baixat (no monitorat)", "DownloadedButNotMonitored": "S'ha baixat (no monitorat)",

View file

@ -49,7 +49,6 @@
"Discord": "Svár", "Discord": "Svár",
"DownloadClients": "Stáhnout klienty", "DownloadClients": "Stáhnout klienty",
"DownloadClientsSettingsSummary": "Stahování klientů, zpracování stahování a mapování vzdálených cest", "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í", "DownloadPropersAndRepacks": "Sponzoři a přebalení",
"DownloadPropersAndRepacksHelpTextWarning": "Použijte automatické formáty pro automatické upgrady na Propers / Repacks", "DownloadPropersAndRepacksHelpTextWarning": "Použijte automatické formáty pro automatické upgrady na Propers / Repacks",
"EditPerson": "Upravit osobu", "EditPerson": "Upravit osobu",

View file

@ -522,7 +522,6 @@
"DoneEditingGroups": "Udført redigering af grupper", "DoneEditingGroups": "Udført redigering af grupper",
"DoNotPrefer": "Foretrækker ikke", "DoNotPrefer": "Foretrækker ikke",
"DownloadClientSettings": "Download klientindstillinger", "DownloadClientSettings": "Download klientindstillinger",
"DownloadClientUnavailable": "Downloadklienten er ikke tilgængelig",
"DownloadedAndMonitored": "Downloadet (overvåget)", "DownloadedAndMonitored": "Downloadet (overvåget)",
"DownloadedButNotMonitored": "Downloadet (ikke overvåget)", "DownloadedButNotMonitored": "Downloadet (ikke overvåget)",
"Downloading": "Downloader", "Downloading": "Downloader",

View file

@ -619,7 +619,6 @@
"DownloadWarning": "Download Warnung: {0}", "DownloadWarning": "Download Warnung: {0}",
"Downloading": "Lädt herunter", "Downloading": "Lädt herunter",
"DownloadFailed": "Download fehlgeschlagen", "DownloadFailed": "Download fehlgeschlagen",
"DownloadClientUnavailable": "Downloader ist nicht verfügbar",
"DeleteTagMessageText": "Bist du sicher, dass du den Tag '{label}' wirklich löschen willst?", "DeleteTagMessageText": "Bist du sicher, dass du den Tag '{label}' wirklich löschen willst?",
"DeleteRestrictionHelpText": "Beschränkung '{0}' wirklich löschen?", "DeleteRestrictionHelpText": "Beschränkung '{0}' wirklich löschen?",
"DeleteNotificationMessageText": "Bist du sicher, dass du die Benachrichtigung '{name}' wirklich löschen willst?", "DeleteNotificationMessageText": "Bist du sicher, dass du die Benachrichtigung '{name}' wirklich löschen willst?",

View file

@ -510,7 +510,6 @@
"DoneEditingGroups": "Έγινε επεξεργασία ομάδων", "DoneEditingGroups": "Έγινε επεξεργασία ομάδων",
"DoNotPrefer": "Μην προτιμάτε", "DoNotPrefer": "Μην προτιμάτε",
"DoNotUpgradeAutomatically": "Μην κάνετε αυτόματη αναβάθμιση", "DoNotUpgradeAutomatically": "Μην κάνετε αυτόματη αναβάθμιση",
"DownloadClientUnavailable": "Ο πελάτης λήψης δεν είναι διαθέσιμος",
"DownloadedAndMonitored": "Λήψη (Παρακολούθηση)", "DownloadedAndMonitored": "Λήψη (Παρακολούθηση)",
"DownloadedButNotMonitored": "Λήψη (Χωρίς παρακολούθηση)", "DownloadedButNotMonitored": "Λήψη (Χωρίς παρακολούθηση)",
"Downloading": "Λήψη", "Downloading": "Λήψη",

View file

@ -222,6 +222,7 @@
"ColonReplacementFormatHelpText": "Change how {appName} handles colon replacement", "ColonReplacementFormatHelpText": "Change how {appName} handles colon replacement",
"Columns": "Columns", "Columns": "Columns",
"Complete": "Complete", "Complete": "Complete",
"Completed": "Completed",
"CompletedDownloadHandling": "Completed Download Handling", "CompletedDownloadHandling": "Completed Download Handling",
"Component": "Component", "Component": "Component",
"ConditionUsingRegularExpressions": "This condition matches using Regular Expressions. Note that the characters `\\^$.|?*+()[{` have special meanings and need escaping with a `\\`", "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", "DefaultNameCopiedProfile": "{name} - Copy",
"DefaultNameCopiedSpecification": "{name} - Copy", "DefaultNameCopiedSpecification": "{name} - Copy",
"DefaultNotFoundMessage": "You must be lost, nothing to see here.", "DefaultNotFoundMessage": "You must be lost, nothing to see here.",
"Delay": "Delay",
"DelayMinutes": "{delay} Minutes", "DelayMinutes": "{delay} Minutes",
"DelayProfile": "Delay Profile", "DelayProfile": "Delay Profile",
"DelayProfileMovieTagsHelpText": "Applies to movies with at least one matching tag", "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", "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}'", "DownloadClientTransmissionSettingsUrlBaseHelpText": "Adds a prefix to the {clientName} rpc url, eg {url}, defaults to '{defaultUrl}'",
"DownloadClientUTorrentTorrentStateError": "uTorrent is reporting an error", "DownloadClientUTorrentTorrentStateError": "uTorrent is reporting an error",
"DownloadClientUnavailable": "Download client is unavailable", "DownloadClientUnavailable": "Download Client Unavailable",
"DownloadClientValidationApiKeyIncorrect": "API Key Incorrect", "DownloadClientValidationApiKeyIncorrect": "API Key Incorrect",
"DownloadClientValidationApiKeyRequired": "API Key Required", "DownloadClientValidationApiKeyRequired": "API Key Required",
"DownloadClientValidationAuthenticationFailure": "Authentication Failure", "DownloadClientValidationAuthenticationFailure": "Authentication Failure",
@ -628,6 +630,7 @@
"FailedToFetchUpdates": "Failed to fetch updates", "FailedToFetchUpdates": "Failed to fetch updates",
"FailedToLoadMovieFromAPI": "Failed to load movie from API", "FailedToLoadMovieFromAPI": "Failed to load movie from API",
"FailedToUpdateSettings": "Failed to update settings", "FailedToUpdateSettings": "Failed to update settings",
"Fallback": "Fallback",
"False": "False", "False": "False",
"FavoriteFolderAdd": "Add Favorite Folder", "FavoriteFolderAdd": "Add Favorite Folder",
"FavoriteFolderRemove": "Remove 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)", "WantMoreControlAddACustomFormat": "Want more control over which downloads are preferred? Add a [Custom Format](/settings/customformats)",
"Wanted": "Wanted", "Wanted": "Wanted",
"Warn": "Warn", "Warn": "Warn",
"Warning": "Warning",
"Week": "Week", "Week": "Week",
"WeekColumnHeader": "Week Column Header", "WeekColumnHeader": "Week Column Header",
"WeekColumnHeaderHelpText": "Shown above each column when week is the active view", "WeekColumnHeaderHelpText": "Shown above each column when week is the active view",

View file

@ -620,7 +620,6 @@
"DownloadWarning": "Alerta de descarga: {warningMessage}", "DownloadWarning": "Alerta de descarga: {warningMessage}",
"Downloading": "Descargando", "Downloading": "Descargando",
"DownloadFailed": "La descarga ha fallado", "DownloadFailed": "La descarga ha fallado",
"DownloadClientUnavailable": "El cliente de descargas no está disponible",
"DeleteTagMessageText": "¿Estás seguro que quieres eliminar la etiqueta '{label}'?", "DeleteTagMessageText": "¿Estás seguro que quieres eliminar la etiqueta '{label}'?",
"DeleteRestrictionHelpText": "¿Estás seguro que quieres eliminar esta restricción?", "DeleteRestrictionHelpText": "¿Estás seguro que quieres eliminar esta restricción?",
"DeleteNotificationMessageText": "¿Estás seguro que quieres eliminar la notificación '{name}'?", "DeleteNotificationMessageText": "¿Estás seguro que quieres eliminar la notificación '{name}'?",

View file

@ -502,7 +502,6 @@
"EditCustomFormat": "Muokkaa mukautettua muotoa", "EditCustomFormat": "Muokkaa mukautettua muotoa",
"DownloadClientsSettingsSummary": "Lataustyökalut, latausten käsittely ja etäsijaintien kohdistukset.", "DownloadClientsSettingsSummary": "Lataustyökalut, latausten käsittely ja etäsijaintien kohdistukset.",
"DownloadClientStatusCheckSingleClientMessage": "Lataustyökaluja ei ole ongelmien vuoksi käytettävissä: {downloadClientNames}", "DownloadClientStatusCheckSingleClientMessage": "Lataustyökaluja ei ole ongelmien vuoksi käytettävissä: {downloadClientNames}",
"DownloadClientUnavailable": "Lataustyökalu ei ole käytettävissä",
"Downloaded": "Ladattu", "Downloaded": "Ladattu",
"DownloadedAndMonitored": "Ladattu (valvottu)", "DownloadedAndMonitored": "Ladattu (valvottu)",
"DownloadedButNotMonitored": "Ladattu (valvomaton)", "DownloadedButNotMonitored": "Ladattu (valvomaton)",

View file

@ -421,7 +421,6 @@
"EnableAutomaticSearchHelpText": "Sera utilisé lorsque les recherches automatiques sont effectuées via l'interface utilisateur ou par {appName}", "EnableAutomaticSearchHelpText": "Sera utilisé lorsque les recherches automatiques sont effectuées via l'interface utilisateur ou par {appName}",
"DownloadWarning": "Avertissement de téléchargement : {warningMessage}", "DownloadWarning": "Avertissement de téléchargement : {warningMessage}",
"Downloading": "Téléchargement", "Downloading": "Téléchargement",
"DownloadClientUnavailable": "Le client de téléchargement n'est pas disponible",
"DeleteRestrictionHelpText": "Voulez-vous vraiment supprimer cette restriction ?", "DeleteRestrictionHelpText": "Voulez-vous vraiment supprimer cette restriction ?",
"DeleteIndexerMessageText": "Voulez-vous vraiment supprimer l'indexeur « {name} » ?", "DeleteIndexerMessageText": "Voulez-vous vraiment supprimer l'indexeur « {name} » ?",
"CopyToClipboard": "Copier dans le presse-papier", "CopyToClipboard": "Copier dans le presse-papier",

View file

@ -40,7 +40,6 @@
"DeleteEmptyFolders": "מחק תיקיות ריקות", "DeleteEmptyFolders": "מחק תיקיות ריקות",
"DeleteFile": "מחק קובץ", "DeleteFile": "מחק קובץ",
"DestinationPath": "נתיב יעד", "DestinationPath": "נתיב יעד",
"DownloadClientUnavailable": "לקוח ההורדות אינו זמין",
"EditMovie": "ערוך את הסרט", "EditMovie": "ערוך את הסרט",
"EnableCompletedDownloadHandlingHelpText": "ייבא אוטומטית הורדות שהושלמו מלקוח ההורדות", "EnableCompletedDownloadHandlingHelpText": "ייבא אוטומטית הורדות שהושלמו מלקוח ההורדות",
"AnalyseVideoFilesHelpText": "חלץ מידע וידאו כגון רזולוציה, זמן ריצה ומידע קודק מקבצים. זה מחייב את {appName} לקרוא חלקים מהקובץ שעלולים לגרום לדיסק גבוה או לפעילות רשת במהלך הסריקות.", "AnalyseVideoFilesHelpText": "חלץ מידע וידאו כגון רזולוציה, זמן ריצה ומידע קודק מקבצים. זה מחייב את {appName} לקרוא חלקים מהקובץ שעלולים לגרום לדיסק גבוה או לפעילות רשת במהלך הסריקות.",

View file

@ -63,7 +63,6 @@
"DeleteTagMessageText": "क्या आप वाकई '{0}' टैग हटाना चाहते हैं?", "DeleteTagMessageText": "क्या आप वाकई '{0}' टैग हटाना चाहते हैं?",
"DestinationRelativePath": "गंतव्य सापेक्ष पथ", "DestinationRelativePath": "गंतव्य सापेक्ष पथ",
"DetailedProgressBar": "विस्तृत प्रगति पट्टी", "DetailedProgressBar": "विस्तृत प्रगति पट्टी",
"DownloadClientUnavailable": "डाउनलोड क्लाइंट अनुपलब्ध है",
"DownloadPropersAndRepacksHelpTextWarning": "Propers / Repacks में स्वचालित उन्नयन के लिए कस्टम स्वरूपों का उपयोग करें", "DownloadPropersAndRepacksHelpTextWarning": "Propers / Repacks में स्वचालित उन्नयन के लिए कस्टम स्वरूपों का उपयोग करें",
"EditQualityProfile": "गुणवत्ता प्रोफ़ाइल संपादित करें", "EditQualityProfile": "गुणवत्ता प्रोफ़ाइल संपादित करें",
"EditRemotePathMapping": "दूरस्थ पथ मानचित्रण संपादित करें", "EditRemotePathMapping": "दूरस्थ पथ मानचित्रण संपादित करें",

View file

@ -42,7 +42,6 @@
"DownloadedButNotMonitored": "Letöltve, (nincs Figyelve)", "DownloadedButNotMonitored": "Letöltve, (nincs Figyelve)",
"DownloadedAndMonitored": "Letöltve (Figyelve)", "DownloadedAndMonitored": "Letöltve (Figyelve)",
"Downloaded": "Letöltve", "Downloaded": "Letöltve",
"DownloadClientUnavailable": "Letöltőkliens nem elérhető",
"DownloadClientStatusCheckSingleClientMessage": "Letöltőkliens hiba miatt nem elérhető: {downloadClientNames}", "DownloadClientStatusCheckSingleClientMessage": "Letöltőkliens hiba miatt nem elérhető: {downloadClientNames}",
"DownloadClientStatusCheckAllClientMessage": "Az összes letöltőkliens elérhetetlen, hiba miatt", "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", "DownloadClientsSettingsSummary": "Kliensek letöltése, letöltéskezelés és távoli útvonalleképezések",

View file

@ -537,7 +537,6 @@
"AnalyseVideoFiles": "Greindu vídeóskrár", "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.", "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á", "AppDataDirectory": "AppData skrá",
"DownloadClientUnavailable": "Niðurhalsþjónn er ekki tiltækur",
"Downloaded": "Sótt", "Downloaded": "Sótt",
"DownloadedAndMonitored": "Sótt (fylgst með)", "DownloadedAndMonitored": "Sótt (fylgst með)",
"DownloadedButNotMonitored": "Sótt (óeftirlit)", "DownloadedButNotMonitored": "Sótt (óeftirlit)",

View file

@ -579,7 +579,6 @@
"DownloadFailed": "Download fallito", "DownloadFailed": "Download fallito",
"DownloadedButNotMonitored": "Scaricato (non monitorato)", "DownloadedButNotMonitored": "Scaricato (non monitorato)",
"DownloadedAndMonitored": "Scaricato (Monitorato)", "DownloadedAndMonitored": "Scaricato (Monitorato)",
"DownloadClientUnavailable": "Il client di download non è disponibile",
"DeleteTagMessageText": "Sei sicuro di voler eliminare l'etichetta '{label}'?", "DeleteTagMessageText": "Sei sicuro di voler eliminare l'etichetta '{label}'?",
"DeleteRestrictionHelpText": "Sei sicuro di voler eliminare questa restrizione?", "DeleteRestrictionHelpText": "Sei sicuro di voler eliminare questa restrizione?",
"DeleteNotificationMessageText": "Sei sicuro di voler eliminare la notifica '{name}'?", "DeleteNotificationMessageText": "Sei sicuro di voler eliminare la notifica '{name}'?",

View file

@ -39,7 +39,6 @@
"DeleteSelectedMovieFiles": "選択したムービーファイルを削除する", "DeleteSelectedMovieFiles": "選択したムービーファイルを削除する",
"DownloadClientCheckUnableToCommunicateMessage": "{downloadClientName}と通信できません。", "DownloadClientCheckUnableToCommunicateMessage": "{downloadClientName}と通信できません。",
"DownloadClientsSettingsSummary": "クライアントのダウンロード、ダウンロード処理、リモートパスマッピング", "DownloadClientsSettingsSummary": "クライアントのダウンロード、ダウンロード処理、リモートパスマッピング",
"DownloadClientUnavailable": "ダウンロードクライアントは利用できません",
"DownloadedAndMonitored": "ダウンロード(監視)", "DownloadedAndMonitored": "ダウンロード(監視)",
"DownloadPropersAndRepacks": "適切なものと再梱包", "DownloadPropersAndRepacks": "適切なものと再梱包",
"EditCustomFormat": "カスタムフォーマットの編集", "EditCustomFormat": "カスタムフォーマットの編集",

View file

@ -500,7 +500,6 @@
"DownloadClientSettings": "클라이언트 설정 다운로드", "DownloadClientSettings": "클라이언트 설정 다운로드",
"DownloadClientsSettingsSummary": "클라이언트 다운로드, 다운로드 처리 및 원격 경로 매핑", "DownloadClientsSettingsSummary": "클라이언트 다운로드, 다운로드 처리 및 원격 경로 매핑",
"DownloadClientStatusCheckSingleClientMessage": "실패로 인해 다운 불러올 수 없는 클라이언트 : {downloadClientNames}", "DownloadClientStatusCheckSingleClientMessage": "실패로 인해 다운 불러올 수 없는 클라이언트 : {downloadClientNames}",
"DownloadClientUnavailable": "다운로드 클라이언트를 사용할 수 없습니다.",
"Downloaded": "다운로드됨", "Downloaded": "다운로드됨",
"DownloadedAndMonitored": "다운로드됨 (모니터링됨)", "DownloadedAndMonitored": "다운로드됨 (모니터링됨)",
"DownloadedButNotMonitored": "다운로드됨 (모니터링되지 않음)", "DownloadedButNotMonitored": "다운로드됨 (모니터링되지 않음)",

View file

@ -626,7 +626,6 @@
"DownloadWarning": "Download waarschuwing: {warningMessage}", "DownloadWarning": "Download waarschuwing: {warningMessage}",
"Downloading": "Downloaden", "Downloading": "Downloaden",
"DownloadFailed": "Download mislukt", "DownloadFailed": "Download mislukt",
"DownloadClientUnavailable": "Downloader is onbeschikbaar",
"DeleteTagMessageText": "Weet je zeker dat je de tag '{label}' wil verwijderen?", "DeleteTagMessageText": "Weet je zeker dat je de tag '{label}' wil verwijderen?",
"DeleteRestrictionHelpText": "Bent u zeker dat u deze restrictie wilt verwijderen?", "DeleteRestrictionHelpText": "Bent u zeker dat u deze restrictie wilt verwijderen?",
"DeleteNotificationMessageText": "Weet je zeker dat je de notificatie {name} wil verwijderen?", "DeleteNotificationMessageText": "Weet je zeker dat je de notificatie {name} wil verwijderen?",

View file

@ -512,7 +512,6 @@
"DownloadClientSettings": "Pobierz ustawienia klienta", "DownloadClientSettings": "Pobierz ustawienia klienta",
"DownloadClientsSettingsSummary": "Pobieranie klientów, obsługa pobierania i mapowanie ścieżek zdalnych", "DownloadClientsSettingsSummary": "Pobieranie klientów, obsługa pobierania i mapowanie ścieżek zdalnych",
"DownloadClientStatusCheckSingleClientMessage": "Klienci pobierania niedostępni z powodu błędów: {downloadClientNames}", "DownloadClientStatusCheckSingleClientMessage": "Klienci pobierania niedostępni z powodu błędów: {downloadClientNames}",
"DownloadClientUnavailable": "Klient pobierania jest niedostępny",
"Downloaded": "Pobrano", "Downloaded": "Pobrano",
"DownloadedAndMonitored": "Pobrane (monitorowane)", "DownloadedAndMonitored": "Pobrane (monitorowane)",
"DownloadedButNotMonitored": "Pobrane (niemonitorowane)", "DownloadedButNotMonitored": "Pobrane (niemonitorowane)",

View file

@ -588,7 +588,6 @@
"DownloadFailed": "Falha na transferência", "DownloadFailed": "Falha na transferência",
"DownloadedButNotMonitored": "Transferido (Não monitorado)", "DownloadedButNotMonitored": "Transferido (Não monitorado)",
"DownloadedAndMonitored": "Transferido (Monitorado)", "DownloadedAndMonitored": "Transferido (Monitorado)",
"DownloadClientUnavailable": "O cliente de transferências está indisponível",
"Disabled": "Desativado", "Disabled": "Desativado",
"DeleteTagMessageText": "Tem a certeza que quer eliminar a etiqueta \"{label}\"?", "DeleteTagMessageText": "Tem a certeza que quer eliminar a etiqueta \"{label}\"?",
"DeleteRestrictionHelpText": "Tem a certeza de que quer eliminar esta restrição?", "DeleteRestrictionHelpText": "Tem a certeza de que quer eliminar esta restrição?",

View file

@ -174,7 +174,6 @@
"DownloadedButNotMonitored": "Baixado (não monitorado)", "DownloadedButNotMonitored": "Baixado (não monitorado)",
"DownloadedAndMonitored": "Baixado (monitorado)", "DownloadedAndMonitored": "Baixado (monitorado)",
"Downloaded": "Baixado", "Downloaded": "Baixado",
"DownloadClientUnavailable": "O cliente de download está indisponível",
"DownloadClientStatusCheckSingleClientMessage": "Clientes de download indisponíveis devido a falhas: {downloadClientNames}", "DownloadClientStatusCheckSingleClientMessage": "Clientes de download indisponíveis devido a falhas: {downloadClientNames}",
"DownloadClientStatusCheckAllClientMessage": "Todos os clientes de download estão indisponíveis devido a falhas", "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", "DownloadClientsSettingsSummary": "Clientes de download, gerenciamento de download e mapeamentos de caminhos remotos",

View file

@ -638,7 +638,6 @@
"DoNotPrefer": "Nu preferați", "DoNotPrefer": "Nu preferați",
"DoNotUpgradeAutomatically": "Nu faceți upgrade automat", "DoNotUpgradeAutomatically": "Nu faceți upgrade automat",
"DownloadClientSettings": "Setări client de descărcare", "DownloadClientSettings": "Setări client de descărcare",
"DownloadClientUnavailable": "Clientul de descărcare nu este disponibil",
"DownloadedAndMonitored": "Descărcat (monitorizat)", "DownloadedAndMonitored": "Descărcat (monitorizat)",
"DownloadedButNotMonitored": "Descărcat (fără monitorizare)", "DownloadedButNotMonitored": "Descărcat (fără monitorizare)",
"Downloading": "Descărcarea", "Downloading": "Descărcarea",

View file

@ -634,7 +634,6 @@
"DownloadedButNotMonitored": "Скачано (неотслеживается)", "DownloadedButNotMonitored": "Скачано (неотслеживается)",
"DownloadedAndMonitored": "Скачано (Отслежено)", "DownloadedAndMonitored": "Скачано (Отслежено)",
"Downloaded": "Скачано", "Downloaded": "Скачано",
"DownloadClientUnavailable": "Программа для скачивания недоступна",
"PhysicalRelease": "Релиз на носителе", "PhysicalRelease": "Релиз на носителе",
"PhysicalReleaseDate": "Дата релиза на носителе", "PhysicalReleaseDate": "Дата релиза на носителе",
"MountCheckMessage": "Смонтированный путь к фильму смонтировано режиме только для чтения: ", "MountCheckMessage": "Смонтированный путь к фильму смонтировано режиме только для чтения: ",

View file

@ -301,7 +301,6 @@
"Edition": "Utgåva", "Edition": "Utgåva",
"Downloading": "Laddar ner", "Downloading": "Laddar ner",
"DownloadFailed": "Misslyckad nedladdning", "DownloadFailed": "Misslyckad nedladdning",
"DownloadClientUnavailable": "Nedladdningsklient är otillgänglig",
"DownloadClientSettings": "Inställningar för Nedladdningsklient", "DownloadClientSettings": "Inställningar för Nedladdningsklient",
"Docker": "Docker", "Docker": "Docker",
"Disabled": "Inaktiverad", "Disabled": "Inaktiverad",

View file

@ -587,7 +587,6 @@
"DownloadClientSettings": "ดาวน์โหลด Client Settings", "DownloadClientSettings": "ดาวน์โหลด Client Settings",
"DownloadClientsSettingsSummary": "ดาวน์โหลดไคลเอนต์การจัดการการดาวน์โหลดและการแมปเส้นทางระยะไกล", "DownloadClientsSettingsSummary": "ดาวน์โหลดไคลเอนต์การจัดการการดาวน์โหลดและการแมปเส้นทางระยะไกล",
"DownloadClientStatusCheckSingleClientMessage": "ดาวน์โหลดไคลเอ็นต์ไม่ได้เนื่องจากความล้มเหลว: {downloadClientNames}", "DownloadClientStatusCheckSingleClientMessage": "ดาวน์โหลดไคลเอ็นต์ไม่ได้เนื่องจากความล้มเหลว: {downloadClientNames}",
"DownloadClientUnavailable": "ไม่สามารถดาวน์โหลดไคลเอนต์ได้",
"Downloaded": "ดาวน์โหลดแล้ว", "Downloaded": "ดาวน์โหลดแล้ว",
"DownloadedButNotMonitored": "ดาวน์โหลด (ไม่ได้ตรวจสอบ)", "DownloadedButNotMonitored": "ดาวน์โหลด (ไม่ได้ตรวจสอบ)",
"DownloadFailed": "ดาวน์โหลดล้มเหลว", "DownloadFailed": "ดาวน์โหลดล้มเหลว",

View file

@ -694,7 +694,6 @@
"DownloadClientSettings": "İstemci Ayarlarını İndir", "DownloadClientSettings": "İstemci Ayarlarını İndir",
"DownloadClientsSettingsSummary": "İndirme İstemcileri, indirme işlemleri ve uzaktan yol eşlemeleri", "DownloadClientsSettingsSummary": "İndirme İstemcileri, indirme işlemleri ve uzaktan yol eşlemeleri",
"DownloadClientStatusCheckSingleClientMessage": "Hatalar nedeniyle indirilemeyen istemciler: {downloadClientNames}", "DownloadClientStatusCheckSingleClientMessage": "Hatalar nedeniyle indirilemeyen istemciler: {downloadClientNames}",
"DownloadClientUnavailable": "İndirme istemcisi kullanılamıyor",
"DownloadedAndMonitored": "İndirildi (Takip Ediliyor)", "DownloadedAndMonitored": "İndirildi (Takip Ediliyor)",
"DownloadedButNotMonitored": "İndirildi (Takip Edilmiyor)", "DownloadedButNotMonitored": "İndirildi (Takip Edilmiyor)",
"DownloadFailed": "Yükleme başarısız", "DownloadFailed": "Yükleme başarısız",

View file

@ -569,7 +569,6 @@
"DeleteQualityProfile": "Видалити профіль якості", "DeleteQualityProfile": "Видалити профіль якості",
"DeleteRestriction": "Видалити обмеження", "DeleteRestriction": "Видалити обмеження",
"DownloadedAndMonitored": "Завантажено (Відстежується)", "DownloadedAndMonitored": "Завантажено (Відстежується)",
"DownloadClientUnavailable": "Клієнт завантажувача недоступний",
"DownloadedButNotMonitored": "Завантажено (Не відстежується)", "DownloadedButNotMonitored": "Завантажено (Не відстежується)",
"DownloadFailed": "Помилка завантаження", "DownloadFailed": "Помилка завантаження",
"DownloadWarning": "Попередження про завантаження: {0}", "DownloadWarning": "Попередження про завантаження: {0}",

View file

@ -59,7 +59,6 @@
"DeleteSelectedMovieFiles": "Xóa các tệp phim đã chọn", "DeleteSelectedMovieFiles": "Xóa các tệp phim đã chọn",
"DownloadClient": "Tải xuống ứng dụng khách", "DownloadClient": "Tải xuống ứng dụng khách",
"DownloadClientSettings": "Tải xuống cài đặt ứ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", "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", "EditImportListExclusion": "Chỉnh sửa Loại trừ Danh sách",
"EditRemotePathMapping": "Chỉnh sửa ánh xạ đường dẫn từ xa", "EditRemotePathMapping": "Chỉnh sửa ánh xạ đường dẫn từ xa",

View file

@ -408,7 +408,6 @@
"DownloadWarning": "下载警告:{warningMessage}", "DownloadWarning": "下载警告:{warningMessage}",
"DownloadedButNotMonitored": "已下载(未追踪)", "DownloadedButNotMonitored": "已下载(未追踪)",
"DownloadedAndMonitored": "已下载(已追踪)", "DownloadedAndMonitored": "已下载(已追踪)",
"DownloadClientUnavailable": "下载客户端不可用",
"DownloadClientStatusCheckSingleClientMessage": "所有下载客户端都不可用: {downloadClientNames}", "DownloadClientStatusCheckSingleClientMessage": "所有下载客户端都不可用: {downloadClientNames}",
"DownloadClientStatusCheckAllClientMessage": "下载客户端因故障均不可用", "DownloadClientStatusCheckAllClientMessage": "下载客户端因故障均不可用",
"DownloadClientsSettingsSummary": "下载客户端、下载处理和远程路径映射", "DownloadClientsSettingsSummary": "下载客户端、下载处理和远程路径映射",

View file

@ -21,7 +21,7 @@ public class Queue : ModelBase
public TimeSpan? Timeleft { get; set; } public TimeSpan? Timeleft { get; set; }
public DateTime? EstimatedCompletionTime { get; set; } public DateTime? EstimatedCompletionTime { get; set; }
public DateTime? Added { get; set; } public DateTime? Added { get; set; }
public string Status { get; set; } public QueueStatus Status { get; set; }
public TrackedDownloadStatus? TrackedDownloadStatus { get; set; } public TrackedDownloadStatus? TrackedDownloadStatus { get; set; }
public TrackedDownloadState? TrackedDownloadState { get; set; } public TrackedDownloadState? TrackedDownloadState { get; set; }
public List<TrackedDownloadStatusMessage> StatusMessages { get; set; } public List<TrackedDownloadStatusMessage> StatusMessages { get; set; }

View file

@ -64,7 +64,7 @@ private Queue MapMovie(TrackedDownload trackedDownload, Movie movie)
Size = trackedDownload.DownloadItem.TotalSize, Size = trackedDownload.DownloadItem.TotalSize,
Sizeleft = trackedDownload.DownloadItem.RemainingSize, Sizeleft = trackedDownload.DownloadItem.RemainingSize,
Timeleft = trackedDownload.DownloadItem.RemainingTime, 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, TrackedDownloadStatus = trackedDownload.Status,
TrackedDownloadState = trackedDownload.State, TrackedDownloadState = trackedDownload.State,
StatusMessages = trackedDownload.StatusMessages.ToList(), StatusMessages = trackedDownload.StatusMessages.ToList(),

View file

@ -0,0 +1,16 @@
namespace NzbDrone.Core.Queue
{
public enum QueueStatus
{
Unknown,
Queued,
Paused,
Downloading,
Completed,
Failed,
Warning,
Delay,
DownloadClientUnavailable,
Fallback
}
}

View file

@ -136,7 +136,7 @@ public object RemoveMany([FromBody] QueueBulkResource resource, [FromQuery] bool
[HttpGet] [HttpGet]
[Produces("application/json")] [Produces("application/json")]
public PagingResource<QueueResource> 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<QueueResource> 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<QueueResource>(paging); var pagingResource = new PagingResource<QueueResource>(paging);
var pagingSpec = pagingResource.MapToPagingSpec<QueueResource, NzbDrone.Core.Queue.Queue>( var pagingSpec = pagingResource.MapToPagingSpec<QueueResource, NzbDrone.Core.Queue.Queue>(
@ -160,10 +160,10 @@ public PagingResource<QueueResource> GetQueue([FromQuery] PagingRequestResource
"timeleft", "timeleft",
SortDirection.Ascending); 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<NzbDrone.Core.Queue.Queue> GetQueue(PagingSpec<NzbDrone.Core.Queue.Queue> pagingSpec, HashSet<int> movieIds, DownloadProtocol? protocol, HashSet<int> languages, HashSet<int> quality, bool includeUnknownMovieItems) private PagingSpec<NzbDrone.Core.Queue.Queue> GetQueue(PagingSpec<NzbDrone.Core.Queue.Queue> pagingSpec, HashSet<int> movieIds, DownloadProtocol? protocol, HashSet<int> languages, HashSet<int> quality, HashSet<QueueStatus> status, bool includeUnknownMovieItems)
{ {
var ascending = pagingSpec.SortDirection == SortDirection.Ascending; var ascending = pagingSpec.SortDirection == SortDirection.Ascending;
var orderByFunc = GetOrderByFunc(pagingSpec); var orderByFunc = GetOrderByFunc(pagingSpec);
@ -175,6 +175,7 @@ public PagingResource<QueueResource> GetQueue([FromQuery] PagingRequestResource
var hasMovieIdFilter = movieIds.Any(); var hasMovieIdFilter = movieIds.Any();
var hasLanguageFilter = languages.Any(); var hasLanguageFilter = languages.Any();
var hasQualityFilter = quality.Any(); var hasQualityFilter = quality.Any();
var hasStatusFilter = status.Any();
var fullQueue = filteredQueue.Concat(pending).Where(q => var fullQueue = filteredQueue.Concat(pending).Where(q =>
{ {
@ -200,6 +201,11 @@ public PagingResource<QueueResource> GetQueue([FromQuery] PagingRequestResource
include &= quality.Contains(q.Quality.Quality.Id); include &= quality.Contains(q.Quality.Quality.Id);
} }
if (include && hasStatusFilter)
{
include &= status.Contains(q.Status);
}
return include; return include;
}).ToList(); }).ToList();
@ -279,7 +285,7 @@ public PagingResource<QueueResource> GetQueue([FromQuery] PagingRequestResource
switch (pagingSpec.SortKey) switch (pagingSpec.SortKey)
{ {
case "status": case "status":
return q => q.Status; return q => q.Status.ToString();
case "movies.sortTitle": case "movies.sortTitle":
return q => q.Movie?.MovieMetadata.Value.SortTitle ?? q.Title; return q => q.Movie?.MovieMetadata.Value.SortTitle ?? q.Title;
case "title": case "title":

View file

@ -1,11 +1,11 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using NzbDrone.Common.Extensions;
using NzbDrone.Core.Download.TrackedDownloads; using NzbDrone.Core.Download.TrackedDownloads;
using NzbDrone.Core.Indexers; using NzbDrone.Core.Indexers;
using NzbDrone.Core.Languages; using NzbDrone.Core.Languages;
using NzbDrone.Core.Qualities; using NzbDrone.Core.Qualities;
using NzbDrone.Core.Queue;
using Radarr.Api.V3.CustomFormats; using Radarr.Api.V3.CustomFormats;
using Radarr.Api.V3.Movies; using Radarr.Api.V3.Movies;
using Radarr.Http.REST; using Radarr.Http.REST;
@ -26,7 +26,7 @@ public class QueueResource : RestResource
public TimeSpan? Timeleft { get; set; } public TimeSpan? Timeleft { get; set; }
public DateTime? EstimatedCompletionTime { get; set; } public DateTime? EstimatedCompletionTime { get; set; }
public DateTime? Added { get; set; } public DateTime? Added { get; set; }
public string Status { get; set; } public QueueStatus Status { get; set; }
public TrackedDownloadStatus? TrackedDownloadStatus { get; set; } public TrackedDownloadStatus? TrackedDownloadStatus { get; set; }
public TrackedDownloadState? TrackedDownloadState { get; set; } public TrackedDownloadState? TrackedDownloadState { get; set; }
public List<TrackedDownloadStatusMessage> StatusMessages { get; set; } public List<TrackedDownloadStatusMessage> StatusMessages { get; set; }
@ -66,7 +66,7 @@ public static QueueResource ToResource(this NzbDrone.Core.Queue.Queue model, boo
Timeleft = model.Timeleft, Timeleft = model.Timeleft,
EstimatedCompletionTime = model.EstimatedCompletionTime, EstimatedCompletionTime = model.EstimatedCompletionTime,
Added = model.Added, Added = model.Added,
Status = model.Status.FirstCharToLower(), Status = model.Status,
TrackedDownloadStatus = model.TrackedDownloadStatus, TrackedDownloadStatus = model.TrackedDownloadStatus,
TrackedDownloadState = model.TrackedDownloadState, TrackedDownloadState = model.TrackedDownloadState,
StatusMessages = model.StatusMessages, StatusMessages = model.StatusMessages,