Compare commits

..

9 Commits

Author SHA1 Message Date
Weblate
690e0b5d96 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Leliene <lhena.gardien@gmail.com>
Co-authored-by: 君禹渊 <taoxu2870@outlook.com>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2023-07-15 18:58:53 +03:00
Servarr
212eedd345 Automated API Docs update [skip ci] 2023-07-14 06:29:56 +03:00
Bogdan
0b38743292 Update webpack, eslint and core-js 2023-07-14 06:25:01 +03:00
jack-mil
1def54f246 New: Custom Format Score column in queue
(cherry picked from commit a6f2db9139c4a6b01d162ccf8884fc02c874b4cf)

Closes #2647
Closes #2658
2023-07-14 05:11:28 +03:00
bakerboy448
0eeaa1e443 Import list logging improvements
(cherry picked from commit d2be869d9cee2ee6452a53dcabe20c1598fd115a)

Closes #2654
2023-07-14 05:03:13 +03:00
Zak Saunders
7beee07a2c New: Make Release Group Outline Not Show as Required
(cherry picked from commit 89e363fd145ae6c531e6b3fa4fde258af05afca0)

Closes #2277
2023-07-14 04:56:05 +03:00
dependabot[bot]
924f739d1f Bump semver from 5.7.1 to 5.7.2
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-14 04:53:23 +03:00
Weblate
b187fb23e3 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translation: Servarr/Readarr
2023-07-12 00:58:12 +03:00
Bogdan
ca043b3820 Bump version to 0.2.3 2023-07-09 15:02:39 +03:00
19 changed files with 1287 additions and 1176 deletions

View File

@@ -9,7 +9,7 @@ variables:
testsFolder: './_tests'
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages
majorVersion: '0.2.2'
majorVersion: '0.2.3'
minorVersion: $[counter('minorVersion', 1)]
readarrVersion: '$(majorVersion).$(minorVersion)'
buildName: '$(Build.SourceBranchName).$(readarrVersion)'

View File

@@ -16,6 +16,12 @@
width: 150px;
}
.customFormatScore {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
width: 55px;
}
.actions {
composes: cell from '~Components/Table/Cells/TableRowCell.css';

View File

@@ -2,6 +2,7 @@
// Please do not change this file!
interface CssExports {
'actions': string;
'customFormatScore': string;
'progress': string;
'protocol': string;
'quality': string;

View File

@@ -17,6 +17,7 @@ import Popover from 'Components/Tooltip/Popover';
import { icons, kinds, tooltipPositions } from 'Helpers/Props';
import InteractiveImportModal from 'InteractiveImport/InteractiveImportModal';
import formatBytes from 'Utilities/Number/formatBytes';
import formatPreferredWordScore from 'Utilities/Number/formatPreferredWordScore';
import translate from 'Utilities/String/translate';
import QueueStatusCell from './QueueStatusCell';
import RemoveQueueItemModal from './RemoveQueueItemModal';
@@ -91,6 +92,7 @@ class QueueRow extends Component {
book,
quality,
customFormats,
customFormatScore,
protocol,
indexer,
outputPath,
@@ -222,6 +224,17 @@ class QueueRow extends Component {
);
}
if (name === 'customFormatScore') {
return (
<TableRowCell
key={name}
className={styles.customFormatScore}
>
{formatPreferredWordScore(customFormatScore)}
</TableRowCell>
);
}
if (name === 'protocol') {
return (
<TableRowCell key={name}>
@@ -392,6 +405,7 @@ QueueRow.propTypes = {
book: PropTypes.object,
quality: PropTypes.object.isRequired,
customFormats: PropTypes.arrayOf(PropTypes.object),
customFormatScore: PropTypes.number.isRequired,
protocol: PropTypes.string.isRequired,
indexer: PropTypes.string,
outputPath: PropTypes.string,

View File

@@ -258,7 +258,9 @@ class InteractiveImportRow extends Component {
>
{
showReleaseGroupPlaceholder ?
<InteractiveImportRowCellPlaceholder /> :
<InteractiveImportRowCellPlaceholder
isOptional={true}
/> :
releaseGroup
}
</TableRowCellButton>

View File

@@ -5,3 +5,7 @@
height: 25px;
border: 2px dashed var(--dangerColor);
}
.optional {
border: 2px dashed var(--gray);
}

View File

@@ -1,6 +1,7 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'optional': string;
'placeholder': string;
}
export const cssExports: CssExports;

View File

@@ -1,10 +0,0 @@
import React from 'react';
import styles from './InteractiveImportRowCellPlaceholder.css';
function InteractiveImportRowCellPlaceholder() {
return (
<span className={styles.placeholder} />
);
}
export default InteractiveImportRowCellPlaceholder;

View File

@@ -0,0 +1,22 @@
import classNames from 'classnames';
import React from 'react';
import styles from './InteractiveImportRowCellPlaceholder.css';
interface InteractiveImportRowCellPlaceholderProps {
isOptional?: boolean;
}
function InteractiveImportRowCellPlaceholder(
props: InteractiveImportRowCellPlaceholderProps
) {
return (
<span
className={classNames(
styles.placeholder,
props.isOptional && styles.optional
)}
/>
);
}
export default InteractiveImportRowCellPlaceholder;

View File

@@ -1,7 +1,9 @@
import _ from 'lodash';
import React from 'react';
import { createAction } from 'redux-actions';
import { batchActions } from 'redux-batched-actions';
import { sortDirections } from 'Helpers/Props';
import Icon from 'Components/Icon';
import { icons, sortDirections } from 'Helpers/Props';
import { createThunk, handleThunks } from 'Store/thunks';
import createAjaxRequest from 'Utilities/createAjaxRequest';
import serverSideCollectionHandlers from 'Utilities/serverSideCollectionHandlers';
@@ -93,6 +95,15 @@ export const defaultState = {
isSortable: false,
isVisible: true
},
{
name: 'customFormatScore',
columnLabel: translate('CustomFormatScore'),
label: React.createElement(Icon, {
name: icons.SCORE,
title: translate('CustomFormatScore')
}),
isVisible: false
},
{
name: 'protocol',
label: translate('Protocol'),

View File

@@ -86,27 +86,27 @@
"typescript": "4.9.5"
},
"devDependencies": {
"@babel/core": "7.21.8",
"@babel/eslint-parser": "7.21.8",
"@babel/core": "7.22.9",
"@babel/eslint-parser": "7.22.9",
"@babel/plugin-proposal-class-properties": "7.18.6",
"@babel/plugin-proposal-export-default-from": "7.18.10",
"@babel/plugin-proposal-export-default-from": "7.22.5",
"@babel/plugin-proposal-export-namespace-from": "7.18.9",
"@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6",
"@babel/plugin-proposal-optional-chaining": "7.21.0",
"@babel/plugin-syntax-dynamic-import": "7.8.3",
"@babel/preset-env": "7.21.5",
"@babel/preset-react": "7.18.6",
"@babel/preset-typescript": "7.21.5",
"@typescript-eslint/eslint-plugin": "5.59.7",
"@typescript-eslint/parser": "5.59.7",
"@babel/preset-env": "7.22.9",
"@babel/preset-react": "7.22.5",
"@babel/preset-typescript": "7.22.5",
"@typescript-eslint/eslint-plugin": "6.0.0",
"@typescript-eslint/parser": "6.0.0",
"autoprefixer": "10.4.14",
"babel-loader": "9.1.2",
"babel-loader": "9.1.3",
"babel-plugin-inline-classnames": "2.0.1",
"babel-plugin-transform-react-remove-prop-types": "0.4.24",
"core-js": "3.30.2",
"core-js": "3.31.1",
"css-loader": "6.7.3",
"css-modules-typescript-loader": "4.0.1",
"eslint": "8.40.0",
"eslint": "8.44.0",
"eslint-config-prettier": "8.8.0",
"eslint-plugin-filenames": "1.3.2",
"eslint-plugin-import": "2.27.5",
@@ -136,12 +136,12 @@
"style-loader": "3.3.2",
"stylelint": "15.10.1",
"stylelint-order": "6.0.3",
"terser-webpack-plugin": "5.3.8",
"terser-webpack-plugin": "5.3.9",
"ts-loader": "9.4.3",
"typescript-plugin-css-modules": "5.0.1",
"url-loader": "4.1.1",
"webpack": "5.82.1",
"webpack-cli": "5.1.1",
"webpack": "5.88.1",
"webpack-cli": "5.1.4",
"webpack-livereload-plugin": "3.0.2",
"worker-loader": "3.0.8"
},

View File

@@ -49,10 +49,15 @@ namespace NzbDrone.Core.ImportLists
var importListLocal = importList;
var importListStatus = _importListStatusService.GetLastSyncListInfo(importListLocal.Definition.Id);
if (importListStatus.HasValue && DateTime.UtcNow < importListStatus + importListLocal.MinRefreshInterval)
if (importListStatus.HasValue)
{
_logger.Trace("Skipping refresh of Import List {0} due to minimum refresh inverval", importListLocal.Definition.Name);
continue;
var importListNextSync = importListStatus.Value + importListLocal.MinRefreshInterval;
if (DateTime.UtcNow < importListNextSync)
{
_logger.Trace("Skipping refresh of Import List {0} ({1}) due to minimum refresh interval. Next sync after {2}", importList.Name, importListLocal.Definition.Name, importListNextSync);
continue;
}
}
var task = taskFactory.StartNew(() =>
@@ -63,7 +68,7 @@ namespace NzbDrone.Core.ImportLists
lock (result)
{
_logger.Debug("Found {0} from {1}", importListReports.Count, importList.Name);
_logger.Debug("Found {0} reports from {1} ({2})", importListReports.Count, importList.Name, importListLocal.Definition.Name);
result.AddRange(importListReports);
}
@@ -72,7 +77,7 @@ namespace NzbDrone.Core.ImportLists
}
catch (Exception e)
{
_logger.Error(e, "Error during Import List Sync");
_logger.Error(e, "Error during Import List Sync of {0} ({1})", importList.Name, importListLocal.Definition.Name);
}
}).LogExceptions();
@@ -83,7 +88,7 @@ namespace NzbDrone.Core.ImportLists
result = result.DistinctBy(r => new { r.Author, r.Book }).ToList();
_logger.Debug("Found {0} reports", result.Count);
_logger.Debug("Found {0} total reports from {1} lists", result.Count, importLists.Count);
return result;
}
@@ -96,7 +101,7 @@ namespace NzbDrone.Core.ImportLists
if (importList == null || !definition.EnableAutomaticAdd)
{
_logger.Debug("Import list not enabled, skipping.");
_logger.Debug("Import List {0} ({1}) is not enabled, skipping.", importList.Name, importList.Definition.Name);
return result;
}
@@ -121,7 +126,7 @@ namespace NzbDrone.Core.ImportLists
lock (result)
{
_logger.Debug("Found {0} from {1}", importListReports.Count, importList.Name);
_logger.Debug("Found {0} reports from {1} ({2})", importListReports.Count, importList.Name, importListLocal.Definition.Name);
result.AddRange(importListReports);
}
@@ -130,7 +135,7 @@ namespace NzbDrone.Core.ImportLists
}
catch (Exception e)
{
_logger.Error(e, "Error during Import List Sync");
_logger.Error(e, "Error during Import List Sync of {0} ({1})", importList.Name, importListLocal.Definition.Name);
}
}).LogExceptions();

View File

@@ -19,15 +19,15 @@
"AnalyticsEnabledHelpText": "Lähetä nimettömiä käyttö- ja virhetietoja sovelluksen palvelimille. Tämä sisältää tietoja selaimestasi, verkkokäyttöliittymän sivujen käytöstä, virheraportoinnista sekä käyttöjärjestelmästäsi ja versiosta. Käytämme näitä tietoja ominaisuuksien ja virhekorjauksien painotukseen.",
"AppDataDirectory": "AppData-kansio",
"ApplyTags": "Tunnistetoimenpide",
"ApplyTagsHelpTexts1": "Miten tunnisteita sovelletaan valittuun kirjailijaan",
"ApplyTagsHelpTexts2": " 'Lisää' syötetyt tunnisteet aiempiin tunnisteisiin",
"ApplyTagsHelpTexts3": "- \"Poista\" tyhjentää syötetyt tunnisteet.",
"ApplyTagsHelpTexts4": "- \"Korvaa\" nykyiset tunnisteet syötetyillä tai tyhjennä kaikki tunnisteet jättämällä tyhjäksi.",
"ApplyTagsHelpTexts1": "Tunnistetoimenpiteiden selitykset:",
"ApplyTagsHelpTexts2": " \"Lisää\" syötetyt tunnisteet aiempiin tunnisteisiin",
"ApplyTagsHelpTexts3": " \"Poista\" tyhjentää syötetyt tunnisteet",
"ApplyTagsHelpTexts4": " \"Korvaa\" nykyiset tunnisteet syötetyillä tai tyhjennä kaikki jättämällä tyhjäksi",
"Authentication": "Todennus",
"AuthenticationMethodHelpText": "Vaadi käyttäjätunnus ja salasana.",
"AuthorClickToChangeBook": "Vaihda kirjaa painamalla",
"AutoRedownloadFailedHelpText": "Etsi ja yritä ladata toinen julkaisu automaattisesti",
"AutoUnmonitorPreviouslyDownloadedBooksHelpText": "Levyltä poistettuja kirjoja ei poisteta Radarrin seurannasta automaattisesti",
"AutoUnmonitorPreviouslyDownloadedBooksHelpText": "Levyltä poistettavien kirjojen valvonta lopetetaan automaattisesti.",
"Automatic": "Automaattinen",
"BackupFolderHelpText": "Suhteelliset polut kohdistuvat sovelluksen AppData-kansioon.",
"BackupNow": "Varmuuskopioi nyt",
@@ -264,7 +264,7 @@
"RSSSyncInterval": "RSS-synkronointiväli",
"ReadTheWikiForMoreInformation": "Lue lisätietoja Wikistä",
"ReadarrSupportsAnyIndexerThatUsesTheNewznabStandardAsWellAsOtherIndexersListedBelow": "Readarr tukee Newznab- ja Torznab-yhteensopivien tietolähteiden ohella myös monia muita alla lueteltuja tietolähteitä.",
"ReadarrTags": "Radarr-tunnisteet",
"ReadarrTags": "Tunnisteet",
"Real": "Todellinen",
"Reason": "Syy",
"RecycleBinCleanupDaysHelpText": "Poista automaattinen tyhjennys käytöstä asettamalla arvoksi '0'.",
@@ -476,13 +476,13 @@
"SkipBooksWithMissingReleaseDate": "Ohita kirjat, joilta puuttuu julkaisupäivä",
"UrlBaseHelpText": "Lisää Calibren URL-osoitteeseen etuliitteen, (esim. 'http://[host]:[port]/[urlBase]').",
"Author": "Kirjailija",
"BackupIntervalHelpText": "Readarrin tietokannan ja asetusten automaattisen varmuuskopioinnin suoritusaikaväli.",
"BackupIntervalHelpText": "Tietokannan ja asetusten automaattisen varmuuskopioinnin ajoitus.",
"TagsHelpText": "Käytetään vähintään yhdellä täsmäävällä tunnisteella merkityille kirjailijoille. Käytä kaikille jättämällä tyhjäksi.",
"WriteAudioTagsScrubHelp": "Poista olemassa olevat tagit tiedostoista säilyttäen vain Readarrin lisäämät tagit.",
"DefaultTagsHelpText": "Kansiosta löydetyille kirjailijoille oletusarvoisesti määritettävät tunnisteet.",
"DefaultReadarrTags": "Oletustunnisteet",
"ExistingTagsScrubbed": "Olemassa olevat tunnisteet on poistettu",
"WriteAudioTagsScrub": "Tyhjennä tagit",
"WriteAudioTagsScrub": "Tyhjennä olemassa olevat tunnisteet",
"WriteBookTagsHelpTextWarning": "'Kaikki tiedostot' -valinnat käsittelevät myös olemassa olevien tiedostojen tagit tuonnin yhteydessä.",
"WriteAudioTags": "Tallenna metatiedot äänitiedostoihin",
"WriteTagsNew": "Vain uudet lataukset",
@@ -525,7 +525,7 @@
"Label": "Tunniste",
"LogRotateHelpText": "Lokien tallennuskansiossa säilytettävien lokitiedostojen enimmäismäärä",
"LogRotation": "Lokitiedostojen kierrätys",
"LogSqlHelpText": "Kirjaa kaikki Prowlarrin SQL-kyselyt",
"LogSqlHelpText": "Kirjaa kaikki SQL-kyselyt",
"Publisher": "Julkasija",
"SelectAll": "Valitse kaikki",
"SelectedCountBooksSelectedInterp": "{0} elokuva(a) valittu",
@@ -568,7 +568,7 @@
"IndexerPriorityHelpText": "Tietolähteen painotus: 1 (korkein) - 50 (matalin). Oletusarvo on 25. Käytetään muutoin tasaveroisten julkaisujen sieppauspäätökseen. Kaikkia käytössä olevia tietolähteitä käytetään edelleen RSS-synkronointiin ja hakuun.",
"IndexerLongTermStatusCheckSingleClientMessage": "Tietolähteet eivät ole käytettävissä yli 6 tuntia kestäneiden virheiden vuoksi: {0}",
"IndexerLongTermStatusCheckAllClientMessage": "Mikään tietolähde ei ole käytettävissä yli 6 tuntia kestäneiden virheiden vuoksi.",
"IndexerSearchCheckNoInteractiveMessage": "Tietolähteitä ei ole määritetty vuorovaikutteiselle haulle, eikä sillä tämän vuoksi löydy tuloksia.",
"IndexerSearchCheckNoInteractiveMessage": "Manuaalista hakua varten ei ole määritetty tietolähteitä, jonka vuoksi haku ei löydä tuloksia.",
"IsCalibreLibraryHelpText": "Hallinnoi kirjastoa Calibren sisältöpalvelimen avulla.",
"IsInUseCantDeleteAMetadataProfileThatIsAttachedToAnAuthorOrImportList": "Kirjailijaan tai tuontilistaan liitettyä metatietoprofiilia ei voi poistaa.",
"IsInUseCantDeleteAQualityProfileThatIsAttachedToAnAuthorOrImportList": "Kirjailijaan tai tuontilistaan liitettyä laatuprofiilia ei voi poistaa.",
@@ -626,23 +626,23 @@
"ProxyCheckFailedToTestMessage": "Välityspalvelintesti epäonnistui: {0}",
"Queued": "Jonossa",
"SearchFiltered": "Etsi suodatettuja",
"RemotePathMappingCheckFilesGenericPermissions": "Lataustyökalu '{0}' ilmoitti tiedostosijainniksi '{1}', mutta Radarr ei näe sitä. Saata joutua muokkaamaan kansion käyttöoikeuksia.",
"RemotePathMappingCheckImportFailed": "Radarr ei voinut tuoda elokuvaa. Tarkista loki saadaksesi lisätietoja.",
"RemotePathMappingCheckFilesGenericPermissions": "Lataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta kansiota ei nähdä. Saatat joutua muokkaamaan kansion käyttöoikeuksia.",
"RemotePathMappingCheckImportFailed": "Kirjan tuonti epäonnistui. Katso tarkemmat tiedot lokista.",
"CouldntFindAnyResultsForTerm": "Haku '{0}' ei tuottanut tuloksia.",
"IndexerSearchCheckNoAutomaticMessage": "Automaattihaussa käytettäviä tietolähteitä ei ole käytettävissä, eikä automaattisia hakutuloksia ole tämän vuoksi saatavilla.",
"IndexerSearchCheckNoAutomaticMessage": "Automaattista hakua varten ei ole määritetty tietolähteitä, jonka vuoksi haku ei löydä tuloksia.",
"IndexerSearchCheckNoAvailableIndexersMessage": "Kaikki hakukelpoiset tietolähteet ovat tilapaisesti tavoittamattomissa viimeaikaisten tietolähdevirheiden vuoksi.",
"RemotePathMappingCheckDockerFolderMissing": "Käytät Dockeria ja lataustyökalu '{0}' sijoittaa lataukset kohteeseen '{1}', mutta kansiota ei näytä olevan olemassa containerissa. Tarkista etäsijaintiesi kartoitukset ja containerin tallennusmedia-asetukset.",
"RemotePathMappingCheckDownloadPermissions": "Radarr näkee, muttei voi käyttää ladattua elokuvaa '{0}'. Todennäköinen syy on sijainnin käyttöoikeusvirhe.",
"RemotePathMappingCheckDownloadPermissions": "Ladattu kirja \"{0}\" näkyy, mutta sitä ei voida käyttää. Todennäköinen syy on sijainnin käyttöoikeusvirhe.",
"RemotePathMappingCheckFilesBadDockerPath": "Käytät Dockeria ja lataustyökalu '{0}' ilmoitti latauskohteeksi '{1}', mutta se ei ole kelvollinen '{2}' -sijainti. Tarkista etäsijaintiesi kartoitukset ja lataustyökalun asetukset.",
"RemotePathMappingCheckFolderPermissions": "Radarr näkee, muttei voi käyttää latauskansiota '{0}'. Todennäköinen syy on sijainnin käyttöoikeusvirhe.",
"RemotePathMappingCheckFolderPermissions": "Ladatauskansio \"{1}\" näkyy, mutta sitä ei voida käyttää. Todennäköinen syy on sijainnin käyttöoikeusvirhe.",
"RemotePathMappingCheckFilesLocalWrongOSPath": "Paikallinen lataustyökalu '{0}' ilmoitti tiedostosijainniksi '{1}', mutta se ei ole kelvollinen '{2}' -sijainti. Tarkista lataustyökalusi asetukset.",
"RemotePathMappingCheckFilesWrongOSPath": "Etälataustyökalu '{0}' ilmoitti tiedostosijainniksi '{1}', mutta se ei ole kelvollinen '{2}' -sijainti. Tarkista etsijaintiesi kartoitukset lataustyökalusi asetukset.",
"RemotePathMappingCheckGenericPermissions": "Lataustyökalu '{0}' sijoittaa lataukset kansioon '{1}', mutta Readarr ei näe sitä. Saatat joutua muokkaamaan kansion käyttöoikeuksia.",
"RemotePathMappingCheckGenericPermissions": "Lataustyökalu \"{0}\" tallentaa lataukset sijaintiin \"{1}\", mutta kansiota ei nähdä. Saatat joutua muokkaamaan kansion käyttöoikeuksia.",
"RemotePathMappingCheckLocalFolderMissing": "Etälataustyökalu '{0}' sijoittaa lataukset kohteeseen '{1}', mutta kansiota ei näytä olevan olemassa. Todennäköinen syy on puuttuva tai virheellinen etäsijainnin kartoitus.",
"RemotePathMappingCheckLocalWrongOSPath": "Paikallinen lataustyökalu '{0}' sijoittaa lataukset kohteeseen '{1}', mutta se ei ole kelvollinen '{2}' -sijainti. Tarkista lataustyökalun asetukset.",
"RemotePathMappingCheckRemoteDownloadClient": "Etälataustyökalu '{0}' ilmoitti tiedostosijainniksi '{1}', mutta kansiota ei näytä olevan olemassa. Todennäköinen syy on puuttuva tai virheellinen etäsijainnin kartoitus.",
"RemotePathMappingCheckWrongOSPath": "Etälataustyökalu '{0}' sijoittaa lataukset kohteeseen '{1}', mutta se ei ole kelvollinen '{2}' -sijainti. Tarkista etäsijaintiesi kartoitukset ja lataustyökalun asetukset.",
"RestartReloadNote": "Huomautus: Radarr käynnistää ja lataa käyttöliittymän automaattisesti palautusprosessin aikana.",
"RestartReloadNote": "Huomioi: Sovellus käynnistyy palautusprosessin aikana automaattisesti uudelleen.",
"DownloadClientStatusCheckAllClientMessage": "Yhtään lataustyökalua ei ole virheiden vuoksi käytettävissä",
"DownloadClientsSettingsSummary": "Lataustyökalut, latausten käsittely ja etäsijaintien kartoitukset.",
"Connect": "Kytkennät",
@@ -655,9 +655,9 @@
"FileWasDeletedByUpgrade": "Tiedosto poistettiin päivityksen tuontia varten.",
"HealthNoIssues": "Kokoonpanossasi ei ole ongelmia.",
"IndexerRssHealthCheckNoAvailableIndexers": "Kaikki RSS-tietolähteet ovat tilapaisesti tavoittamattomissa viimeaikaisten tietolähdevirheiden vuoksi.",
"IndexerRssHealthCheckNoIndexers": "Yhtään RSS-synkronointia käyttävää tietolähdettä ei ole käytettävissä, eikä uusia julkaisuja sen vuoksi siepata automaattisesti.",
"IndexerRssHealthCheckNoIndexers": "RSS-synkronointia käyttäviä tietolähteitä määritetty, jonka vuoksi uusia julkaisuja ei siepata automaattisesti.",
"IndexerStatusCheckSingleClientMessage": "Tietolähteet eivät ole käytettävissä virheiden vuoksi: {0}",
"MissingFromDisk": "Radarr ei löytänyt tiedostoa levyltä, joten sen kytkös kirjaston elokuvaan poistettiin",
"MissingFromDisk": "Koska tiedostoa ei löytynyt levyltä, sen kytkös kirjastossa olevaan kirjaan poistettiin.",
"Monitor": "Valvo",
"MountCheckMessage": "Elokuvareitin sisältävä kiinnike on asennettu vain luku -tilaan: ",
"OnBookFileDelete": "Kun elokuvatiedosto poistetaan",
@@ -670,12 +670,12 @@
"ProxyCheckResolveIpMessage": "Määritetyn välityspalvelimen '{0}' IP-osoitteen selvitys epäonnistui.",
"QualitySettingsSummary": "Laatumääritykset erilaisia sisältömuotoja ja tiedostokokoja varten.",
"QueueIsEmpty": "Jono on tyhjä",
"ReadarrSupportsAnyDownloadClient": "Radarr tukee kaikkien Newznab-yhteensopivien lataustyökalujen ohella myös monia muita alla listattuja torrent- ja Usenet-lataustyökaluja.",
"ReadarrSupportsAnyDownloadClient": "Monet torrent- ja Usenet-lataustyökalut ovat tuettuja.",
"RefreshAndScan": "Päivitä ja tarkista",
"RemotePathMappingCheckBadDockerPath": "Käytät Dockeria ja lataustyökalu '{0}' sijoittaa lataukset kohteeseen '{1}', mutta se ei ole kelvollinen '{2}' -sijainti. Tarkista etäsijaintiesi kartoitukset ja lataustyökalun asetukset.",
"RootFolderCheckMultipleMessage": "Useita juurikansioita puuttuu: {0}",
"SettingsRemotePathMappingLocalPath": "Paikallinen sijainti",
"SettingsRemotePathMappingLocalPathHelpText": "Polku, jota Radarrin tulisi käyttää päästäksesi etäpolulle paikallisesti",
"SettingsRemotePathMappingLocalPathHelpText": "Polku, jonka kautta etäsijaintia tulee käyttää paikallisesti.",
"SettingsRemotePathMappingRemotePath": "Etäsijainti",
"SettingsRemotePathMappingRemotePathHelpText": "Lataustyökalun käyttämän hakemiston juurisijainti",
"SizeLimit": "Kokorajoitus",
@@ -832,5 +832,6 @@
"ResetQualityDefinitions": "Palauta laatumääritykset",
"ResetQualityDefinitionsMessageText": "Haluatko varmasti palauttaa laatumääritykset?",
"NoEventsFound": "Tapahtumia ei löytynyt",
"BlocklistReleaseHelpText": "Estää julkaisun automaattisen uudelleensieppauksen."
"BlocklistReleaseHelpText": "Estää julkaisun automaattisen uudelleensieppauksen.",
"RecycleBinUnableToWriteHealthCheck": "Määritettyyn roskakorikansioon ei voi tallentaa: {0}. Varmista, että sijainti on olemassa ja että käyttäjällä on kirjoitusoikeus kansioon."
}

View File

@@ -23,7 +23,7 @@
"SslPortHelpTextWarning": "Nécessite un redémarrage pour prendre effet",
"SslCertPathHelpTextWarning": "Nécessite un redémarrage pour prendre effet",
"UnableToLoadMetadataProfiles": "Impossible de charger les profils de délai",
"AddingTag": "Ajouter un tag",
"AddingTag": "Ajout d'un tag",
"AgeWhenGrabbed": "Age (au moment du téléchargement)",
"AlreadyInYourLibrary": "Déjà présent dans votre collection",
"AlternateTitles": "Titre alternatif",
@@ -31,7 +31,7 @@
"AnalyticsEnabledHelpText": "Envoyer des informations anonymes sur l'utilisation et les erreurs vers les serveurs de Readarr. Cela inclut des informations sur votre navigateur, quelle page de l'interface web Readarr vous utilisez, les rapports d'erreur ainsi que le SE et sa version. Nous utiliserons ces informations pour prioriser les nouvelles fonctionnalités et les corrections de bugs.",
"AnalyticsEnabledHelpTextWarning": "Nécessite un redémarrage pour prendre effet",
"AppDataDirectory": "Dossier AppData",
"ApplyTags": "Appliquer les Étiquettes",
"ApplyTags": "Appliquer les tags",
"ApplyTagsHelpTexts1": "Comment appliquer des tags à l'auteur sélectionné",
"ApplyTagsHelpTexts2": "Ajouter : Ajouter les étiquettes à la liste des étiquettes existantes",
"ApplyTagsHelpTexts3": "Retirer : Retire les étiquettes renseignées",

View File

@@ -29,11 +29,11 @@
"Analytics": "Análises",
"AnalyticsEnabledHelpText": "Envie informações anônimas de uso e erro para os servidores do Readarr. Isso inclui informações sobre seu navegador, quais páginas da interface Web do Readarr você usa, relatórios de erros, e a versão do sistema operacional e do tempo de execução. Usaremos essas informações para priorizar recursos e correções de bugs.",
"AppDataDirectory": "Diretório AppData",
"ApplyTags": "Aplicar tags",
"ApplyTags": "Aplicar Tags",
"ApplyTagsHelpTexts1": "Como aplicar tags ao autor selecionado",
"ApplyTagsHelpTexts2": "Adicionar: adiciona as etiquetas à lista existente de etiquetas",
"ApplyTagsHelpTexts3": "Remover: excluir as tags inseridas",
"ApplyTagsHelpTexts4": "Substituir: sobrepor as tags existentes pelas inseridas (deixe em branco para limpar todas as tags)",
"ApplyTagsHelpTexts2": "Adicionar: adicione as tags à lista existente de tags",
"ApplyTagsHelpTexts3": "Remover: remove as tags inseridas",
"ApplyTagsHelpTexts4": "Substituir: Substitua as tags pelas tags inseridas (não digite nenhuma tag para limpar todas as tags)",
"Authentication": "Autenticação",
"AuthenticationMethodHelpText": "Exigir nome de usuário e senha para acessar o Readarr",
"AuthorClickToChangeBook": "Clique para alterar o livro",
@@ -692,7 +692,7 @@
"Monitoring": "Monitorando",
"SeriesTotal": "Séries ({0})",
"TooManyBooks": "Livros ausentes ou muitos? Modifique ou crie um novo",
"BlocklistRelease": "Lista de Bloqueio de Lançamentos",
"BlocklistRelease": "Lançamento na lista de bloqueio",
"NoHistoryBlocklist": "Nenhum histórico na lista de bloqueio",
"Blocklist": "Lista de bloqueio",
"RemoveFromBlocklist": "Remover da lista de bloqueio",
@@ -890,14 +890,14 @@
"MinFormatScoreHelpText": "Pontuação mínima de formato personalizado permitida para download",
"RecycleBinUnableToWriteHealthCheck": "Não é possível gravar na pasta da lixeira configurada: {0}. Certifique-se de que este caminho exista e seja gravável pelo usuário executando o Readarr",
"Clone": "Clonar",
"CloneCustomFormat": "Clonar Formato Personalizado",
"CloneCustomFormat": "Clonar formato personalizado",
"Conditions": "'Condições'",
"CopyToClipboard": "Copiar para área de transferência",
"CustomFormat": "Formato Personalizado",
"CustomFormatSettings": "Configurações do Formato Personalizado",
"CustomFormats": "Formatos Personalizados",
"CutoffFormatScoreHelpText": "Depois que essa pontuação de formato personalizado for alcançada, Readarr não obterá mais lançamentos de livros",
"DeleteCustomFormat": "Excluir Formato Personalizado",
"DeleteCustomFormat": "Excluir formato personalizado",
"ExportCustomFormat": "Exportar Formato Personalizado",
"Formats": "Formatos",
"Loading": "carregando",
@@ -926,11 +926,11 @@
"SmartReplace": "Substituição Inteligente",
"ReplaceWithSpaceDashSpace": "Substituir com Espaço e Traço e Espaço",
"DeleteRemotePathMapping": "Excluir Mapeamento de Caminho Remoto",
"BlocklistReleases": "Lista de Bloqueio de Lançamentos",
"CloneCondition": "Condição de Clone",
"BlocklistReleases": "Lançamentos na lista de bloqueio",
"CloneCondition": "Condição de clone",
"DeleteConditionMessageText": "Tem certeza de que deseja excluir a condição '{0}'?",
"DeleteRemotePathMappingMessageText": "Tem certeza de que deseja excluir este mapeamento de caminho remoto?",
"DeleteCondition": "Excluir Condição",
"DeleteCondition": "Excluir condição",
"Negated": "Negado",
"RemoveSelectedItem": "Remover Item Selecionado",
"RemoveSelectedItemBlocklistMessageText": "Tem certeza de que deseja remover os itens selecionados da lista de bloqueio?",

View File

@@ -16,7 +16,7 @@
"ApplyTags": "应用标签",
"ApplyTagsHelpTexts1": "如何给选中的电影添加标签",
"ApplyTagsHelpTexts2": "添加:将标签添加到现有标签列表",
"ApplyTagsHelpTexts3": "删除:除输入的标签",
"ApplyTagsHelpTexts3": "删除:除输入的标签",
"ApplyTagsHelpTexts4": "替换:用输入的标签替换标签(不输入标签将清除所有标签)",
"Authentication": "认证",
"AuthenticationMethodHelpText": "您需要用户名和密码来访问Radarr",
@@ -290,7 +290,7 @@
"RescanAuthorFolderAfterRefresh": "刷新后重新扫描作者文件夹",
"Reset": "重置",
"ResetAPIKey": "重置API Key",
"ResetAPIKeyMessageText": "您确定要重置您的API密钥吗",
"ResetAPIKeyMessageText": "您确定要重置您的 API 密钥吗?",
"Restart": "重启",
"RestartNow": "马上重启",
"RestartReadarr": "重启Radarr",
@@ -796,7 +796,7 @@
"MinPopularityHelpText": "人气是平均评分*票",
"MonitorBookExistingOnlyWarning": "这是对每本书籍的监控设置的一次性调整 使用作者/编辑下的选项来控制新添加的书籍将如何",
"NameFirstLast": "姓名",
"NoHistoryBlocklist": "没有历史黑名单列表",
"NoHistoryBlocklist": "没有历史黑名单",
"OnAuthorDelete": "在作者删除时",
"OnBookRetagHelpText": "在书籍重加标签时",
"OnImportFailure": "在导入失败时",
@@ -906,10 +906,19 @@
"CustomFormatScore": "自定义格式分数",
"DataFutureBooks": "监控尚未发布的书籍",
"ExportCustomFormat": "已有自定义格式",
"ResetDefinitionTitlesHelpText": "重置定义标题与参数值",
"ResetDefinitionTitlesHelpText": "重置定义标题值",
"DeleteRemotePathMappingMessageText": "是否确实要删除此远程路径映射?",
"ListRefreshInterval": "列表刷新间隔",
"CloneCondition": "克隆条件",
"DeleteCondition": "删除条件",
"ApiKeyValidationHealthCheckMessage": "请将API密钥更新为至少{0}个字符长。您可以通过设置或配置文件执行此操作"
"ApiKeyValidationHealthCheckMessage": "请将API密钥更新为至少{0}个字符长。您可以通过设置或配置文件执行此操作",
"HiddenClickToShow": "隐藏,点击显示",
"HideAdvanced": "隐藏高级",
"ListWillRefreshEveryInterp": "列表将每 {0} 刷新一次",
"ShowAdvanced": "显示高级",
"ShownClickToHide": "显示,点击隐藏",
"RemoveSelectedItemQueueMessageText": "您确定要从队列中删除 1 项吗?",
"RemoveSelectedItemBlocklistMessageText": "您确定要从阻止列表中删除所选项目吗?",
"RemoveSelectedItemsQueueMessageText": "您确定要从队列中删除 {0} 个项目吗?",
"ResetQualityDefinitionsMessageText": "您确定要重置质量定义吗?"
}

View File

@@ -20,6 +20,7 @@ namespace Readarr.Api.V1.Queue
public BookResource Book { get; set; }
public QualityModel Quality { get; set; }
public List<CustomFormatResource> CustomFormats { get; set; }
public int CustomFormatScore { get; set; }
public decimal Size { get; set; }
public string Title { get; set; }
public decimal Sizeleft { get; set; }
@@ -47,6 +48,9 @@ namespace Readarr.Api.V1.Queue
return null;
}
var customFormats = model.RemoteBook?.CustomFormats;
var customFormatScore = model.RemoteBook?.Author?.QualityProfile?.Value?.CalculateCustomFormatScore(customFormats) ?? 0;
return new QueueResource
{
Id = model.Id,
@@ -55,7 +59,8 @@ namespace Readarr.Api.V1.Queue
Author = includeAuthor && model.Author != null ? model.Author.ToResource() : null,
Book = includeBook && model.Book != null ? model.Book.ToResource() : null,
Quality = model.Quality,
CustomFormats = model.RemoteBook?.CustomFormats?.ToResource(false),
CustomFormats = customFormats?.ToResource(false),
CustomFormatScore = customFormatScore,
Size = model.Size,
Title = model.Title,
Sizeleft = model.Sizeleft,

View File

@@ -11930,6 +11930,10 @@
},
"nullable": true
},
"customFormatScore": {
"type": "integer",
"format": "int32"
},
"size": {
"type": "number",
"format": "double"

2236
yarn.lock

File diff suppressed because it is too large Load Diff