mirror of
https://github.com/Radarr/Radarr.git
synced 2025-04-24 06:27:08 -04:00
New: Filter queue by status
(cherry picked from commit fb540040ef66e90c55b82539b85df378d6c76bd3) Closes #10648
This commit is contained in:
parent
3b9bd696fb
commit
ff09da3a69
41 changed files with 118 additions and 42 deletions
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
|
@ -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 (
|
||||
<FilterBuilderRowValue
|
||||
tagList={protocols}
|
||||
tagList={statusTagList}
|
||||
{...props}
|
||||
/>
|
||||
);
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -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
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -923,7 +923,6 @@
|
|||
"DownloadedButNotMonitored": "تم التنزيل (غير مراقب)",
|
||||
"DownloadedAndMonitored": "تم التنزيل (مراقب)",
|
||||
"Downloaded": "تم التنزيل",
|
||||
"DownloadClientUnavailable": "عميل التنزيل غير متوفر",
|
||||
"DownloadClientStatusCheckSingleClientMessage": "برامج التنزيل غير متاحة بسبب الإخفاقات: {downloadClientNames}",
|
||||
"DownloadClientStatusCheckAllClientMessage": "جميع عملاء التنزيل غير متاحين بسبب الفشل",
|
||||
"DownloadClientsSettingsSummary": "تنزيل العملاء وتنزيل المناولة وتعيينات المسار البعيد",
|
||||
|
|
|
@ -177,7 +177,6 @@
|
|||
"DownloadClients": "Изтеглете клиенти",
|
||||
"DownloadClientSettings": "Изтеглете настройките на клиента",
|
||||
"DownloadClientsSettingsSummary": "Изтегляне на клиенти, обработка на изтегляния и отдалечени картографски пътища",
|
||||
"DownloadClientUnavailable": "Клиентът за изтегляне не е наличен",
|
||||
"Downloaded": "Изтеглено",
|
||||
"DownloadedAndMonitored": "Изтеглено (контролирано)",
|
||||
"DownloadedButNotMonitored": "Изтеглено (Без наблюдение)",
|
||||
|
|
|
@ -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)",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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?",
|
||||
|
|
|
@ -510,7 +510,6 @@
|
|||
"DoneEditingGroups": "Έγινε επεξεργασία ομάδων",
|
||||
"DoNotPrefer": "Μην προτιμάτε",
|
||||
"DoNotUpgradeAutomatically": "Μην κάνετε αυτόματη αναβάθμιση",
|
||||
"DownloadClientUnavailable": "Ο πελάτης λήψης δεν είναι διαθέσιμος",
|
||||
"DownloadedAndMonitored": "Λήψη (Παρακολούθηση)",
|
||||
"DownloadedButNotMonitored": "Λήψη (Χωρίς παρακολούθηση)",
|
||||
"Downloading": "Λήψη",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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}'?",
|
||||
|
|
|
@ -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)",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
"DeleteEmptyFolders": "מחק תיקיות ריקות",
|
||||
"DeleteFile": "מחק קובץ",
|
||||
"DestinationPath": "נתיב יעד",
|
||||
"DownloadClientUnavailable": "לקוח ההורדות אינו זמין",
|
||||
"EditMovie": "ערוך את הסרט",
|
||||
"EnableCompletedDownloadHandlingHelpText": "ייבא אוטומטית הורדות שהושלמו מלקוח ההורדות",
|
||||
"AnalyseVideoFilesHelpText": "חלץ מידע וידאו כגון רזולוציה, זמן ריצה ומידע קודק מקבצים. זה מחייב את {appName} לקרוא חלקים מהקובץ שעלולים לגרום לדיסק גבוה או לפעילות רשת במהלך הסריקות.",
|
||||
|
|
|
@ -63,7 +63,6 @@
|
|||
"DeleteTagMessageText": "क्या आप वाकई '{0}' टैग हटाना चाहते हैं?",
|
||||
"DestinationRelativePath": "गंतव्य सापेक्ष पथ",
|
||||
"DetailedProgressBar": "विस्तृत प्रगति पट्टी",
|
||||
"DownloadClientUnavailable": "डाउनलोड क्लाइंट अनुपलब्ध है",
|
||||
"DownloadPropersAndRepacksHelpTextWarning": "Propers / Repacks में स्वचालित उन्नयन के लिए कस्टम स्वरूपों का उपयोग करें",
|
||||
"EditQualityProfile": "गुणवत्ता प्रोफ़ाइल संपादित करें",
|
||||
"EditRemotePathMapping": "दूरस्थ पथ मानचित्रण संपादित करें",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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)",
|
||||
|
|
|
@ -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}'?",
|
||||
|
|
|
@ -39,7 +39,6 @@
|
|||
"DeleteSelectedMovieFiles": "選択したムービーファイルを削除する",
|
||||
"DownloadClientCheckUnableToCommunicateMessage": "{downloadClientName}と通信できません。",
|
||||
"DownloadClientsSettingsSummary": "クライアントのダウンロード、ダウンロード処理、リモートパスマッピング",
|
||||
"DownloadClientUnavailable": "ダウンロードクライアントは利用できません",
|
||||
"DownloadedAndMonitored": "ダウンロード(監視)",
|
||||
"DownloadPropersAndRepacks": "適切なものと再梱包",
|
||||
"EditCustomFormat": "カスタムフォーマットの編集",
|
||||
|
|
|
@ -500,7 +500,6 @@
|
|||
"DownloadClientSettings": "클라이언트 설정 다운로드",
|
||||
"DownloadClientsSettingsSummary": "클라이언트 다운로드, 다운로드 처리 및 원격 경로 매핑",
|
||||
"DownloadClientStatusCheckSingleClientMessage": "실패로 인해 다운 불러올 수 없는 클라이언트 : {downloadClientNames}",
|
||||
"DownloadClientUnavailable": "다운로드 클라이언트를 사용할 수 없습니다.",
|
||||
"Downloaded": "다운로드됨",
|
||||
"DownloadedAndMonitored": "다운로드됨 (모니터링됨)",
|
||||
"DownloadedButNotMonitored": "다운로드됨 (모니터링되지 않음)",
|
||||
|
|
|
@ -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?",
|
||||
|
|
|
@ -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)",
|
||||
|
|
|
@ -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?",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -634,7 +634,6 @@
|
|||
"DownloadedButNotMonitored": "Скачано (неотслеживается)",
|
||||
"DownloadedAndMonitored": "Скачано (Отслежено)",
|
||||
"Downloaded": "Скачано",
|
||||
"DownloadClientUnavailable": "Программа для скачивания недоступна",
|
||||
"PhysicalRelease": "Релиз на носителе",
|
||||
"PhysicalReleaseDate": "Дата релиза на носителе",
|
||||
"MountCheckMessage": "Смонтированный путь к фильму смонтировано режиме только для чтения: ",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -587,7 +587,6 @@
|
|||
"DownloadClientSettings": "ดาวน์โหลด Client Settings",
|
||||
"DownloadClientsSettingsSummary": "ดาวน์โหลดไคลเอนต์การจัดการการดาวน์โหลดและการแมปเส้นทางระยะไกล",
|
||||
"DownloadClientStatusCheckSingleClientMessage": "ดาวน์โหลดไคลเอ็นต์ไม่ได้เนื่องจากความล้มเหลว: {downloadClientNames}",
|
||||
"DownloadClientUnavailable": "ไม่สามารถดาวน์โหลดไคลเอนต์ได้",
|
||||
"Downloaded": "ดาวน์โหลดแล้ว",
|
||||
"DownloadedButNotMonitored": "ดาวน์โหลด (ไม่ได้ตรวจสอบ)",
|
||||
"DownloadFailed": "ดาวน์โหลดล้มเหลว",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -569,7 +569,6 @@
|
|||
"DeleteQualityProfile": "Видалити профіль якості",
|
||||
"DeleteRestriction": "Видалити обмеження",
|
||||
"DownloadedAndMonitored": "Завантажено (Відстежується)",
|
||||
"DownloadClientUnavailable": "Клієнт завантажувача недоступний",
|
||||
"DownloadedButNotMonitored": "Завантажено (Не відстежується)",
|
||||
"DownloadFailed": "Помилка завантаження",
|
||||
"DownloadWarning": "Попередження про завантаження: {0}",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -408,7 +408,6 @@
|
|||
"DownloadWarning": "下载警告:{warningMessage}",
|
||||
"DownloadedButNotMonitored": "已下载(未追踪)",
|
||||
"DownloadedAndMonitored": "已下载(已追踪)",
|
||||
"DownloadClientUnavailable": "下载客户端不可用",
|
||||
"DownloadClientStatusCheckSingleClientMessage": "所有下载客户端都不可用: {downloadClientNames}",
|
||||
"DownloadClientStatusCheckAllClientMessage": "下载客户端因故障均不可用",
|
||||
"DownloadClientsSettingsSummary": "下载客户端、下载处理和远程路径映射",
|
||||
|
|
|
@ -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<TrackedDownloadStatusMessage> StatusMessages { get; set; }
|
||||
|
|
|
@ -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(),
|
||||
|
|
16
src/NzbDrone.Core/Queue/QueueStatus.cs
Normal file
16
src/NzbDrone.Core/Queue/QueueStatus.cs
Normal file
|
@ -0,0 +1,16 @@
|
|||
namespace NzbDrone.Core.Queue
|
||||
{
|
||||
public enum QueueStatus
|
||||
{
|
||||
Unknown,
|
||||
Queued,
|
||||
Paused,
|
||||
Downloading,
|
||||
Completed,
|
||||
Failed,
|
||||
Warning,
|
||||
Delay,
|
||||
DownloadClientUnavailable,
|
||||
Fallback
|
||||
}
|
||||
}
|
|
@ -136,7 +136,7 @@ namespace Radarr.Api.V3.Queue
|
|||
|
||||
[HttpGet]
|
||||
[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 pagingSpec = pagingResource.MapToPagingSpec<QueueResource, NzbDrone.Core.Queue.Queue>(
|
||||
|
@ -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<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 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":
|
||||
|
|
|
@ -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<TrackedDownloadStatusMessage> 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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue