Merge branch 'Readarr:develop' into develop

pull/3344/head
adechant 4 months ago committed by GitHub
commit 652f2c41dd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

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

@ -23,7 +23,7 @@ import selectAll from 'Utilities/Table/selectAll';
import toggleSelected from 'Utilities/Table/toggleSelected';
import QueueOptionsConnector from './QueueOptionsConnector';
import QueueRowConnector from './QueueRowConnector';
import RemoveQueueItemsModal from './RemoveQueueItemsModal';
import RemoveQueueItemModal from './RemoveQueueItemModal';
class Queue extends Component {
@ -289,9 +289,16 @@ class Queue extends Component {
}
</PageContentBody>
<RemoveQueueItemsModal
<RemoveQueueItemModal
isOpen={isConfirmRemoveModalOpen}
selectedCount={selectedCount}
canChangeCategory={isConfirmRemoveModalOpen && (
selectedIds.every((id) => {
const item = items.find((i) => i.id === id);
return !!(item && item.downloadClientHasPostImportCategory);
})
)}
canIgnore={isConfirmRemoveModalOpen && (
selectedIds.every((id) => {
const item = items.find((i) => i.id === id);
@ -299,7 +306,7 @@ class Queue extends Component {
return !!(item && item.authorId && item.bookId);
})
)}
allPending={isConfirmRemoveModalOpen && (
pending={isConfirmRemoveModalOpen && (
selectedIds.every((id) => {
const item = items.find((i) => i.id === id);

@ -98,6 +98,7 @@ class QueueRow extends Component {
indexer,
outputPath,
downloadClient,
downloadClientHasPostImportCategory,
downloadForced,
estimatedCompletionTime,
timeleft,
@ -389,6 +390,7 @@ class QueueRow extends Component {
<RemoveQueueItemModal
isOpen={isRemoveQueueItemModalOpen}
sourceTitle={title}
canChangeCategory={!!downloadClientHasPostImportCategory}
canIgnore={!!author}
isPending={isPending}
onRemovePress={this.onRemoveQueueItemModalConfirmed}
@ -418,6 +420,7 @@ QueueRow.propTypes = {
indexer: PropTypes.string,
outputPath: PropTypes.string,
downloadClient: PropTypes.string,
downloadClientHasPostImportCategory: PropTypes.bool,
downloadForced: PropTypes.bool.isRequired,
estimatedCompletionTime: PropTypes.string,
timeleft: PropTypes.string,

@ -1,177 +0,0 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import FormGroup from 'Components/Form/FormGroup';
import FormInputGroup from 'Components/Form/FormInputGroup';
import FormLabel from 'Components/Form/FormLabel';
import Button from 'Components/Link/Button';
import Modal from 'Components/Modal/Modal';
import ModalBody from 'Components/Modal/ModalBody';
import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { inputTypes, kinds, sizes } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
class RemoveQueueItemModal extends Component {
//
// Lifecycle
constructor(props, context) {
super(props, context);
this.state = {
remove: true,
blocklist: false,
skipRedownload: false
};
}
//
// Control
resetState = function() {
this.setState({
remove: true,
blocklist: false,
skipRedownload: false
});
};
//
// Listeners
onRemoveChange = ({ value }) => {
this.setState({ remove: value });
};
onBlocklistChange = ({ value }) => {
this.setState({ blocklist: value });
};
onSkipRedownloadChange = ({ value }) => {
this.setState({ skipRedownload: value });
};
onRemoveConfirmed = () => {
const state = this.state;
this.resetState();
this.props.onRemovePress(state);
};
onModalClose = () => {
this.resetState();
this.props.onModalClose();
};
//
// Render
render() {
const {
isOpen,
sourceTitle,
canIgnore,
isPending
} = this.props;
const { remove, blocklist, skipRedownload } = this.state;
return (
<Modal
isOpen={isOpen}
size={sizes.MEDIUM}
onModalClose={this.onModalClose}
>
<ModalContent
onModalClose={this.onModalClose}
>
<ModalHeader>
Remove - {sourceTitle}
</ModalHeader>
<ModalBody>
<div>
Are you sure you want to remove '{sourceTitle}' from the queue?
</div>
{
isPending ?
null :
<FormGroup>
<FormLabel>
{translate('RemoveFromDownloadClient')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="remove"
value={remove}
helpTextWarning={translate('RemoveHelpTextWarning')}
isDisabled={!canIgnore}
onChange={this.onRemoveChange}
/>
</FormGroup>
}
<FormGroup>
<FormLabel>
{translate('BlocklistRelease')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="blocklist"
value={blocklist}
helpText={translate('BlocklistReleaseHelpText')}
onChange={this.onBlocklistChange}
/>
</FormGroup>
{
blocklist &&
<FormGroup>
<FormLabel>
{translate('SkipRedownload')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="skipRedownload"
value={skipRedownload}
helpText={translate('SkipRedownloadHelpText')}
onChange={this.onSkipRedownloadChange}
/>
</FormGroup>
}
</ModalBody>
<ModalFooter>
<Button onPress={this.onModalClose}>
Close
</Button>
<Button
kind={kinds.DANGER}
onPress={this.onRemoveConfirmed}
>
Remove
</Button>
</ModalFooter>
</ModalContent>
</Modal>
);
}
}
RemoveQueueItemModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
sourceTitle: PropTypes.string.isRequired,
canIgnore: PropTypes.bool.isRequired,
isPending: PropTypes.bool.isRequired,
onRemovePress: PropTypes.func.isRequired,
onModalClose: PropTypes.func.isRequired
};
export default RemoveQueueItemModal;

@ -0,0 +1,230 @@
import React, { useCallback, useMemo, useState } from 'react';
import FormGroup from 'Components/Form/FormGroup';
import FormInputGroup from 'Components/Form/FormInputGroup';
import FormLabel from 'Components/Form/FormLabel';
import Button from 'Components/Link/Button';
import Modal from 'Components/Modal/Modal';
import ModalBody from 'Components/Modal/ModalBody';
import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { inputTypes, kinds, sizes } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import styles from './RemoveQueueItemModal.css';
interface RemovePressProps {
remove: boolean;
changeCategory: boolean;
blocklist: boolean;
skipRedownload: boolean;
}
interface RemoveQueueItemModalProps {
isOpen: boolean;
sourceTitle: string;
canChangeCategory: boolean;
canIgnore: boolean;
isPending: boolean;
selectedCount?: number;
onRemovePress(props: RemovePressProps): void;
onModalClose: () => void;
}
type RemovalMethod = 'removeFromClient' | 'changeCategory' | 'ignore';
type BlocklistMethod =
| 'doNotBlocklist'
| 'blocklistAndSearch'
| 'blocklistOnly';
function RemoveQueueItemModal(props: RemoveQueueItemModalProps) {
const {
isOpen,
sourceTitle,
canIgnore,
canChangeCategory,
isPending,
selectedCount,
onRemovePress,
onModalClose,
} = props;
const multipleSelected = selectedCount && selectedCount > 1;
const [removalMethod, setRemovalMethod] =
useState<RemovalMethod>('removeFromClient');
const [blocklistMethod, setBlocklistMethod] =
useState<BlocklistMethod>('doNotBlocklist');
const { title, message } = useMemo(() => {
if (!selectedCount) {
return {
title: translate('RemoveQueueItem', { sourceTitle }),
message: translate('RemoveQueueItemConfirmation', { sourceTitle }),
};
}
if (selectedCount === 1) {
return {
title: translate('RemoveSelectedItem'),
message: translate('RemoveSelectedItemQueueMessageText'),
};
}
return {
title: translate('RemoveSelectedItems'),
message: translate('RemoveSelectedItemsQueueMessageText', {
selectedCount,
}),
};
}, [sourceTitle, selectedCount]);
const removalMethodOptions = useMemo(() => {
return [
{
key: 'removeFromClient',
value: translate('RemoveFromDownloadClient'),
hint: multipleSelected
? translate('RemoveMultipleFromDownloadClientHint')
: translate('RemoveFromDownloadClientHint'),
},
{
key: 'changeCategory',
value: translate('ChangeCategory'),
isDisabled: !canChangeCategory,
hint: multipleSelected
? translate('ChangeCategoryMultipleHint')
: translate('ChangeCategoryHint'),
},
{
key: 'ignore',
value: multipleSelected
? translate('IgnoreDownloads')
: translate('IgnoreDownload'),
isDisabled: !canIgnore,
hint: multipleSelected
? translate('IgnoreDownloadsHint')
: translate('IgnoreDownloadHint'),
},
];
}, [canChangeCategory, canIgnore, multipleSelected]);
const blocklistMethodOptions = useMemo(() => {
return [
{
key: 'doNotBlocklist',
value: translate('DoNotBlocklist'),
hint: translate('DoNotBlocklistHint'),
},
{
key: 'blocklistAndSearch',
value: translate('BlocklistAndSearch'),
hint: multipleSelected
? translate('BlocklistAndSearchMultipleHint')
: translate('BlocklistAndSearchHint'),
},
{
key: 'blocklistOnly',
value: translate('BlocklistOnly'),
hint: multipleSelected
? translate('BlocklistMultipleOnlyHint')
: translate('BlocklistOnlyHint'),
},
];
}, [multipleSelected]);
const handleRemovalMethodChange = useCallback(
({ value }: { value: RemovalMethod }) => {
setRemovalMethod(value);
},
[setRemovalMethod]
);
const handleBlocklistMethodChange = useCallback(
({ value }: { value: BlocklistMethod }) => {
setBlocklistMethod(value);
},
[setBlocklistMethod]
);
const handleConfirmRemove = useCallback(() => {
onRemovePress({
remove: removalMethod === 'removeFromClient',
changeCategory: removalMethod === 'changeCategory',
blocklist: blocklistMethod !== 'doNotBlocklist',
skipRedownload: blocklistMethod === 'blocklistOnly',
});
setRemovalMethod('removeFromClient');
setBlocklistMethod('doNotBlocklist');
}, [
removalMethod,
blocklistMethod,
setRemovalMethod,
setBlocklistMethod,
onRemovePress,
]);
const handleModalClose = useCallback(() => {
setRemovalMethod('removeFromClient');
setBlocklistMethod('doNotBlocklist');
onModalClose();
}, [setRemovalMethod, setBlocklistMethod, onModalClose]);
return (
<Modal isOpen={isOpen} size={sizes.MEDIUM} onModalClose={handleModalClose}>
<ModalContent onModalClose={handleModalClose}>
<ModalHeader>{title}</ModalHeader>
<ModalBody>
<div className={styles.message}>{message}</div>
{isPending ? null : (
<FormGroup>
<FormLabel>{translate('RemoveQueueItemRemovalMethod')}</FormLabel>
<FormInputGroup
type={inputTypes.SELECT}
name="removalMethod"
value={removalMethod}
values={removalMethodOptions}
isDisabled={!canChangeCategory && !canIgnore}
helpTextWarning={translate(
'RemoveQueueItemRemovalMethodHelpTextWarning'
)}
onChange={handleRemovalMethodChange}
/>
</FormGroup>
)}
<FormGroup>
<FormLabel>
{multipleSelected
? translate('BlocklistReleases')
: translate('BlocklistRelease')}
</FormLabel>
<FormInputGroup
type={inputTypes.SELECT}
name="blocklistMethod"
value={blocklistMethod}
values={blocklistMethodOptions}
helpText={translate('BlocklistReleaseHelpText')}
onChange={handleBlocklistMethodChange}
/>
</FormGroup>
</ModalBody>
<ModalFooter>
<Button onPress={handleModalClose}>{translate('Close')}</Button>
<Button kind={kinds.DANGER} onPress={handleConfirmRemove}>
{translate('Remove')}
</Button>
</ModalFooter>
</ModalContent>
</Modal>
);
}
export default RemoveQueueItemModal;

@ -1,178 +0,0 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import FormGroup from 'Components/Form/FormGroup';
import FormInputGroup from 'Components/Form/FormInputGroup';
import FormLabel from 'Components/Form/FormLabel';
import Button from 'Components/Link/Button';
import Modal from 'Components/Modal/Modal';
import ModalBody from 'Components/Modal/ModalBody';
import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { inputTypes, kinds, sizes } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import styles from './RemoveQueueItemsModal.css';
class RemoveQueueItemsModal extends Component {
//
// Lifecycle
constructor(props, context) {
super(props, context);
this.state = {
remove: true,
blocklist: false,
skipRedownload: false
};
}
//
// Control
resetState = function() {
this.setState({
remove: true,
blocklist: false,
skipRedownload: false
});
};
//
// Listeners
onRemoveChange = ({ value }) => {
this.setState({ remove: value });
};
onBlocklistChange = ({ value }) => {
this.setState({ blocklist: value });
};
onSkipRedownloadChange = ({ value }) => {
this.setState({ skipRedownload: value });
};
onRemoveConfirmed = () => {
const state = this.state;
this.resetState();
this.props.onRemovePress(state);
};
onModalClose = () => {
this.resetState();
this.props.onModalClose();
};
//
// Render
render() {
const {
isOpen,
selectedCount,
canIgnore,
allPending
} = this.props;
const { remove, blocklist, skipRedownload } = this.state;
return (
<Modal
isOpen={isOpen}
size={sizes.MEDIUM}
onModalClose={this.onModalClose}
>
<ModalContent
onModalClose={this.onModalClose}
>
<ModalHeader>
{selectedCount > 1 ? translate('RemoveSelectedItems') : translate('RemoveSelectedItem')}
</ModalHeader>
<ModalBody>
<div className={styles.message}>
{selectedCount > 1 ? translate('RemoveSelectedItemsQueueMessageText', { selectedCount }) : translate('RemoveSelectedItemQueueMessageText')}
</div>
{
allPending ?
null :
<FormGroup>
<FormLabel>
{translate('RemoveFromDownloadClient')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="remove"
value={remove}
helpTextWarning={translate('RemoveHelpTextWarning')}
isDisabled={!canIgnore}
onChange={this.onRemoveChange}
/>
</FormGroup>
}
<FormGroup>
<FormLabel>
{selectedCount > 1 ? translate('BlocklistReleases') : translate('BlocklistRelease')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="blocklist"
value={blocklist}
helpText={translate('BlocklistReleaseHelpText')}
onChange={this.onBlocklistChange}
/>
</FormGroup>
{
blocklist &&
<FormGroup>
<FormLabel>
{translate('SkipRedownload')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="skipRedownload"
value={skipRedownload}
helpText={translate('SkipRedownloadHelpText')}
onChange={this.onSkipRedownloadChange}
/>
</FormGroup>
}
</ModalBody>
<ModalFooter>
<Button onPress={this.onModalClose}>
{translate('Close')}
</Button>
<Button
kind={kinds.DANGER}
onPress={this.onRemoveConfirmed}
>
{translate('Remove')}
</Button>
</ModalFooter>
</ModalContent>
</Modal>
);
}
}
RemoveQueueItemsModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
selectedCount: PropTypes.number.isRequired,
canIgnore: PropTypes.bool.isRequired,
allPending: PropTypes.bool.isRequired,
onRemovePress: PropTypes.func.isRequired,
onModalClose: PropTypes.func.isRequired
};
export default RemoveQueueItemsModal;

@ -273,6 +273,7 @@ FormInputGroup.propTypes = {
name: PropTypes.string.isRequired,
value: PropTypes.any,
values: PropTypes.arrayOf(PropTypes.any),
isDisabled: PropTypes.bool,
type: PropTypes.string.isRequired,
kind: PropTypes.oneOf(kinds.all),
min: PropTypes.number,

@ -49,7 +49,7 @@ function EditSpecificationModalContent(props) {
{...otherProps}
>
{
fields && fields.some((x) => x.label === 'Regular Expression') &&
fields && fields.some((x) => x.label === translate('CustomFormatsSpecificationRegularExpression')) &&
<Alert kind={kinds.INFO}>
<div>
<div dangerouslySetInnerHTML={{ __html: 'This condition matches using Regular Expressions. Note that the characters <code>\\^$.|?*+()[{</code> have special meanings and need escaping with a <code>\\</code>' }} />

@ -14,12 +14,17 @@ function PendingChangesModal(props) {
isOpen,
onConfirm,
onCancel,
bindShortcut
bindShortcut,
unbindShortcut
} = props;
useEffect(() => {
bindShortcut('enter', onConfirm);
}, [bindShortcut, onConfirm]);
if (isOpen) {
bindShortcut('enter', onConfirm);
return () => unbindShortcut('enter', onConfirm);
}
}, [bindShortcut, unbindShortcut, isOpen, onConfirm]);
return (
<Modal
@ -60,7 +65,8 @@ PendingChangesModal.propTypes = {
kind: PropTypes.oneOf(kinds.all),
onConfirm: PropTypes.func.isRequired,
onCancel: PropTypes.func.isRequired,
bindShortcut: PropTypes.func.isRequired
bindShortcut: PropTypes.func.isRequired,
unbindShortcut: PropTypes.func.isRequired
};
PendingChangesModal.defaultProps = {

@ -371,13 +371,14 @@ export const actionHandlers = handleThunks({
id,
remove,
blocklist,
skipRedownload
skipRedownload,
changeCategory
} = payload;
dispatch(updateItem({ section: paged, id, isRemoving: true }));
const promise = createAjaxRequest({
url: `/queue/${id}?removeFromClient=${remove}&blocklist=${blocklist}&skipRedownload=${skipRedownload}`,
url: `/queue/${id}?removeFromClient=${remove}&blocklist=${blocklist}&skipRedownload=${skipRedownload}&changeCategory=${changeCategory}`,
method: 'DELETE'
}).request;
@ -395,7 +396,8 @@ export const actionHandlers = handleThunks({
ids,
remove,
blocklist,
skipRedownload
skipRedownload,
changeCategory
} = payload;
dispatch(batchActions([
@ -411,7 +413,7 @@ export const actionHandlers = handleThunks({
]));
const promise = createAjaxRequest({
url: `/queue/bulk?removeFromClient=${remove}&blocklist=${blocklist}&skipRedownload=${skipRedownload}`,
url: `/queue/bulk?removeFromClient=${remove}&blocklist=${blocklist}&skipRedownload=${skipRedownload}&changeCategory=${changeCategory}`,
method: 'DELETE',
dataType: 'json',
data: JSON.stringify({ ids })

@ -22,9 +22,9 @@ class About extends Component {
isNetCore,
isDocker,
runtimeVersion,
migrationVersion,
databaseVersion,
databaseType,
migrationVersion,
appData,
startupPath,
mode,
@ -66,13 +66,13 @@ class About extends Component {
}
<DescriptionListItem
title={translate('DBMigration')}
data={migrationVersion}
title={translate('Database')}
data={`${titleCase(databaseType)} ${databaseVersion}`}
/>
<DescriptionListItem
title={translate('Database')}
data={`${titleCase(databaseType)} ${databaseVersion}`}
title={translate('DatabaseMigration')}
data={migrationVersion}
/>
<DescriptionListItem
@ -114,9 +114,9 @@ About.propTypes = {
isNetCore: PropTypes.bool.isRequired,
runtimeVersion: PropTypes.string.isRequired,
isDocker: PropTypes.bool.isRequired,
migrationVersion: PropTypes.number.isRequired,
databaseType: PropTypes.string.isRequired,
databaseVersion: PropTypes.string.isRequired,
migrationVersion: PropTypes.number.isRequired,
appData: PropTypes.string.isRequired,
startupPath: PropTypes.string.isRequired,
mode: PropTypes.string.isRequired,

@ -454,6 +454,8 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.SabnzbdTests
[TestCase("0")]
[TestCase("15d")]
[TestCase("")]
[TestCase(null)]
public void should_set_history_removes_completed_downloads_false(string historyRetention)
{
_config.Misc.history_retention = historyRetention;

@ -225,7 +225,12 @@ namespace NzbDrone.Core.Books
public Author UpdateAuthor(Author author)
{
_cache.Clear();
var storedAuthor = GetAuthor(author.Id);
// Never update AddOptions when updating an author, keep it the same as the existing stored author.
author.AddOptions = storedAuthor.AddOptions;
var updatedAuthor = _authorRepository.Update(author);
_eventAggregator.PublishEvent(new AuthorEditedEvent(updatedAuthor, storedAuthor));

@ -21,7 +21,7 @@ namespace NzbDrone.Core.CustomFormats
protected Regex _regex;
protected string _raw;
[FieldDefinition(1, Label = "Regular Expression", HelpText = "Custom Format RegEx is Case Insensitive")]
[FieldDefinition(1, Label = "CustomFormatsSpecificationRegularExpression", HelpText = "CustomFormatsSpecificationRegularExpressionHelpText")]
public string Value
{
get => _raw;

@ -132,7 +132,7 @@ namespace NzbDrone.Core.Download.Clients.Aria2
CanMoveFiles = false,
CanBeRemoved = torrent.Status == "complete",
Category = null,
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
DownloadId = torrent.InfoHash?.ToUpper(),
IsEncrypted = false,
Message = torrent.ErrorMessage,

@ -89,7 +89,7 @@ namespace NzbDrone.Core.Download.Clients.Blackhole
{
yield return new DownloadClientItem
{
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
DownloadId = Definition.Name + "_" + item.DownloadId,
Category = "Readarr",
Title = item.Title,

@ -59,7 +59,7 @@ namespace NzbDrone.Core.Download.Clients.Blackhole
{
yield return new DownloadClientItem
{
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
DownloadId = Definition.Name + "_" + item.DownloadId,
Category = "Readarr",
Title = item.Title,

@ -135,7 +135,7 @@ namespace NzbDrone.Core.Download.Clients.Deluge
item.Title = torrent.Name;
item.Category = Settings.MusicCategory;
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, Settings.MusicImportedCategory.IsNotNullOrWhiteSpace());
var outputPath = _remotePathMappingService.RemapRemoteToLocal(Settings.Host, new OsPath(torrent.DownloadPath));
item.OutputPath = outputPath + torrent.Name;

@ -89,7 +89,7 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
var item = new DownloadClientItem()
{
Category = Settings.MusicCategory,
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
DownloadId = CreateDownloadId(torrent.Id, serialNumber),
Title = torrent.Title,
TotalSize = torrent.Size,

@ -97,7 +97,7 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
var item = new DownloadClientItem()
{
Category = Settings.MusicCategory,
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
DownloadId = CreateDownloadId(nzb.Id, serialNumber),
Title = nzb.Title,
TotalSize = nzb.Size,

@ -109,7 +109,7 @@ namespace NzbDrone.Core.Download.Clients.Flood
var item = new DownloadClientItem
{
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
DownloadId = torrent.Key,
Title = properties.Name,
OutputPath = _remotePathMappingService.RemapRemoteToLocal(Settings.Host, new OsPath(properties.Directory)),

@ -57,7 +57,7 @@ namespace NzbDrone.Core.Download.Clients.Hadouken
var item = new DownloadClientItem
{
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
DownloadId = torrent.InfoHash.ToUpper(),
OutputPath = outputPath + torrent.Name,
RemainingSize = torrent.TotalSize - torrent.DownloadedBytes,

@ -56,7 +56,7 @@ namespace NzbDrone.Core.Download.Clients.NzbVortex
{
var queueItem = new DownloadClientItem();
queueItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
queueItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false);
queueItem.DownloadId = vortexQueueItem.AddUUID ?? vortexQueueItem.Id.ToString();
queueItem.Category = vortexQueueItem.GroupName;
queueItem.Title = vortexQueueItem.UiTitle;

@ -72,7 +72,7 @@ namespace NzbDrone.Core.Download.Clients.Nzbget
queueItem.Title = item.NzbName;
queueItem.TotalSize = totalSize;
queueItem.Category = item.Category;
queueItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
queueItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false);
queueItem.CanMoveFiles = true;
queueItem.CanBeRemoved = true;
@ -119,7 +119,7 @@ namespace NzbDrone.Core.Download.Clients.Nzbget
var historyItem = new DownloadClientItem();
var itemDir = item.FinalDir.IsNullOrWhiteSpace() ? item.DestDir : item.FinalDir;
historyItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
historyItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false);
historyItem.DownloadId = droneParameter == null ? item.Id.ToString() : droneParameter.Value.ToString();
historyItem.Title = item.Name;
historyItem.TotalSize = MakeInt64(item.FileSizeHi, item.FileSizeLo);

@ -73,7 +73,7 @@ namespace NzbDrone.Core.Download.Clients.Pneumatic
var historyItem = new DownloadClientItem
{
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
DownloadId = GetDownloadClientId(file),
Title = title,

@ -231,7 +231,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
Category = torrent.Category.IsNotNullOrWhiteSpace() ? torrent.Category : torrent.Label,
Title = torrent.Name,
TotalSize = torrent.Size,
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, Settings.MusicImportedCategory.IsNotNullOrWhiteSpace()),
RemainingSize = (long)(torrent.Size * (1.0 - torrent.Progress)),
RemainingTime = GetRemainingTime(torrent),
SeedRatio = torrent.Ratio

@ -63,7 +63,7 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
}
var queueItem = new DownloadClientItem();
queueItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
queueItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false);
queueItem.DownloadId = sabQueueItem.Id;
queueItem.Category = sabQueueItem.Category;
queueItem.Title = sabQueueItem.Title;
@ -118,7 +118,7 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
var historyItem = new DownloadClientItem
{
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
DownloadId = sabHistoryItem.Id,
Category = sabHistoryItem.Category,
Title = sabHistoryItem.Title,
@ -263,7 +263,11 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
status.OutputRootFolders = new List<OsPath> { _remotePathMappingService.RemapRemoteToLocal(Settings.Host, category.FullPath) };
}
if (config.Misc.history_retention.IsNotNullOrWhiteSpace() && config.Misc.history_retention.EndsWith("d"))
if (config.Misc.history_retention.IsNullOrWhiteSpace())
{
status.RemovesCompletedDownloads = false;
}
else if (config.Misc.history_retention.EndsWith("d"))
{
int.TryParse(config.Misc.history_retention.AsSpan(0, config.Misc.history_retention.Length - 1),
out var daysRetention);

@ -72,7 +72,7 @@ namespace NzbDrone.Core.Download.Clients.Transmission
item.Category = Settings.MusicCategory;
item.Title = torrent.Name;
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false);
item.OutputPath = GetOutputPath(outputPath, torrent);
item.TotalSize = torrent.TotalSize;

@ -146,7 +146,7 @@ namespace NzbDrone.Core.Download.Clients.RTorrent
}
var item = new DownloadClientItem();
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, Settings.MusicImportedCategory.IsNotNullOrWhiteSpace());
item.Title = torrent.Name;
item.DownloadId = torrent.Hash;
item.OutputPath = _remotePathMappingService.RemapRemoteToLocal(Settings.Host, new OsPath(torrent.Path));

@ -120,7 +120,7 @@ namespace NzbDrone.Core.Download.Clients.UTorrent
item.Title = torrent.Name;
item.TotalSize = torrent.Size;
item.Category = torrent.Label;
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, Settings.MusicImportedCategory.IsNotNullOrWhiteSpace());
item.RemainingSize = torrent.Remaining;
item.SeedRatio = torrent.Ratio;

@ -38,8 +38,10 @@ namespace NzbDrone.Core.Download
public string Type { get; set; }
public int Id { get; set; }
public string Name { get; set; }
public bool HasPostImportCategory { get; set; }
public static DownloadClientItemClientInfo FromDownloadClient<TSettings>(DownloadClientBase<TSettings> downloadClient)
public static DownloadClientItemClientInfo FromDownloadClient<TSettings>(
DownloadClientBase<TSettings> downloadClient, bool hasPostImportCategory)
where TSettings : IProviderConfig, new()
{
return new DownloadClientItemClientInfo
@ -47,7 +49,8 @@ namespace NzbDrone.Core.Download
Protocol = downloadClient.Protocol,
Type = downloadClient.Name,
Id = downloadClient.Definition.Id,
Name = downloadClient.Definition.Name
Name = downloadClient.Definition.Name,
HasPostImportCategory = hasPostImportCategory
};
}
}

@ -46,6 +46,8 @@ namespace NzbDrone.Core.Download.Pending
private readonly IConfigService _configService;
private readonly ICustomFormatCalculationService _formatCalculator;
private readonly IRemoteBookAggregationService _aggregationService;
private readonly IDownloadClientFactory _downloadClientFactory;
private readonly IIndexerFactory _indexerFactory;
private readonly IEventAggregator _eventAggregator;
private readonly Logger _logger;
@ -58,6 +60,8 @@ namespace NzbDrone.Core.Download.Pending
IConfigService configService,
ICustomFormatCalculationService formatCalculator,
IRemoteBookAggregationService aggregationService,
IDownloadClientFactory downloadClientFactory,
IIndexerFactory indexerFactory,
IEventAggregator eventAggregator,
Logger logger)
{
@ -70,6 +74,8 @@ namespace NzbDrone.Core.Download.Pending
_configService = configService;
_formatCalculator = formatCalculator;
_aggregationService = aggregationService;
_downloadClientFactory = downloadClientFactory;
_indexerFactory = indexerFactory;
_eventAggregator = eventAggregator;
_logger = logger;
}
@ -107,9 +113,16 @@ namespace NzbDrone.Core.Download.Pending
if (matchingReport.Reason != reason)
{
_logger.Debug("The release {0} is already pending with reason {1}, changing to {2}", decision.RemoteBook, matchingReport.Reason, reason);
matchingReport.Reason = reason;
_repository.Update(matchingReport);
if (matchingReport.Reason == PendingReleaseReason.DownloadClientUnavailable)
{
_logger.Debug("The release {0} is already pending with reason {1}, not changing reason", decision.RemoteBook, matchingReport.Reason);
}
else
{
_logger.Debug("The release {0} is already pending with reason {1}, changing to {2}", decision.RemoteBook, matchingReport.Reason, reason);
matchingReport.Reason = reason;
_repository.Update(matchingReport);
}
}
else
{
@ -190,6 +203,16 @@ namespace NzbDrone.Core.Download.Pending
timeleft = TimeSpan.Zero;
}
string downloadClientName = null;
var indexer = _indexerFactory.Find(pendingRelease.Release.IndexerId);
if (indexer is { DownloadClientId: > 0 })
{
var downloadClient = _downloadClientFactory.Find(indexer.DownloadClientId);
downloadClientName = downloadClient?.Name;
}
var queue = new Queue.Queue
{
Id = GetQueueId(pendingRelease, book),
@ -204,7 +227,8 @@ namespace NzbDrone.Core.Download.Pending
EstimatedCompletionTime = ect,
Status = pendingRelease.Reason.ToString(),
Protocol = pendingRelease.RemoteBook.Release.DownloadProtocol,
Indexer = pendingRelease.RemoteBook.Release.Indexer
Indexer = pendingRelease.RemoteBook.Release.Indexer,
DownloadClient = downloadClientName
};
queued.Add(queue);

@ -230,13 +230,13 @@ namespace NzbDrone.Core.History
DownloadId = downloadId
};
//Won't have a value since we publish this event before saving to DB.
//history.Data.Add("FileId", message.ImportedEpisode.Id.ToString());
history.Data.Add("FileId", message.ImportedBook.Id.ToString());
history.Data.Add("DroppedPath", message.BookInfo.Path);
history.Data.Add("ImportedPath", message.ImportedBook.Path);
history.Data.Add("DownloadClient", message.DownloadClientInfo?.Type);
history.Data.Add("DownloadClientName", message.DownloadClientInfo?.Name);
history.Data.Add("ReleaseGroup", message.BookInfo.ReleaseGroup);
history.Data.Add("Size", message.BookInfo.Size.ToString());
_historyRepository.Insert(history);
}
@ -259,6 +259,7 @@ namespace NzbDrone.Core.History
history.Data.Add("DownloadClient", message.DownloadClient);
history.Data.Add("DownloadClientName", message.TrackedDownload?.DownloadItem.DownloadClientInfo.Name);
history.Data.Add("Message", message.Message);
history.Data.Add("Size", message.TrackedDownload?.DownloadItem.TotalSize.ToString());
_historyRepository.Insert(history);
}
@ -311,6 +312,7 @@ namespace NzbDrone.Core.History
history.Data.Add("SourcePath", sourcePath);
history.Data.Add("Path", path);
history.Data.Add("ReleaseGroup", message.BookFile.ReleaseGroup);
history.Data.Add("Size", message.BookFile.Size.ToString());
_historyRepository.Insert(history);
}
@ -362,8 +364,9 @@ namespace NzbDrone.Core.History
};
history.Data.Add("DownloadClient", message.DownloadClientInfo.Name);
history.Data.Add("ReleaseGroup", message.TrackedDownload?.RemoteBook?.ParsedBookInfo?.ReleaseGroup);
history.Data.Add("Message", message.Message);
history.Data.Add("ReleaseGroup", message.TrackedDownload?.RemoteBook?.ParsedBookInfo?.ReleaseGroup);
history.Data.Add("Size", message.TrackedDownload?.DownloadItem.TotalSize.ToString());
historyToAdd.Add(history);
}

@ -274,7 +274,7 @@
"DelayProfiles": "ملفات تعريف التأخير",
"DelayProfile": "ملف التأخير",
"Dates": "تواريخ",
"DBMigration": "ترحيل DB",
"DatabaseMigration": "ترحيل DB",
"CutoffUnmet": "قطع غير ملباة",
"CutoffHelpText": "بمجرد الوصول إلى هذه الجودة ، لن يقوم Radarr بتنزيل الأفلام",
"CreateGroup": "إنشاء مجموعة",
@ -630,5 +630,6 @@
"ExtraFileExtensionsHelpText": "قائمة مفصولة بفواصل بالملفات الإضافية المراد استيرادها (سيتم استيراد .nfo كـ .nfo-Orig)",
"ExtraFileExtensionsHelpTextsExamples": "أمثلة: \".sub أو .nfo\" أو \"sub، nfo\"",
"AutoRedownloadFailed": "التحميل فشل",
"SourceTitle": "عنوان المصدر"
"SourceTitle": "عنوان المصدر",
"RemoveQueueItemConfirmation": "هل تريد بالتأكيد إزالة {0} عنصر {1} من قائمة الانتظار؟"
}

@ -64,7 +64,7 @@
"CreateGroup": "Създай група",
"CutoffHelpText": "След достигане на това качество Radarr вече няма да изтегля филми",
"CutoffUnmet": "Прекъсване Неудовлетворено",
"DBMigration": "DB миграция",
"DatabaseMigration": "DB миграция",
"Dates": "Дати",
"DelayProfile": "Профил за забавяне",
"DelayProfiles": "Профили за забавяне",

@ -42,7 +42,7 @@
"Exception": "Excepció",
"Folder": "Carpeta",
"Host": "Amfitrió",
"Importing": "s'està important",
"Importing": "S'està important",
"Missing": "Absents",
"MoreInfo": "Més informació",
"NoLimitForAnyRuntime": "Sense límit de temps d'execució",
@ -128,7 +128,7 @@
"BindAddress": "Adreça d'enllaç",
"CertificateValidation": "Validació del certificat",
"ClientPriority": "Prioritat del client",
"DBMigration": "Migració de BD",
"DatabaseMigration": "Migració de BD",
"EnableColorImpairedMode": "Activa el mode amb alteracions del color",
"MinimumAge": "Edat Mínima",
"EnableCompletedDownloadHandlingHelpText": "Importa automàticament les descàrregues completades des del client de descàrregues",
@ -170,7 +170,7 @@
"Edit": "Edita",
"Edition": "Edició",
"Enable": "Activa",
"EnableAutomaticAdd": "Activa l'Afegit automàtic",
"EnableAutomaticAdd": "Activa la captura automàtica",
"EnableAutomaticSearch": "Activa la cerca automàtica",
"EnableColorImpairedModeHelpText": "Estil alterat per a permetre als usuaris amb problemes de color distingir millor la informació codificada per colors",
"EnableHelpText": "Activa la creació de fitxers de metadades per a aquest tipus de metadades",
@ -687,5 +687,9 @@
"No": "No",
"System": "Sistema",
"Required": "Obligatori",
"Yes": "Si"
"Yes": "Si",
"Ui": "Interfície",
"Other": "Altres",
"AutoRedownloadFailedFromInteractiveSearch": "Tornar a baixar baixades fallades des de la cerca interactiva",
"AutoRedownloadFailed": "Tornar a baixar les baixades fallades"
}

@ -69,7 +69,7 @@
"CreateGroup": "Vytvořit skupinu",
"CutoffHelpText": "Jakmile je této kvality dosaženo, Radarr již nebude stahovat filmy",
"CutoffUnmet": "Vynechat nevyhovující",
"DBMigration": "Migrace databáze",
"DatabaseMigration": "Migrace databáze",
"Dates": "Termíny",
"DelayProfile": "Profil zpoždění",
"DelayProfiles": "Profily zpoždění",
@ -683,5 +683,10 @@
"ListsSettingsSummary": "Seznam k importu",
"ExtraFileExtensionsHelpText": "Seznam extra souborů k importu oddělených čárkami (.nfo bude importován jako .nfo-orig)",
"ExtraFileExtensionsHelpTextsExamples": "Příklady: „.sub, .nfo“ nebo „sub, nfo“",
"ImportLists": "Seznam k importu"
"ImportLists": "Seznam k importu",
"RemoveQueueItemConfirmation": "Opravdu chcete odebrat {0} položku {1} z fronty?",
"SourceTitle": "Název zdroje",
"AutoRedownloadFailed": "Opětovné stažení se nezdařilo",
"AutoRedownloadFailedFromInteractiveSearch": "Opětovné stažení z interaktivního vyhledávání selhalo",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Automaticky vyhledat a pokusit se o stažení jiného vydání, pokud bylo neúspěšné vydání zachyceno z interaktivního vyhledávání"
}

@ -65,7 +65,7 @@
"CreateGroup": "Opret gruppe",
"CutoffHelpText": "Når denne kvalitet er nået, downloader Radarr ikke længere film",
"CutoffUnmet": "Afskåret ude",
"DBMigration": "DB Migration",
"DatabaseMigration": "DB Migration",
"DelayProfile": "Udskyd Profiler",
"DelayProfiles": "Udskyd Profiler",
"DelayingDownloadUntilInterp": "Forsinker download indtil {0} kl. {1}",
@ -637,5 +637,6 @@
"ExtraFileExtensionsHelpText": "Kommasepareret liste over ekstra filer, der skal importeres (.nfo importeres som .nfo-orig)",
"ExtraFileExtensionsHelpTextsExamples": "Eksempler: '.sub, .nfo' eller 'sub, nfo'",
"AutoRedownloadFailed": "Download fejlede",
"SourceTitle": "Kildetitel"
"SourceTitle": "Kildetitel",
"RemoveQueueItemConfirmation": "Er du sikker på, at du vil fjerne {0} element {1} fra køen?"
}

@ -62,7 +62,7 @@
"CreateGroup": "Gruppe erstellen",
"CutoffHelpText": "Sobald diese Qualität erreicht wird, werden keine neuen Releases erfasst",
"CutoffUnmet": " Schwelle nicht erreicht",
"DBMigration": "DB Migration",
"DatabaseMigration": "DB Migration",
"Dates": "Termine",
"DelayProfile": "Verzögerungsprofil",
"DelayProfiles": "Verzögerungsprofile",
@ -507,7 +507,7 @@
"ThisCannotBeCancelled": "Nach dem Start kann dies nicht mehr abgebrochen werden ohne alle Indexer zu deaktivieren.",
"UnselectAll": "Alle abwählen",
"UpdateSelected": "Auswahl aktualisieren",
"Wanted": "Gesucht",
"Wanted": " Gesucht",
"CreateEmptyAuthorFolders": "Leere Filmordner erstellen",
"All": "Alle",
"Country": "Land",

@ -65,7 +65,7 @@
"CreateEmptyAuthorFoldersHelpText": "Δημιουργήστε φακέλους ταινιών που λείπουν κατά τη σάρωση δίσκου",
"CreateGroup": "Δημιουργησε ΟΜΑΔΑ",
"CutoffHelpText": "Μόλις επιτευχθεί αυτή η ποιότητα, το Radarr δεν θα κατεβάζει πλέον ταινίες",
"DBMigration": "Μετεγκατάσταση DB",
"DatabaseMigration": "Μετεγκατάσταση DB",
"Dates": "Ημερομηνίες",
"DelayProfile": "Προφίλ χρονοκαθυστέρησης",
"DelayProfiles": "Προφίλ χρονοκαθυστέρησης",

@ -35,7 +35,7 @@
"AnyEditionOkHelpText": "Readarr will automatically switch to the edition best matching downloaded files",
"ApiKeyHelpTextWarning": "Requires restart to take effect",
"ApiKeyValidationHealthCheckMessage": "Please update your API key to be at least {0} characters long. You can do this via settings or the config file",
"AppDataDirectory": "AppData directory",
"AppDataDirectory": "AppData Directory",
"AppDataLocationHealthCheckMessage": "Updating will not be possible to prevent deleting AppData on Update",
"AppUpdated": "{appName} Updated",
"AppUpdatedVersion": "{appName} has been updated to version `{version}`, in order to get the latest changes you'll need to reload {appName}",
@ -80,6 +80,12 @@
"BindAddressHelpText": "Valid IP address, localhost or '*' for all interfaces",
"BindAddressHelpTextWarning": "Requires restart to take effect",
"Blocklist": "Blocklist",
"BlocklistAndSearch": "Blocklist and Search",
"BlocklistAndSearchHint": "Start a search for a replacement after blocklisting",
"BlocklistAndSearchMultipleHint": "Start searches for replacements after blocklisting",
"BlocklistMultipleOnlyHint": "Blocklist without searching for replacements",
"BlocklistOnly": "Blocklist Only",
"BlocklistOnlyHint": "Blocklist without searching for a replacement",
"BlocklistRelease": "Blocklist Release",
"BlocklistReleaseHelpText": "Prevents Readarr from automatically grabbing these files again",
"BlocklistReleases": "Blocklist Releases",
@ -126,6 +132,9 @@
"CatalogNumber": "Catalog Number",
"CertificateValidation": "Certificate Validation",
"CertificateValidationHelpText": "Change how strict HTTPS certification validation is. Do not change unless you understand the risks.",
"ChangeCategory": "Change Category",
"ChangeCategoryHint": "Changes download to the 'Post-Import Category' from Download Client",
"ChangeCategoryMultipleHint": "Changes downloads to the 'Post-Import Category' from Download Client",
"ChangeFileDate": "Change File Date",
"ChangeHasNotBeenSavedYet": "Change has not been saved yet",
"ChmodFolder": "chmod Folder",
@ -151,7 +160,7 @@
"Columns": "Columns",
"CompletedDownloadHandling": "Completed Download Handling",
"Component": "Component",
"Conditions": "'Conditions'",
"Conditions": "Conditions",
"Connect": "Connect",
"ConnectSettings": "Connect Settings",
"ConnectSettingsSummary": "Notifications, connections to media servers/players and custom scripts",
@ -181,10 +190,11 @@
"CustomFormatScore": "Custom Format Score",
"CustomFormatSettings": "Custom Format Settings",
"CustomFormats": "Custom Formats",
"CustomFormatsSpecificationRegularExpression": "Regular Expression",
"CustomFormatsSpecificationRegularExpressionHelpText": "Custom Format RegEx is Case Insensitive",
"CutoffFormatScoreHelpText": "Once this custom format score is reached Readarr will no longer grab book releases",
"CutoffHelpText": "Once this quality is reached Readarr will no longer download books",
"CutoffUnmet": "Cutoff Unmet",
"DBMigration": "DB Migration",
"DashOrSpaceDashDependingOnName": "Dash or Space Dash depending on name",
"DataAllBooks": "Monitor all books",
"DataExistingBooks": "Monitor books that have files or have not released yet",
@ -200,6 +210,7 @@
"DataNewNone": "Don't monitor any new books",
"DataNone": "No books will be monitored",
"Database": "Database",
"DatabaseMigration": "Database Migration",
"Dates": "Dates",
"DefaultMetadataProfileIdHelpText": "Default Metadata Profile for authors detected in this folder",
"DefaultMonitorOptionHelpText": "Which books should be monitored on initial add for authors detected in this folder",
@ -264,6 +275,8 @@
"DiscCount": "Disc Count",
"DiscNumber": "Disc Number",
"DiskSpace": "Disk Space",
"DoNotBlocklist": "Do not Blocklist",
"DoNotBlocklistHint": "Remove without blocklisting",
"Docker": "Docker",
"DownloadClient": "Download Client",
"DownloadClientCheckDownloadingToRoot": "Download client {0} places downloads in the root folder {1}. You should not download to a root folder.",
@ -388,6 +401,10 @@
"IconTooltip": "Scheduled",
"IfYouDontAddAnImportListExclusionAndTheAuthorHasAMetadataProfileOtherThanNoneThenThisBookMayBeReaddedDuringTheNextAuthorRefresh": "If you don't add an import list exclusion and the author has a metadata profile other than 'None' then this book may be re-added during the next author refresh.",
"IgnoreDeletedBooks": "Ignore Deleted Books",
"IgnoreDownload": "Ignore Download",
"IgnoreDownloadHint": "Stops {appName} from processing this download further",
"IgnoreDownloads": "Ignore Downloads",
"IgnoreDownloadsHint": "Stops {appName} from processing these downloads further",
"IgnoredAddresses": "Ignored Addresses",
"IgnoredHelpText": "The release will be rejected if it contains one or more of terms (case insensitive)",
"IgnoredMetaHelpText": "Books will be ignored if they contains one or more of terms (case insensitive)",
@ -736,9 +753,16 @@
"RemoveFailedDownloadsHelpText": "Remove failed downloads from download client history",
"RemoveFilter": "Remove filter",
"RemoveFromBlocklist": "Remove from blocklist",
"RemoveFromDownloadClient": "Remove From Download Client",
"RemoveFromDownloadClient": "Remove from Download Client",
"RemoveFromDownloadClientHint": "Removes download and file(s) from download client",
"RemoveFromQueue": "Remove from queue",
"RemoveHelpTextWarning": "Removing will remove the download and the file(s) from the download client.",
"RemoveMultipleFromDownloadClientHint": "Removes downloads and files from download client",
"RemoveQueueItem": "Remove - {sourceTitle}",
"RemoveQueueItemConfirmation": "Are you sure you want to remove '{sourceTitle}' from the queue?",
"RemoveQueueItemRemovalMethod": "Removal Method",
"RemoveQueueItemRemovalMethodHelpTextWarning": "'Remove from Download Client' will remove the download and the file(s) from the download client.",
"RemoveQueueItemsRemovalMethodHelpTextWarning": "'Remove from Download Client' will remove the downloads and the files from the download client.",
"RemoveSelected": "Remove Selected",
"RemoveSelectedItem": "Remove Selected Item",
"RemoveSelectedItemBlocklistMessageText": "Are you sure you want to remove the selected items from the blocklist?",
@ -883,7 +907,7 @@
"StandardBookFormat": "Standard Book Format",
"StartTypingOrSelectAPathBelow": "Start typing or select a path below",
"Started": "Started",
"StartupDirectory": "Startup directory",
"StartupDirectory": "Startup Directory",
"Status": "Status",
"StatusEndedContinuing": "Continuing",
"StatusEndedDeceased": "Deceased",

@ -64,8 +64,8 @@
"CreateEmptyAuthorFoldersHelpText": "Crear carpetas de películas que faltan durante la exploración del disco",
"CreateGroup": "Crear grupo",
"CutoffHelpText": "Una vez que se alcanze esta calidad, Radarr no descargará películas",
"CutoffUnmet": "Límite no alcanzado",
"DBMigration": "Migración de DB",
"CutoffUnmet": "Umbrales no alcanzados",
"DatabaseMigration": "Migración de la base de datos",
"Dates": "Fechas",
"DelayProfile": "Perfil de retardo",
"DelayProfiles": "Perfiles de retardo",
@ -79,7 +79,7 @@
"DeleteDownloadClientMessageText": "Seguro que quieres eliminar el gestor de descargas '{name}'?",
"DeleteEmptyFolders": "Borrar carpetas vacías",
"DeleteEmptyFoldersHelpText": "Borrar carpetas vacías durante la exploración del disco y cuando se eliminen archivos",
"DeleteImportListExclusion": "Eliminar exclusión de listas de importación.",
"DeleteImportListExclusion": "Eliminar exclusión de listas de importación",
"DeleteImportListExclusionMessageText": "¿Está seguro de que desea eliminar esta exclusión de la lista de importación?",
"DeleteImportListMessageText": "Seguro que quieres eliminar la lista '{name}'?",
"DeleteIndexer": "Borrar Indexer",
@ -100,9 +100,9 @@
"DetailedProgressBarHelpText": "Mostrar tecto en la barra de progreso",
"DiskSpace": "Espacio en Disco",
"Docker": "Docker",
"DownloadClient": "Gestor de Descargas",
"DownloadClientSettings": "Ajustes de Gestor de Descargas",
"DownloadClients": "Gestores de Descargas",
"DownloadClient": "Cliente de descarga",
"DownloadClientSettings": "Opciones del cliente de descarga",
"DownloadClients": "Clientes de descarga",
"DownloadFailedCheckDownloadClientForMoreDetails": "Error de descarga: consulte el gestor de descargas para obtener más detalles",
"DownloadFailedInterp": "Descarga fallida: {0}",
"DownloadPropersAndRepacksHelpTexts1": "Decidir si automaticamente actualizar a Propers/Repacks",
@ -110,9 +110,9 @@
"Edit": "Editar",
"Edition": "Edición",
"Enable": "Habilitar",
"EnableAutomaticAdd": "Habilitar Añadido Automático",
"EnableAutomaticAdd": "Habilitar añadido automático",
"EnableAutomaticSearch": "Habilitar Búsqueda Automática",
"EnableColorImpairedMode": "Activar Modo De Color Degradado",
"EnableColorImpairedMode": "Habilitar Modo de dificultad con los colores",
"EnableColorImpairedModeHelpText": "Estilo modificado para permitir que usuarios con problemas de color distingan mejor la información codificada por colores",
"EnableCompletedDownloadHandlingHelpText": "Importar automáticamente las descargas completas del gestor de descargas",
"EnableHelpText": "Habilitar la creación de un fichero de metadatos para este tipo de metadato",
@ -120,55 +120,55 @@
"EnableRSS": "Habilitar RSS",
"EnableSSL": "Habilitar SSL",
"EnableSslHelpText": " Requiere reiniciar la aplicación como administrador para que surta efecto",
"Ended": "Terminó",
"ErrorLoadingContents": "Error al cargar los contenidos",
"Ended": "Finalizado",
"ErrorLoadingContents": "Error cargando contenidos",
"ErrorLoadingPreviews": "Error al cargar las previsualizaciones",
"Exception": "Excepción",
"FailedDownloadHandling": "Manipulación de Descargas Fallidas",
"FileDateHelpText": "Cambiar la fecha del archivo al importar/rescan",
"FileManagement": "Administración de Archivos",
"FileNames": "Nombres de Archivos",
"Filename": "Nombre del archivo",
"FileManagement": "Gestión de archivos",
"FileNames": "Nombres de archivos",
"Filename": "Nombre de archivo",
"Files": "Archivos",
"FirstDayOfWeek": "Primer Día de la Semana",
"FirstDayOfWeek": "Primer día de la semana",
"Fixed": "Arreglado",
"Folder": "Carpeta",
"Folders": "Carpetas",
"ForMoreInformationOnTheIndividualDownloadClientsClickOnTheInfoButtons": "Para más información individual de los gestores de descarga, haz clic en los botones de información.",
"ForMoreInformationOnTheIndividualIndexersClickOnTheInfoButtons": "Para más información individual sobre los indexers, haz clic en los botones de información.",
"ForMoreInformationOnTheIndividualListsClickOnTheInfoButtons": "Para más información individual sobre las listas de importación, haz clic en los botones de información.",
"GeneralSettings": "Ajustes Generales",
"GeneralSettings": "Opciones generales",
"Global": "Global",
"GoToInterp": "Ir a {0}",
"Grab": "Capturar",
"GrabID": "Capturar ID",
"GrabRelease": "Capturar Estreno",
"GrabRelease": "Capturar lanzamiento",
"GrabReleaseMessageText": "Radarr no pudo determinar para qué película es este lanzamiento. Radarr no podrá importar este lanzamiento automáticamente. Quieres descargar {0}?",
"GrabSelected": "Capturar Seleccionados",
"GrabSelected": "Capturar seleccionado",
"HasPendingChangesNoChanges": "Sin Cambios",
"HasPendingChangesSaveChanges": "Guardar Cambios",
"History": "Historial",
"Host": "Host",
"Hostname": "Nombre del Host",
"ICalFeed": "iCal Feed",
"Hostname": "Nombre de host",
"ICalFeed": "Feed de iCal",
"ICalHttpUrlHelpText": "Copia esta URL a tu gestor(es) o haz click en subscribir si tu navegador soporta webcal",
"ICalLink": "iCal Link",
"IconForCutoffUnmet": "Icono de Corte no alcanzado",
"ICalLink": "Enlace de iCal",
"IconForCutoffUnmet": "Icono para Umbrales no alcanzados",
"IconTooltip": "Programado",
"IgnoredAddresses": "Direcciones Ignoradas",
"IgnoredAddresses": "Ignorar direcciones",
"IgnoredHelpText": "Este lanzamiento será rechazado si contiene uno ó más de estos términos (mayúsculas ó minúsculas)",
"IgnoredPlaceHolder": "Añadir nueva restricción",
"IllRestartLater": "Lo reiniciaré más tarde",
"ImportExtraFiles": "Importar Archivos Extra",
"ImportExtraFiles": "Importar archivos adicionales",
"ImportExtraFilesHelpText": "Importar archivos extra (subtítulos, info, etc) después de importar una película",
"ImportFailedInterp": "Importación fallida: {0}",
"ImportedTo": "Importado a",
"ImportedTo": "Importar a",
"Importing": "Importando",
"IncludeHealthWarningsHelpText": "Incluir Alertas de Salud",
"IncludeUnknownAuthorItemsHelpText": "Mostrar items sin ninguna película en la cola, esto incluye películas renombradas o cualquier otra cosa en la categoría de Radarr",
"IncludeUnmonitored": "Icluir No Monitoreados",
"IncludeUnmonitored": "Incluir sin monitorizar",
"Indexer": "Indexador",
"IndexerPriority": "Prioridad del Indexer",
"IndexerPriority": "Prioridad del indexador",
"IndexerSettings": "Ajustes de Indexer",
"Indexers": "Indexadores",
"Interval": "Intervalo",
@ -201,7 +201,7 @@
"MinimumFreeSpace": "Espacio Libre Mínimo",
"MinimumFreeSpaceWhenImportingHelpText": "Evitar importación si dejase menos de esta cantidad en disco disponible",
"MinimumLimits": "Límites Mínimos",
"Missing": "Falta",
"Missing": "Faltantes",
"Mode": "Modo",
"Monitored": "Monitorizado",
"MoreInfo": "Más Información",
@ -454,8 +454,8 @@
"UnableToLoadBlocklist": "No se han podido cargar las bloqueadas",
"Level": "Nivel",
"ReleaseBranchCheckOfficialBranchMessage": "Las versión {0} no es una versión válida de Radarr, no recibirás actualizaciones",
"Blocklist": "Bloqueadas",
"BlocklistRelease": "Lista de lanzamientos bloqueados",
"Blocklist": "Lista de bloqueos",
"BlocklistRelease": "Lista de bloqueos de lanzamiento",
"CreateEmptyAuthorFolders": "Crear carpetas de películas vacías",
"SelectAll": "Seleccionar Todas",
"SelectedCountBooksSelectedInterp": "{0} Película(s) Seleccionada(s)",
@ -497,7 +497,7 @@
"Filters": "Filtros",
"FileWasDeletedByViaUI": "El archivo se eliminó a través de la interfaz de usuario",
"AllowFingerprinting": "Permitir impresión digital",
"DownloadClientsSettingsSummary": "Gestores de descargas, manipulación de descargas y mapeados remotos",
"DownloadClientsSettingsSummary": "Clientes de descarga, manejo de descarga y mapeo de rutas remotas",
"OnHealthIssue": "En Problema de Salud",
"DeleteBookFileMessageText": "¿Seguro que quieres eliminar {0}?",
"HealthNoIssues": "No hay problemas con tu configuración",
@ -551,7 +551,7 @@
"SearchFiltered": "Buscar Filtradas",
"DownloadClientStatusCheckAllClientMessage": "Los gestores de descargas no están disponibles debido a errores",
"FailedToLoadQueue": "No se pudo cargar la cola",
"GeneralSettingsSummary": "Puerto, SSL, nombre de usuario/contraseña , proxy, analíticas y actualizaciones",
"GeneralSettingsSummary": "Puerto, SSL, usuario/contraseña, proxy, analíticas y actualizaciones",
"ProxyCheckResolveIpMessage": "No se pudo resolver la dirección IP del Host Proxy configurado {0}",
"UISettingsSummary": "Calendario, fecha y opciones de color deteriorado",
"Connect": "Conectar",
@ -582,10 +582,10 @@
"InstanceNameHelpText": "Nombre de instancia en pestaña y para nombre de aplicación en Syslog",
"Database": "Base de datos",
"ManualImportSelectEdition": "Importar Manualmente - Seleccionar Película",
"ImportListExclusions": "Borrar exclusión de lista de importación",
"ImportListExclusions": "Importar lista de exclusiones",
"ChooseImportMethod": "Elegir Modo de Importación",
"ClickToChangeReleaseGroup": "Clic para cambiar el grupo de lanzamiento",
"HardlinkCopyFiles": "Hardlink/Copia de Archivos",
"HardlinkCopyFiles": "Enlace permanente/Copiar archivos",
"MoveFiles": "Mover Archivos",
"OnApplicationUpdate": "Al Actualizar La Aplicación",
"OnApplicationUpdateHelpText": "Al Actualizar La Aplicación",
@ -610,23 +610,23 @@
"CustomFormatSettings": "Ajustes de Formatos Propios",
"CutoffFormatScoreHelpText": "Una vez alcanzada esta puntuación del formato propio Radarr dejará de descargar películas",
"DeleteCustomFormatMessageText": "Seguro que quieres eliminar el indexer '{name}'?",
"ExportCustomFormat": "Exportar Formato Personalizado",
"ExportCustomFormat": "Exportar formato personalizado",
"ResetTitles": "Restablecer títulos",
"UpgradesAllowed": "Mejoras permitidas",
"EnableRssHelpText": "Se utilizará cuando Radarr busque periódicamente publicaciones a través de RSS Sync",
"IndexerTagsHelpText": "Solo utilizar este indexador para películas que coincidan con al menos una etiqueta. Déjelo en blanco para utilizarlo con todas las películas.",
"ImportListMissingRoot": "Falta la capeta raíz para las listas: {0}",
"ImportListMultipleMissingRoots": "Múltiples carpetas raíz faltan para las listas de importación: {0}",
"IndexerDownloadClientHelpText": "Especifica qué cliente de descargas se utiliza para las descargas de este indexador",
"HiddenClickToShow": "Oculto, clic para mostrar",
"HideAdvanced": "Ocultar Avanzado",
"IndexerDownloadClientHelpText": "Especifica qué cliente de descarga es usado para capturas desde este indexador",
"HiddenClickToShow": "Oculto, click para mostrar",
"HideAdvanced": "Ocultar avanzado",
"ShowAdvanced": "Mostrar Avanzado",
"ShownClickToHide": "Mostrado, clic para ocultar",
"ReplaceWithDash": "Reemplazar con Dash",
"ReplaceWithSpaceDash": "Reemplazar con Space Dash",
"ReplaceWithSpaceDashSpace": "Reemplazar con Space Dash Space",
"DeleteRemotePathMapping": "Borrar mapeo de ruta remota",
"BlocklistReleases": "Lista de lanzamientos bloqueados",
"BlocklistReleases": "Lista de bloqueos de lanzamientos",
"DeleteConditionMessageText": "Seguro que quieres eliminar la etiqueta '{0}'?",
"Negated": "Negado",
"RemoveSelectedItem": "Eliminar el elemento seleccionado",
@ -657,7 +657,7 @@
"DeleteSelectedImportListsMessageText": "Seguro que quieres eliminar {count} lista(s) de importación seleccionada(s)?",
"DeleteSelectedIndexers": "Borrar indexer(s)",
"DownloadClientTagHelpText": "Solo utilizar este indexador para películas que coincidan con al menos una etiqueta. Déjelo en blanco para utilizarlo con todas las películas.",
"ExistingTag": "Etiqueta existente",
"ExistingTag": "Etiquetas existentes",
"No": "No",
"NoChange": "Sin Cambio",
"RemovingTag": "Eliminando etiqueta",
@ -705,7 +705,7 @@
"Large": "Grande",
"Library": "Biblioteca",
"SomeResultsAreHiddenByTheAppliedFilter": "Algunos resultados están ocultos por el filtro aplicado",
"FreeSpace": "Espacio Libre",
"FreeSpace": "Espacio libre",
"LastDuration": "Duración",
"LastExecution": "Última ejecución",
"LastWriteTime": "Última Fecha de Escritura",
@ -747,7 +747,7 @@
"AutomaticallySwitchEdition": "Cambiar edición automáticamente",
"BookNaming": "Nombrado de libros",
"Books": "Libro",
"NoHistoryBlocklist": "Sin lista de bloqueo de historial",
"NoHistoryBlocklist": "Sin historial de la lista de bloqueos",
"WouldYouLikeToRestoreBackup": "Te gustaria restaurar la copia de seguridad '{name}'?",
"IsShowingMonitoredUnmonitorSelected": "Monitorizar Seleccionados",
"CloneCustomFormat": "Clonar formato personalizado",
@ -763,9 +763,9 @@
"CompletedDownloadHandling": "Manipulación de descargas completas",
"EnableProfile": "Habilitar perfil",
"ListsSettingsSummary": "lista de importación",
"ExtraFileExtensionsHelpText": "Separar con cons la lista de los archivos extra a importar (.nfo será impotado como .nfo-orig)",
"ExtraFileExtensionsHelpTextsExamples": "Ejemplos : '.sub, .nfo' o 'sub,nfo'",
"ImportLists": "lista de importación",
"ExtraFileExtensionsHelpText": "Lista de archivos adicionales separados por coma para importar (.nfo será importado como .nfo-orig)",
"ExtraFileExtensionsHelpTextsExamples": "Ejemplos: '.sub, .nfo' o 'sub,nfo'",
"ImportLists": "Importar listas",
"DownloadClientRemovesCompletedDownloadsHealthCheckMessage": "El cliente de descarga {downloadClientName} esta configurado para eliminar las descargas completadas. Esto puede causar que las descargas sean eliminadas del cliente antes que {1} las pueda importar.",
"Continuing": "Continua",
"DownloadClientQbittorrentSettingsContentLayout": "Diseño del contenido",
@ -773,5 +773,28 @@
"NoCutoffUnmetItems": "Sin objetos sin condiciones de corte incumplidas",
"StatusEndedContinuing": "Continua",
"ChownGroup": "Cambiar grupo propietario",
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Si usar el diseño de contenido configurado de qBittorrent, el diseño original del torrent o siempre crear una subcarpeta (qBittorrent 4.3.2+)"
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Si usar el diseño de contenido configurado de qBittorrent, el diseño original del torrent o siempre crear una subcarpeta (qBittorrent 4.3.2+)",
"CustomFormatsSpecificationRegularExpression": "Expresión regular",
"ErrorLoadingContent": "Hubo un error cargando este contenido",
"BlocklistAndSearch": "Lista de bloqueos y búsqueda",
"BlocklistAndSearchMultipleHint": "Inicia búsquedas de sustitutos tras añadir a la lista de bloqueos",
"ChangeCategory": "Cambiar categoría",
"BlocklistOnlyHint": "Añadir a la lista de bloqueos sin buscar un sustituto",
"ChangeCategoryMultipleHint": "Cambia las descargas a la 'categoría post-importación' desde el cliente de descarga",
"ChangeCategoryHint": "Cambia la descarga a la 'categoría post-importación' desde el cliente de descarga",
"BlocklistMultipleOnlyHint": "Añadir a la lista de bloqueos sin buscar sustitutos",
"BlocklistOnly": "Solo añadir a la lista de bloqueos",
"DoNotBlocklist": "No añadir a la lista de bloqueos",
"DoNotBlocklistHint": "Eliminar sin añadir a la lista de bloqueos",
"BlocklistAndSearchHint": "Inicia la búsqueda de un sustituto tras añadir a la lista de bloqueos",
"DashOrSpaceDashDependingOnName": "Dash o Space Dash según el nombre",
"CustomFormatsSpecificationRegularExpressionHelpText": "El formato personalizado RegEx no distingue mayúsculas de minúsculas",
"Country": "País",
"AutoRedownloadFailed": "Descarga fallida",
"AutoRedownloadFailedFromInteractiveSearch": "Fallo al volver a descargar desde la búsqueda interactiva",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Búsqueda automática e intento de descarga de una versión diferente cuando se obtiene una versión fallida de la búsqueda interactiva",
"IgnoreDownload": "Ignorar descarga",
"IgnoreDownloads": "Ignorar descargas",
"IgnoreDownloadHint": "Detiene {appName} de procesar esta descarga más adelante",
"IgnoreDownloadsHint": "Detiene {appName} de procesar estas descargas más adelante"
}

@ -1,10 +1,10 @@
{
"AnalyticsEnabledHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"AnalyticsEnabledHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"Delete": "Poista",
"None": "Ei mitään",
"RootFolder": "Juurikansio",
"ShowPath": "Näytä tiedostosijainti",
"SslCertPasswordHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"SslCertPasswordHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"20MinutesTwenty": "20 minuuttia: {0}",
"45MinutesFourtyFive": "45 minuuttia: {0}",
"60MinutesSixty": "60 minuuttia: {0}",
@ -31,7 +31,7 @@
"Backups": "Varmuuskopiot",
"BindAddress": "Sidososoite",
"BindAddressHelpText": "Toimiva IP-osoite, localhost tai * (tähti) kaikille verkkoliitännöille.",
"BindAddressHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"BindAddressHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"BookIsDownloading": "Kirjaa ladataan",
"BookIsDownloadingInterp": "Kirjaa ladataan - {0} % {1}",
"Branch": "Haara",
@ -61,11 +61,11 @@
"Connections": "Yhteydet",
"CopyUsingHardlinksHelpText": "Hardlink-kytkösten avulla {appName} voi tuoda jaettavat torrentit ilman niiden täyttä kopiointia ja levytilan kaksinkertaista varausta. Tämä toimii vain lähde- ja kohdesijaintien ollessa samalla tallennusmedialla.",
"CopyUsingHardlinksHelpTextWarning": "Tiedostojen käsittelystä johtuvat lukitukset saattavat joskus estää jaettavien tiedostojen uudelleennimeämisen. Voit keskeyttää jakamisen väliaikaisesti ja käyttää {appName}in nimeämistoimintoa.",
"CreateEmptyAuthorFoldersHelpText": "Luo puuttuvat kirjailijakansiot levyn tarkistuksen yhteydessä",
"CreateEmptyAuthorFoldersHelpText": "Luo puuttuvat kirjailijakansiot kirjastotarkistusten yhteydessä",
"CreateGroup": "Luo ryhmä",
"CutoffHelpText": "Kun tämä laatu on saavutettu, Readarr ei enää lataa elokuvia",
"CutoffUnmet": "Katkaisutasoa ei savutettu",
"DBMigration": "Tietokannan siirto",
"DatabaseMigration": "Tietokannan siirto",
"Dates": "Päiväykset",
"DelayProfile": "Viiveprofiili",
"DelayProfiles": "Viiveprofiilit",
@ -115,7 +115,7 @@
"EnableColorImpairedModeHelpText": "Vaihtoehtoinen tyyli, joka auttaa erottamaan värikoodatut tiedot paremmin.",
"EnableCompletedDownloadHandlingHelpText": "Tuo valmistuneet lataukset lataustyökalusta automaattisesti.",
"EnableHelpText": "Luo metatietotiedostot tälle metatietotyypille.",
"EnableInteractiveSearch": "Käytä manuaalihakua",
"EnableInteractiveSearch": "Käytä manuaalihakuun",
"EnableRSS": "RSS-syöte",
"EnableSSL": "SSL-salaus",
"EnableSslHelpText": " Käyttöönotto vaatii uudelleenkäynnistyksen järjestelmänvavojan oikeuksilla.",
@ -218,7 +218,7 @@
"NoLogFiles": "Lokitiedostoja ei ole",
"NoMinimumForAnyRuntime": "Ei toistoajan vähimmäiskestoa",
"NoUpdatesAreAvailable": "Päivityksiä ei ole saatavilla",
"NotificationTriggers": "Laukaisijat",
"NotificationTriggers": "Laukaisimet",
"OnGrabHelpText": "Kun julkaisu kaapataan",
"OnHealthIssueHelpText": "Vakausongelmat",
"OnRenameHelpText": "Uudelleennimeäminen",
@ -234,7 +234,7 @@
"Path": "Tiedostosijainti",
"Permissions": "Käyttöoikeudet",
"Port": "Portti",
"PortHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"PortHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"PortNumber": "Portin numero",
"PosterSize": "Julisteiden koko",
"PreviewRename": "Nimeämisen esikatselu",
@ -244,7 +244,7 @@
"Protocol": "Protokolla",
"ProtocolHelpText": "Valitse käytettävä(t) protokolla(t) ja mitä käytetään ensisijaisesti valittaessa muutoin tasaveroisista julkaisuista.",
"Proxy": "Välityspalvelin",
"ProxyBypassFilterHelpText": "Käytä aliverkkotunnusten erottimena pilkkua (,) ja jokerimerkkinä tähteä ja pistettä (*.). Esimerkkejä: www.esimerkki.fi,*.esimerkki.fi.",
"ProxyBypassFilterHelpText": "Erota aliverkkotunnukset pilkuilla ja käytä jokerimerkkinä tähteä ja pistettä (*.). Esimerkki: www.esimerkki.fi,*.esimerkki.fi).",
"ProxyType": "Välityspalvelimen tyyppi",
"ProxyUsernameHelpText": "Käyttäjätunnus ja salasana tulee täyttää vain tarvittaessa. Mikäli näitä ei ole, tulee kentät jättää tyhjiksi.",
"PublishedDate": "Julkaisupäivä",
@ -274,7 +274,7 @@
"ReleaseRejected": "Vapautus hylätty",
"ReleaseWillBeProcessedInterp": "Julkaisu käsitellään {0}",
"Reload": "Lataa uudelleen",
"RemotePathMappings": "Etäsijaintien kartoitukset",
"RemotePathMappings": "Etäsijaintien kohdistukset",
"Remove": "Poista",
"RemoveCompletedDownloadsHelpText": "Poista tuodut lataukset lataustyökalun historiasta",
"RemoveFailedDownloadsHelpText": "Poista epäonnistuneet lataukset lataustyökalun historiasta",
@ -288,7 +288,7 @@
"RemovedFromTaskQueue": "Poistettu tehtäväjonosta",
"RenameBooksHelpText": "Jos uudelleennimeäminen ei ole käytössä, käytetään nykyistä tiedostonimeä.",
"Reorder": "Järjestä uudelleen",
"ReplaceIllegalCharacters": "Kiellettyjen merkkien korvaus",
"ReplaceIllegalCharacters": "Korvaa kielletyt merkit",
"RequiredHelpText": "Tämän \"{0}\" -ehdon on täsmättävä mukautetun muodon käyttämiseksi. Muutoin riittää yksi \"{0}\" -vastaavuus.",
"RequiredPlaceHolder": "Lisää rajoitus",
"RescanAfterRefreshHelpTextWarning": "{appName} ei tunnista tiedostomuutoksia automaattisesti, jos asetuksena ei ole \"Aina\".",
@ -344,8 +344,8 @@
"SourcePath": "Lähdesijainti",
"SslCertPasswordHelpText": "Pfx-tiedoston salasana",
"SslCertPathHelpText": "Polku pfx-tiedostoon",
"SslPortHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"StandardBookFormat": "Elokuvan vakiomuoto",
"SslPortHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"StandardBookFormat": "Tavallisten kirjojen kaava",
"StartTypingOrSelectAPathBelow": "Aloita kirjoitus tai valitse sijainti alta",
"StartupDirectory": "Käynnistyskansio",
"Status": "Tila",
@ -381,9 +381,9 @@
"UnableToAddANewIndexerPleaseTryAgain": "Uuden tietolähteen lisäys epäonnistui. Yritä uudelleen.",
"UnableToAddANewListPleaseTryAgain": "Tuontilistan lisäys epäonnistui. Yritä uudelleen.",
"UnableToAddANewMetadataProfilePleaseTryAgain": "Uutta laatuprofiilia ei voi lisätä, yritä uudelleen.",
"UnableToAddANewNotificationPleaseTryAgain": "Kytkennän lisäys epäonnistui. Yritä uudelleen.",
"UnableToAddANewNotificationPleaseTryAgain": "Kytköksen lisäys epäonnistui. Yritä uudelleen.",
"UnableToAddANewQualityProfilePleaseTryAgain": "Laatuprofiilin lisäys epäonnistui. Yritä uudelleen.",
"UnableToAddANewRemotePathMappingPleaseTryAgain": "Etäsijainnin kartoituksen lisäys epäonnistui. Yritä uudelleen.",
"UnableToAddANewRemotePathMappingPleaseTryAgain": "Etäsijainnin kohdistuksen lisäys epäonnistui. Yritä uudelleen.",
"UnableToAddANewRootFolderPleaseTryAgain": "Uutta mukautettua muotoa ei voi lisätä, yritä uudelleen.",
"UnableToLoadBackups": "Varmuuskopioiden lataus epäonnistui",
"UnableToLoadDelayProfiles": "Viiveprofiilien lataus epäonnistui.",
@ -398,12 +398,12 @@
"UnableToLoadMediaManagementSettings": "Medianhallinnan asetuksien lataus epäonnistui.",
"UnableToLoadMetadata": "Metatietojen lataus epäonnistui.",
"UnableToLoadNamingSettings": "Nimeämisen asetuksien lataus epäonnistui.",
"UnableToLoadNotifications": "Kytkentöjen lataus epäonnistui.",
"UnableToLoadNotifications": "Kytkösten lataus epäonnistui.",
"UnableToLoadQualities": "Laatujen lataus epäonnistui.",
"UnableToLoadQualityDefinitions": "Laatumäärityksien lataus epäonnistui.",
"UnableToLoadQualityProfiles": "Laatuprofiilien lataus epäonnistui.",
"UnableToLoadReleaseProfiles": "Viiveprofiileja ei voi ladata",
"UnableToLoadRemotePathMappings": "Etäsijaintien kartoitusten lataus epäonnistui",
"UnableToLoadRemotePathMappings": "Etäsijaintien kohdistusten lataus epäonnistui",
"UnableToLoadRootFolders": "Juurikansioiden lataus epäonnistui.",
"UnableToLoadTags": "Tunnisteiden lataus ei onnistu",
"UnableToLoadTheCalendar": "Kalenterin lataus epäonnistui.",
@ -418,7 +418,7 @@
"Updates": "Päivitykset",
"UpgradeAllowedHelpText": "Jos käytöstä poistettuja laatuja ei päivitetä.",
"Uptime": "Käyttöaika",
"UrlBaseHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"UrlBaseHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"UseHardlinksInsteadOfCopy": "Käytä hardlink-kytköksiä",
"UseProxy": "Käytä välityspalvelinta",
"Usenet": "Usenet",
@ -431,11 +431,11 @@
"WeekColumnHeader": "Viikkosarakkeen otsikko",
"Year": "Vuosi",
"YesCancel": "Kyllä, peru",
"ApiKeyHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"ApiKeyHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"DeleteRootFolderMessageText": "Haluatko varmasti poistaa juurikansion \"{name}\"?",
"LoadingBooksFailed": "Elokuvatiedostojen lataaminen epäonnistui",
"ProxyPasswordHelpText": "Käyttäjätunnus ja salasana tulee täyttää vain tarvittaessa. Mikäli näitä ei ole, tulee kentät jättää tyhjiksi.",
"SslCertPathHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"SslCertPathHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"UnableToLoadMetadataProfiles": "Metatietoprofiileja ei voida ladata.",
"DownloadClientCheckDownloadingToRoot": "Lataustyökalu \"{0}\" tallentaa lataukset juurikansioon \"{1}\", mutta ne tulisi tallentaa muualle.",
"ReplaceIllegalCharactersHelpText": "Korvaa laittomat merkit vaihtoehtoisella merkinnällä. Jos ei valittu, ne poistetaan.",
@ -496,7 +496,7 @@
"BookIndex": "Kirjahakemisto",
"Book": "Kirja",
"AddedAuthorSettings": "Uuden kirjailijan oletusasetukset",
"AddImportListExclusionHelpText": "Estä kirjan lisäys Readarriin tuontilistoilta tai päivitettäessä kirjailijaa",
"AddImportListExclusionHelpText": "Estä {appName}ia lisäämästä kirjaa listoilta tai kirjailipäivitysten yhteydessä.",
"AddMissing": "Lisää puuttuvat",
"AddNewItem": "Lisää uusi kohde",
"AllAuthorBooks": "Kirjailijan kaikki kirjat",
@ -506,16 +506,16 @@
"AllowAuthorChangeClickToChangeAuthor": "Paina vaihtaaksesi kirjailijaa",
"AllowedLanguages": "Sallitut kielet",
"AnyEditionOkHelpText": "Readarr vaihtaa automaattisesti versioon, joka vastaa ladattuja tiedostoja parhaiten",
"AuthorEditor": "Kirjailijaeditori",
"AuthorEditor": "Kirjailijan muokkaus",
"AudioFileMetadata": "Kirjoita metatiedot äänitiedostoihin",
"AuthorFolderFormat": "Kirjailijakansion muoto",
"AuthorFolderFormat": "Kirjailijakansion kaava",
"AuthorNameHelpText": "Poissuljettavan kirjailijan/kirjan nimi (voi olla mitä tahansa merkityksellistä)",
"Authors": "Kirjailijat",
"AutomaticallySwitchEdition": "Automaattinen version vaihto",
"DefaultQualityProfileIdHelpText": "Kansiosta löydetyille kirjailijoille oletustusarvoisesti asetettava laatuprofiili.",
"ConsoleLogLevel": "Valvontalokin laajuus",
"FilterSentryEventsHelpText": "Suodata tunnetut käyttäjävirheet pois analytiikkalähetyksistä",
"Label": "Tunniste",
"Label": "Nimi",
"LogRotateHelpText": "Lokien tallennuskansiossa säilytettävien lokitiedostojen enimmäismäärä",
"LogRotation": "Lokitiedostojen kierrätys",
"LogSqlHelpText": "Kirjaa kaikki SQL-kyselyt",
@ -591,14 +591,14 @@
"UseCalibreContentServer": "Käytä Calibren sisältöpalvelinta",
"UpdateCoversHelpText": "Määritä kirjojen kansikuvat Calibressa vastaamaan Readarrin kuvia.",
"UsernameHelpText": "Calibre-sisältöpalvelimen käyttäjätunnus.",
"UseSslHelpText": "Muodosta yhteys Calibre-sisältöpalvelimeen SSL-protokollan välityksellä.",
"UseSSL": "SSL-salaus",
"UseSslHelpText": "Yhdistä Calibre-sisältöpalvelimeen SSL-protokollan välityksellä.",
"UseSSL": "Käytä SSL-salausta",
"SearchForAllMissingBooks": "Etsi kaikkia puuttuvia kirjoja",
"GeneralSettingsSummary": "Portti, SSL-salaus, käyttäjätunnus ja salasana, välityspalvelin, analytiikka ja päivitykset.",
"PathHelpText": "Kirjakokoelmasi pääkansio.",
"PathHelpTextWarning": "Tämä ei voi olla sama kansio, johon lataustyökalusi tallentaa tiedostot.",
"DefaultMonitorOptionHelpText": "Kansiosta löydetyille kirjailijoille oletusarvoisesti asetettava kirjojen valvontataso.",
"RemotePathMappingCheckFileRemoved": "Tiedosto '{0}' poistettiin kesken käsittelyn.",
"RemotePathMappingCheckFileRemoved": "Tiedosto \"{0}\" poistettiin kesken käsittelyn.",
"Other": "Muut",
"RootFolderCheckSingleMessage": "Puuttuva juurikansio: {0}",
"Save": "Tallenna",
@ -618,26 +618,26 @@
"OnBookFileDeleteHelpText": "Kun elokuvatiedosto poistetaan",
"ProxyCheckFailedToTestMessage": "Välityspalvelintesti epäonnistui: {0}",
"Queued": "Lisätty jonoon",
"SearchFiltered": "Etsi suodatettuja",
"SearchFiltered": "Etsi suodatetuista",
"RemotePathMappingCheckFilesGenericPermissions": "Lataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta {appName} ei näe sitä. Kansion käyttöoikeuksia on ehkä muokattava.",
"RemotePathMappingCheckImportFailed": "Kirjan tuonti epäonnistui. Katso tarkemmat tiedot lokista.",
"RemotePathMappingCheckImportFailed": "{appName} ei voinut tuoda julkaisua. Katso tarkemmat tiedot lokista.",
"CouldntFindAnyResultsForTerm": "Haku '{0}' ei tuottanut tuloksia.",
"IndexerSearchCheckNoAutomaticMessage": "Automaattihakua varten ei ole määritetty tietolähteitä ja tämän vuoksi {appName}in automaattihaku 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}\" tallentaa lataukset kohteeseen \"{1}\", mutta sitä ei löydy Docker-säiliöstä. Tarkista etäsijaintien kartoitukset ja säiliön tallennusmedian asetukset.",
"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 tiedostosijainniksi \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etäsijaintien kartoitukset ja lataustyökalun asetukset.",
"RemotePathMappingCheckFolderPermissions": "Ladatauskansio \"{1}\" näkyy, mutta sitä ei voida käyttää. Todennäköinen syy on sijainnin käyttöoikeusvirhe.",
"RemotePathMappingCheckDockerFolderMissing": "Käytät Dockeria ja lataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta sitä ei löydy Docker-säiliöstä. Tarkista etäsijaintien kohdistukset ja säiliön tallennusmedian asetukset.",
"RemotePathMappingCheckDownloadPermissions": "{appName} näkee ladatun kirjan \"{path}\", mutta ei voi avata sitä. Tämä johtuu todennäköisesti liian rajallisista käyttöoikeuksista.",
"RemotePathMappingCheckFilesBadDockerPath": "Käytät Dockeria ja lataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etäsijaintien kohdistukset ja lataustyökalun asetukset.",
"RemotePathMappingCheckFolderPermissions": "{appName} näkee ladatun kansion \"{1}\", mutta ei voi avata sitä. Tämä johtuu todennäköisesti liian rajallisista käyttöoikeuksista.",
"RemotePathMappingCheckFilesLocalWrongOSPath": "Paikallinen lataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista lataustyökalun asetukset.",
"RemotePathMappingCheckFilesWrongOSPath": "Etälataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etsijaintien kartoitukset lataustyökalun asetukset.",
"RemotePathMappingCheckFilesWrongOSPath": "Etälataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etsijaintien kohdistukset lataustyökalun asetukset.",
"RemotePathMappingCheckGenericPermissions": "Lataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta {appName} ei näe sitä. Kansion käyttöoikeuksia on ehkä muokattava.",
"RemotePathMappingCheckLocalFolderMissing": "Etälataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta sitä ei näytä olevan olemassa. Todennäköinen syy on puuttuva tai virheellinen etäsijainnin kartoitus.",
"RemotePathMappingCheckLocalFolderMissing": "Etälataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta sitä ei näytä olevan olemassa. Todennäköinen syy on puuttuva tai virheellinen etäsijainnin kohdistus.",
"RemotePathMappingCheckLocalWrongOSPath": "Paikallinen lataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista lataustyökalun asetukset.",
"RemotePathMappingCheckRemoteDownloadClient": "Etälataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta sitä ei näytä olevan olemassa. Todennäköinen syy on puuttuva tai virheellinen etäsijainnin kartoitus.",
"RemotePathMappingCheckWrongOSPath": "Etälataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etäsijaintien kartoitukset ja lataustyökalun asetukset.",
"RemotePathMappingCheckRemoteDownloadClient": "Etälataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta sitä ei näytä olevan olemassa. Todennäköinen syy on puuttuva tai virheellinen etäsijainnin kohdistus.",
"RemotePathMappingCheckWrongOSPath": "Etälataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etäsijaintien kohdistukset ja lataustyökalun asetukset.",
"RestartReloadNote": "Huomioi: {appName} käynnistyy palautusprosessin aikana automaattisesti uudelleen.",
"DownloadClientStatusCheckAllClientMessage": "Lataustyökaluja ei ole ongelmien vuoksi käytettävissä",
"DownloadClientsSettingsSummary": "Lataustyökalut, latausten käsittely ja etäsijaintien kartoitukset.",
"DownloadClientsSettingsSummary": "Lataustyökalut, latausten käsittely ja etäsijaintien kohdistukset.",
"Connect": "Kytkökset",
"TimeLeft": "Aikaa jäljellä",
"ConnectSettingsSummary": "Ilmoitukset, kuten viestintä mediapalvelimille ja soittimille, sekä omat komentosarjat.",
@ -665,12 +665,12 @@
"QueueIsEmpty": "Jono on tyhjä",
"ReadarrSupportsAnyDownloadClient": "Monet torrent- ja Usenet-lataustyökalut ovat tuettuja.",
"RefreshAndScan": "Päivitä ja tarkista",
"RemotePathMappingCheckBadDockerPath": "Käytät Dockeria ja lataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etäsijaintien kartoitukset ja lataustyökalun asetukset.",
"RemotePathMappingCheckBadDockerPath": "Käytät Dockeria ja lataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etäsijaintien kohdistukset ja lataustyökalun asetukset.",
"RootFolderCheckMultipleMessage": "Useita juurikansioita puuttuu: {0}",
"SettingsRemotePathMappingLocalPath": "Paikallinen sijainti",
"SettingsRemotePathMappingLocalPathHelpText": "Polku, jonka kautta etäsijaintia tulee käyttää paikallisesti.",
"SettingsRemotePathMappingRemotePath": "Etäsijainti",
"SettingsRemotePathMappingRemotePathHelpText": "Lataustyökalun käyttämän hakemiston juurisijainti",
"SettingsRemotePathMappingRemotePathHelpText": "Lataustyökalun käyttämän kansion juurisijainti.",
"SizeLimit": "Kokorajoitus",
"SystemTimeCheckMessage": "Järjestelmän ajassa on ainakin vuorokauden heitto eivätkä ajoitetut tehtävät tämän vuoksi toimi oikein ennen kuin se on korjattu.",
"UISettingsSummary": "Kalenterin, päiväyksen ja kellonajan sekä kielen ja heikentyneelle värinäölle sopivan tilan asetukset.",
@ -684,7 +684,7 @@
"MonitorNewBooks": "Valvo uusia kirjoja",
"RenameFiles": "Nimeä tiedostot",
"Test": "Testaa",
"AllowFingerprintingHelpText": "Tarkenna kirjojen täsmäystarkkuutta piiloleimauksen avulla.",
"AllowFingerprintingHelpText": "Tarkenna kirjojen tunnistustarkkuutta piiloleimauksen avulla.",
"AllowFingerprinting": "Salli piiloleimaus",
"Database": "Tietokanta",
"ManualImportSelectEdition": "Manuaalinen tuonti - Valitse versio",
@ -718,9 +718,9 @@
"ShowBannersHelpText": "Korvaa nimet bannerikuvilla.",
"StatusEndedContinuing": "Jatkuu",
"UnableToLoadMetadataProviderSettings": "Metatietolähteen asetuksia ei voitu ladata",
"UnmappedFiles": "Kartoittamattomat tiedostot",
"UnmappedFiles": "Kohdistamattomat tiedostot",
"UpdatingIsDisabledInsideADockerContainerUpdateTheContainerImageInstead": "Päivittäminen ei ole Docker-säiliössä käytettävissä. Päivitä sen sijaan säiliön kuva.",
"WatchRootFoldersForFileChanges": "Seuraa juurikansioiden tiedostomuutoksia",
"WatchRootFoldersForFileChanges": "Valvo juurikansioiden tiedostomuutoksia",
"WriteMetadataTags": "Tallenna metatietotagit",
"Country": "Maa",
"MonitoringOptions": "Valvonta-asetukset",
@ -749,9 +749,9 @@
"EndedAllBooksDownloaded": "Päättynyt (kaikki kappaleet on ladattu)",
"GoToAuthorListing": "Avaa esittäjälistaus",
"ListsSettingsSummary": "Tuotilistat",
"MusicBrainzAuthorID": "MusicBrainz-esittäjätunniste",
"MusicBrainzAuthorID": "MusicBrainzin kirjailija-ID",
"SearchForNewItems": "Etsi uusia kohteita",
"SelectedCountAuthorsSelectedInterp": "{0} esittäjä(ä) valittu",
"SelectedCountAuthorsSelectedInterp": "{0} kirjailija(a) valittu",
"TheBooksFilesWillBeDeleted": "Albumin tiedostot poistetaan.",
"TotalBookCountBooksTotalBookFileCountBooksWithFilesInterp": "Yhteensä {0} kappaletta. {1} kappaleelle on tiedostoja.",
"ContinuingAllBooksDownloaded": "Jatkuva (kaikki kappaleet on ladattu)",
@ -763,15 +763,15 @@
"DataMissingBooks": "Seuraa albumeita, joille ei ole tiedostoja tai joita ei ole vielä julkaistu.",
"EntityName": "Entiteetin nimi",
"EnableAutomaticAddHelpText": "Lisää esittäjät/albumit {appName}iin kun synkronointi suoritetaan käyttöliittymästä tai {appName}in toimesta.",
"IndexerIdHelpText": "Määritä mitä tietolähteitä proofiili koskee",
"IndexerIdHelpText": "Määritä mitä tietolähdettä profiili koskee.",
"IndexerIdHelpTextWarning": "Yksittäisen tietolähteen käyttö sanapainotuksen kanssa saattaa aiheuttaa julkaisujen kaksoiskappaleiden kaappauksia.",
"ChooseImportMethod": "Valitse tuontitila",
"ClickToChangeReleaseGroup": "Vaihda julkaisuryhmää painamalla tästä",
"HardlinkCopyFiles": "Hardlink/tiedostojen kopiointi",
"MoveFiles": "Siirrä tiedostot",
"DataListMonitorAll": "Valvo esittäjiä ja jokaisen esittäjän kaikkia tuontilistan sisältämiä albumeita",
"OnApplicationUpdate": "Sovelluksen päivittyessä",
"OnApplicationUpdateHelpText": "Sovelluksen päivittyessä",
"OnApplicationUpdate": "Kun sovellus päivitetään",
"OnApplicationUpdateHelpText": "Kun sovellus päivitetään",
"Theme": "Teema",
"ThemeHelpText": "Vaihda sovelluksen käyttöliittymän ulkoasua. \"Automaattinen\" vaihtaa vaalean ja tumman tilan välillä järjestelmän teeman mukaan. Innoittanut Theme.Park.",
"EnableRssHelpText": "Käytetään {appName}in etsiessä julkaisuja ajoitetusti RSS-synkronoinnilla.",
@ -800,7 +800,7 @@
"ResetDefinitions": "Palauta määritykset",
"ResetTitles": "Palauta nimet",
"ImportListMissingRoot": "Tuontilistalta tai -listoilta puuttuu juurikansio: {0}",
"ImportListMultipleMissingRoots": "Tuontilistoilta puuttuu useita juurikansioita: {0}",
"ImportListMultipleMissingRoots": "Useita tuontilistojen juurikansioita puuttuu: {0}",
"IndexerDownloadClientHelpText": "Määritä tämän tietolähteen kanssa käytettävä lataustyökalu.",
"IndexerTagsHelpText": "Tietolähdettä käytetään vain vähintään yhdellä täsmäävällä tunnisteella merkityille kirjailijoille. Käytä kaikille jättämällä tyhjäksi.",
"HiddenClickToShow": "Piilotettu, näytä painalla",
@ -811,7 +811,7 @@
"ReplaceWithDash": "Korvaa yhdysmerkillä",
"ReplaceWithSpaceDash": "Korvaa yhdistelmällä \"välilyönti yhdysmerkki\"",
"ReplaceWithSpaceDashSpace": "Korvaa yhdistelmällä \"välilyönti yhdysmerkki välilyönti\"",
"DeleteRemotePathMapping": "Poista etäreittien kartoitus",
"DeleteRemotePathMapping": "Poista etäsijainnin kohdistus",
"BlocklistReleases": "Lisää julkaisut estolistalle",
"DeleteConditionMessageText": "Haluatko varmasti poistaa ehdon \"{name}\"?",
"Negated": "Kielletty",
@ -824,7 +824,7 @@
"ResetQualityDefinitions": "Palauta laatumääritykset",
"ResetQualityDefinitionsMessageText": "Haluatko varmasti palauttaa laatumääritykset?",
"NoEventsFound": "Tapahtumia ei löytynyt",
"BlocklistReleaseHelpText": "Estää näiden tiedostojen automaattisen uudelleenkaappauksen.",
"BlocklistReleaseHelpText": "Estää {appName}ia lataamasta näitä tiedostoja uudelleen.",
"RecycleBinUnableToWriteHealthCheck": "Määritettyyn roskakorikansioon ei voi tallentaa: {0}. Varmista, että sijainti on olemassa ja että käyttäjällä on kirjoitusoikeus kansioon.",
"ApplyTagsHelpTextHowToApplyAuthors": "Tunnisteisiin kohdistettavat toimenpiteet:",
"DeleteSelectedImportLists": "Poista tuontilista(t)",
@ -852,7 +852,7 @@
"RemoveDownloadsAlert": "Poistoasetukset on siirretty yllä olevan taulukon lataustyökalukohtaisiin asetuksiin.",
"SetTags": "Tunnisteiden määritys",
"ConnectionLostToBackend": "{appName} kadotti yhteyden taustajärjestelmään ja se on käynnistettävä uudelleen.",
"NotificationStatusAllClientHealthCheckMessage": "Kaikki ilmoitukset eivät ole ongelmien vuoksi käytettävissä",
"NotificationStatusAllClientHealthCheckMessage": "Mikään ilmoituspavelu ei ole ongelmien vuoksi käytettävissä.",
"NotificationStatusSingleClientHealthCheckMessage": "Ilmoitukset eivät ole ongelmien vuoksi käytettävissä: {0}",
"System": "Järjestelmä",
"TotalSpace": "Kokonaistila",
@ -873,7 +873,7 @@
"LastWriteTime": "Viimeksi tallennettu",
"Location": "Sijainti",
"NoResultsFound": "Ei tuloksia",
"SomeResultsAreHiddenByTheAppliedFilter": "Joitakin tuloksia piilottaa käytetty suodatin",
"SomeResultsAreHiddenByTheAppliedFilter": "Aktiivinen suodatin piilottaa joitakin tuloksia.",
"Activity": "Tapahtuma",
"AddNew": "Lisää uusi",
"Backup": "Varmuuskopiointi",
@ -889,10 +889,10 @@
"CountAuthorsSelected": "{selectedCount} tietolähde(ttä) on valittu",
"NoMissingItems": "Ei puuttuvia kohteita",
"InvalidUILanguage": "Käytöliittymän kielivalinta on virheellinen. Korjaa se ja tallenna asetukset.",
"MetadataSettingsSummary": "Luo metatietotiedostot kun jaksoja tuodaan tai sarjojen tietoja päivitetään.",
"ThereWasAnErrorLoadingThisItem": "Virhe ladattaessa tätä kohdetta",
"ThereWasAnErrorLoadingThisPage": "Virhe ladattaessa tätä sivua",
"DeleteRemotePathMappingMessageText": "Haluatko varmasti poistaa tämä etäsijainnin kartoituksen?",
"MetadataSettingsSummary": "Luo metatietotiedostot kun kirjoja tuodaan tai kirjailijoiden tietoja päivitetään.",
"ThereWasAnErrorLoadingThisItem": "Virhe ladattaessa kohdetta",
"ThereWasAnErrorLoadingThisPage": "Virhe ladattaessa sivua",
"DeleteRemotePathMappingMessageText": "Haluatko varmasti poistaa tämän etäsijainnin kohdistuksen?",
"ManageDownloadClients": "Hallitse lataustyökaluja",
"ManageIndexers": "Hallitse tietolähteitä",
"NoIndexersFound": "Tietolähteitä ei löytynyt",
@ -917,7 +917,7 @@
"EditSelectedIndexers": "Muokkaa valittuja sisältölähteitä",
"LogSQL": "Kirjaa SQL",
"NoDownloadClientsFound": "Lataustyökaluja ei löytynyt",
"RemotePathMappingsInfo": "Etäsijaintien kartoitusta tarvitaan harvoin ja jos {app} ja lataustyökalu suoritetaan samassa järjestelmässä, on parempi käyttää paikallisia polkuja. Lue lisää [wikistä]({wikiLink}).",
"RemotePathMappingsInfo": "Etäsijaintien kohdistuksia tarvitaan harvoin ja jos {app} ja lataustyökalu suoritetaan samassa järjestelmässä, on parempi käyttää paikallisia polkuja. Lue lisää [wikistä]({wikiLink}).",
"IndexerDownloadClientHealthCheckMessage": "Tietolähteet virheellisillä lataustyökaluilla: {0}.",
"NoHistoryBlocklist": "Estohistoriaa ei ole.",
"ErrorLoadingContent": "Virhe ladattaessa tätä sisältöä",
@ -933,5 +933,43 @@
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Määrittää käytetäänkö qBittorrentista määritettyä rakennetta, torrentin alkuperäistä rakennetta vai luodaanko uusi alikansio (qBittorrent 4.3.2+).",
"Implementation": "Toteutus",
"SourceTitle": "Lähteen nimike",
"EditSelectedImportLists": "Muokkaa valittuja tuontilistoja"
"EditSelectedImportLists": "Muokkaa valittuja tuontilistoja",
"ListWillRefreshEveryInterp": "Lista päivitetään {0} välein",
"HasMonitoredBooksNoMonitoredBooksForThisAuthor": "Kirjailijalta ei valvota kirjoja",
"ManageClients": "Hallitse työkaluja",
"NoImportListsFound": "Tuotilistoja ei löytynyt",
"FilterAuthor": "Suodata kirjailija",
"StatusEndedDeceased": "Kuollut",
"OnAuthorDeleteHelpText": "Kun kirjailija poistetaan",
"ListRefreshInterval": "Listan päivityksen ajoitus",
"MonitorAuthor": "Valvo kirjailijaa",
"EditAuthor": "Muokkaa kirjailijaa",
"NameStyle": "Kirjailijan nimen tyyli",
"MonitoredAuthorIsUnmonitored": "Kirjailijaa ei valvota",
"OnAuthorDelete": "Kun kirjailija poistetaan",
"DataListMonitorNone": "Älä valvo kirjailijoita tai kirjoja",
"MonitoredAuthorIsMonitored": "Kirjailijaa valvotaan",
"RefreshAuthor": "Päivitä kirjailija",
"OnAuthorAdded": "Kun kirjailija lisätään",
"OnAuthorAddedHelpText": "Kun kirjailija lisätään",
"SkipRedownloadHelpText": "Estää {appName}ia lataamasta vaihtoehtoisia julkaisuja poistetuille kohteille.",
"RemoveFromDownloadClientHint": "Poistaa latauksen ja ladatut tiedostot lataustyökalusta.",
"RemoveMultipleFromDownloadClientHint": "Poistaa latauksen ja ladatut tiedostot lataustyökalusta.",
"RemoveQueueItemRemovalMethod": "Poistotapa",
"RemoveQueueItemRemovalMethodHelpTextWarning": "\"Poista lataustyökalusta\" poistaa latauksen ja sen tiedostot.",
"RemoveQueueItemsRemovalMethodHelpTextWarning": "\"Poista lataustyökalusta\" poistaa lataukset ja niiden tiedostot.",
"AutoRedownloadFailedFromInteractiveSearch": "Uudelleenlataus manuaalihaun tuloksista epäonnistui",
"NameFirstLast": "Etunimi sukunimi",
"NameLastFirst": "Sukunimi, etunimi",
"CustomFormatsSpecificationRegularExpressionHelpText": "Mukautetun muodon säännöllisen lausekkeen kirjainkokoa ei huomioida.",
"BlocklistAndSearchHint": "Etsi korvaavaa kohdetta kun kohde lisätään estolistalle.",
"BlocklistAndSearchMultipleHint": "Etsi korvaavia kohteita kun kohteita lisätään estolistalle.",
"ChangeCategory": "Vaihda kategoria",
"BlocklistMultipleOnlyHint": "Lisää estolistalle etsimättä korvaavia kohteita.",
"BlocklistOnlyHint": "Lisää estolistalle etsimättä korvaavaa kohdetta.",
"ChangeCategoryMultipleHint": "Vaihtaa latausten kategoriaksi lataustyökalun \"Tuonnin jälkeinen kategoria\" -asetuksen kategorian.",
"DoNotBlocklistHint": "Poista lisäämättä estolistalle.",
"IgnoreDownloadHint": "Estää {appName}ia käsittelemästä tätä latausta jatkossa.",
"IgnoreDownloadsHint": "Estää {appName}ia käsittelemästä näitä latauksia jatkossa.",
"ChangeCategoryHint": "Vaihtaa latauksen kategoriaksi lataustyökalun \"Tuonnin jälkeinen kategoria\" -asetuksen kategorian."
}

@ -1,7 +1,7 @@
{
"20MinutesTwenty": "20 Minutes: {0}",
"45MinutesFourtyFive": "45 Minutes: {0}",
"60MinutesSixty": "60 Minutes: {0}",
"20MinutesTwenty": "20 Minutes : {0}",
"45MinutesFourtyFive": "45 Minutes : {0}",
"60MinutesSixty": "60 Minutes : {0}",
"APIKey": "Clé API",
"About": "À propos",
"AddListExclusion": "Ajouter une liste d'exclusion",
@ -76,7 +76,7 @@
"CreateGroup": "Créer un groupe",
"CutoffHelpText": "Quand cette qualité est atteinte, Readarr ne téléchargera plus de livres",
"CutoffUnmet": "Seuil non atteint",
"DBMigration": "Migration de la base de données",
"DatabaseMigration": "Migration de la base de données",
"Dates": "Dates",
"DelayProfile": "Profil de retard",
"DelayProfiles": "Profils de retard",
@ -238,7 +238,7 @@
"PageSizeHelpText": "Nombre d'éléments à afficher sur chaque page",
"Password": "Mot de passe",
"Path": "Chemin",
"Permissions": "Permissions",
"Permissions": "Autorisations",
"Port": "Port",
"PortHelpTextWarning": "Nécessite un redémarrage pour prendre effet",
"PortNumber": "Numéro de port",
@ -930,5 +930,32 @@
"DeleteSelected": "Supprimer sélectionnée",
"InvalidUILanguage": "Votre interface utilisateur est définie sur une langue non valide, corrigez-la et enregistrez vos paramètres",
"DownloadClientQbittorrentSettingsContentLayout": "Disposition du contenu",
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Utiliser la disposition du contenu configurée par qBittorrent, la disposition originale du torrent ou toujours créer un sous-dossier (qBittorrent 4.3.2+)"
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Utiliser la disposition du contenu configurée par qBittorrent, la disposition originale du torrent ou toujours créer un sous-dossier (qBittorrent 4.3.2+)",
"CustomFormatsSpecificationRegularExpressionHelpText": "Format personnalisé RegEx est insensible à la casse",
"CustomFormatsSpecificationRegularExpression": "Expression régulière",
"BlocklistAndSearch": "Liste de blocage et recherche",
"BlocklistAndSearchHint": "Lancer la recherche d'un remplaçant après l'inscription sur la liste de blocage",
"BlocklistAndSearchMultipleHint": "Lancer la recherche de remplaçants après l'inscription sur la liste de blocage",
"BlocklistMultipleOnlyHint": "Liste de blocage sans recherche de remplaçants",
"BlocklistOnly": "Liste de blocage uniquement",
"BlocklistOnlyHint": "Liste de blocage sans recherche de remplaçant",
"ChangeCategory": "Changer de catégorie",
"ChangeCategoryMultipleHint": "Modifie les téléchargements dans la \"catégorie post-importation\" du client de téléchargement",
"ChangeCategoryHint": "Modifie le téléchargement dans la \"catégorie post-importation\" du client de téléchargement",
"AutoRedownloadFailed": "Échec du retéléchargement",
"AutoRedownloadFailedFromInteractiveSearch": "Échec du retéléchargement à partir de la recherche interactive",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Lance une recherche automatique et une tentative de téléchargement d'une version différente si la version trouvée automatiquement échoue",
"DoNotBlocklist": "Ne pas mettre sur liste noire",
"DoNotBlocklistHint": "Supprimer sans mettre sur liste noire",
"IgnoreDownload": "Ignorer le téléchargement",
"IgnoreDownloads": "Ignorer les téléchargements",
"IgnoreDownloadHint": "Empêche {appName} de poursuivre le traitement de ce téléchargement",
"IgnoreDownloadsHint": "Empêche {appName} de poursuivre le traitement de ces téléchargements",
"RemoveMultipleFromDownloadClientHint": "Supprime les téléchargements et les fichiers du client de téléchargement",
"RemoveFromDownloadClientHint": "Supprime le téléchargement et le(s) fichier(s) du client de téléchargement",
"RemoveQueueItemRemovalMethod": "Méthode de suppression",
"RemoveQueueItemRemovalMethodHelpTextWarning": "\"Supprimer du client de téléchargement\" supprimera le téléchargement et le(s) fichier(s) du client de téléchargement.",
"RemoveQueueItem": "Retirer - {sourceTitle}",
"RemoveQueueItemConfirmation": "Êtes-vous sûr de vouloir retirer '{sourceTitle}' de la file d'attente ?",
"RemoveQueueItemsRemovalMethodHelpTextWarning": "Supprimer du client de téléchargement\" supprimera les téléchargements et les fichiers du client de téléchargement."
}

@ -51,7 +51,7 @@
"CreateGroup": "צור קבוצה",
"CutoffHelpText": "לאחר שהאיכות הזו תושג Radarr כבר לא תוריד סרטים",
"CutoffUnmet": "חתך שלא הושג",
"DBMigration": "הגירת DB",
"DatabaseMigration": "הגירת DB",
"Dates": "תאריכים",
"DelayProfile": "עיכוב פרופיל",
"DelayProfiles": "עיכוב פרופילים",

@ -57,7 +57,7 @@
"CreateGroup": "समूह बनाएँ",
"CutoffHelpText": "एक बार जब यह गुणवत्ता पहुँच जाती है तो Redarr फिल्में डाउनलोड नहीं करेगा",
"CutoffUnmet": "कट-ऑफ Unmet",
"DBMigration": "DB प्रवासन",
"DatabaseMigration": "DB प्रवासन",
"Dates": "खजूर",
"DelayProfile": "देरी प्रोफ़ाइल",
"DelayProfiles": "देरी प्रोफाइल",

@ -32,17 +32,17 @@
"ChmodFolder": "chmod Mappa",
"ChmodFolderHelpText": "Octal, importáláskor / átnevezéskor alkalmazva a média mappákra és fájlokra (bitek végrehajtása nélkül)",
"ChmodFolderHelpTextWarning": "Ez csak akkor működik, ha a Radarr-t futtató felhasználó a fájl tulajdonosa. Jobb, ha ellenőrzöd a letöltési kliensben megfelelően vannak-e beállítva az engedélyek.",
"ChownGroupHelpText": "Csoport neve vagy gid. A gid használata távoli fájlrendszerekhez.",
"ChownGroupHelpText": "Csoport neve vagy gid. Távoli fájlrendszerekhez használja a gid-t.",
"ChownGroupHelpTextWarning": "Ez csak akkor működik, ha a Radarrt futtató felhasználó a fájl tulajdonosa. Jobb, ha a letöltési kliens ugyanazt a csoportot használja, mint a Radarr.",
"Clear": "Törölni",
"ClickToChangeQuality": "Kattintson a minőség módosításához",
"ClientPriority": "Kliens Prioritás",
"CloneIndexer": "Indexer Klónozása",
"CloneProfile": "Profil Klónozása",
"ClientPriority": "Kliens prioritás",
"CloneIndexer": "Indexelő klónozása",
"CloneProfile": "Profil klónozása",
"Close": "Bezárás",
"Columns": "Oszlopok",
"CompletedDownloadHandling": "Kész Letöltések Kezelése",
"ConnectSettings": "Kapcsolódási Beállítások",
"CompletedDownloadHandling": "Befejezett letöltéskezelés",
"ConnectSettings": "Csatlakozási beállítások",
"Connections": "Kapcsolatok",
"CopyUsingHardlinksHelpText": "Használj Hardlininket, amikor megpróbálsz fájlokat másolni a még Seedelt torrentekből",
"CopyUsingHardlinksHelpTextWarning": "Esetenként az írásvédettség megakadályozza a Seedelt fájlok átnevezését. Ideiglenesen állítsd le a Seedelést, hogy a Radarr át tudja nevezni a fájlokat.",
@ -50,7 +50,7 @@
"CreateGroup": "Csoport létrehozása",
"CutoffHelpText": "Amint ezt a minőséget eléri, a Radarr többé nem fog filmeket letölteni",
"CutoffUnmet": "Küszöbszint nincs elérve",
"DBMigration": "DB Migráció",
"DatabaseMigration": "DB Migráció",
"Dates": "Dátumok",
"DelayProfile": "Késleltetési Profil",
"DelayProfiles": "Késleltetési Profilok",
@ -59,21 +59,21 @@
"DeleteBackup": "Biztonsági Mentés törlése",
"DeleteBackupMessageText": "Biztosan törli a '{name}' biztonsági mentést?",
"DeleteDelayProfile": "Késleltetési Profil törlése",
"DeleteDelayProfileMessageText": "Biztos hogy törölni szeretnéd ezt a késleltetési profilt?",
"DeleteDelayProfileMessageText": "Biztosan törli ezt a késleltetési profilt?",
"DeleteDownloadClient": "Letöltőkliens törlése",
"DeleteDownloadClientMessageText": "Biztosan törlöd a(z) „{0}” letöltő klienst?",
"DeleteDownloadClientMessageText": "Biztosan törli a(z) \"{name}\" letöltési klienst?",
"DeleteEmptyFolders": "Üres Mappa Törlése",
"DeleteEmptyFoldersHelpText": "Törölje az üres könyvmappákat a lemezfrissítés és a könyvfájlokfájlok törlése során",
"DeleteImportListExclusion": "Az importlista kizárásásainak törlése",
"DeleteImportListExclusionMessageText": "Biztos, hogy törölni szeretnéd az importálási lista kivételeit?",
"DeleteImportListMessageText": "Biztosan törlöd a(z) „{0}” listát?",
"DeleteImportListExclusionMessageText": "Biztosan törli ezt az importlista-kizárást?",
"DeleteImportListMessageText": "Biztosan törli a(z) „{name}” listát?",
"DeleteIndexer": "Indexer Törlése",
"DeleteIndexerMessageText": "Biztosan törlöd a(z) „{0}” indexert?",
"DeleteIndexerMessageText": "Biztosan törli a(z) \"{name}\" indexelőt?",
"DeleteMetadataProfileMessageText": "Biztosan törli a {0} minőségi profilt?",
"DeleteNotification": "Értesítés Törlése",
"DeleteNotificationMessageText": "Biztosan törlöd a(z) „{0}” értesítést?",
"DeleteNotificationMessageText": "Biztosan törli a(z) „{name}” értesítést?",
"DeleteQualityProfile": "Minőségi Profil Törlése",
"DeleteQualityProfileMessageText": "Biztosan törli a {0} minőségi profilt?",
"DeleteQualityProfileMessageText": "Biztosan törli a(z) „{name}” minőségi profilt?",
"DeleteReleaseProfile": "Késleltetési Profil Törlése",
"DeleteReleaseProfileMessageText": "Biztos hogy törölni szeretnéd ezt a késleltetési profilt?",
"DeleteSelectedBookFiles": "Töröld a Kiválaszott Film Fájlokat",
@ -83,16 +83,16 @@
"DestinationPath": "Célmappa Útvonala",
"DetailedProgressBar": "Részletes Folyamat Sáv",
"DetailedProgressBarHelpText": "Szöveg megjelenítése a folyamatjelző sávon",
"DiskSpace": "Szabad Tárhely",
"DiskSpace": "Lemez terület",
"Docker": "Docker",
"DownloadClient": "Letöltési Kliens",
"DownloadClient": "Letöltési kliens",
"DownloadClientSettings": "Letöltőkliens Beállítások",
"DownloadClients": "Letöltőkliensek",
"DownloadClients": "Letöltő kliensek",
"DownloadFailedCheckDownloadClientForMoreDetails": "Letöltés Sikertelen : Nézd meg a letöltőkliensed további információért",
"DownloadFailedInterp": "Letöltés sikertelen: {0}",
"DownloadPropersAndRepacksHelpTexts1": "Függetlenül attól, hogy automatikusan frissíteni kell-e Propers/Repacks verzióra",
"DownloadWarningCheckDownloadClientForMoreDetails": "Letöltési figyelmeztetés: Nézd meg a letöltőkliensed további információért",
"Edit": "szerkeszt",
"Edit": "Szerkeszt",
"Edition": "Kiadás",
"Enable": "Aktiválás",
"EnableAutomaticAdd": "Engedélyezd az automatikus hozzáadást",
@ -111,10 +111,10 @@
"Exception": "Kivétel",
"FailedDownloadHandling": "Nem sikerült a letöltés kezelése",
"FileDateHelpText": "A fájl dátumának módosítása az importáláskor / újrakereséskor",
"FileManagement": "Fájlkezelő",
"FileManagement": "Fájlkezelés",
"FileNames": "Fájlnevek",
"Filename": "Fájl név",
"Files": "Fájl",
"Files": "Fájlok",
"FirstDayOfWeek": "A Hét Első Napja",
"Fixed": "Rögzített",
"Folder": "Mappa",
@ -149,7 +149,7 @@
"ImportExtraFilesHelpText": "A megfelelő extra fájlok importálása (feliratok, nfo stb.) a filmfájl importálása után",
"ImportFailedInterp": "Importálás sikertelen: {0}",
"ImportedTo": "Importálva Ide",
"Importing": "Importálás Folyamatban",
"Importing": "Importálás",
"IncludeHealthWarningsHelpText": "Tartalmazza a Állapot Figyelmeztetéseket",
"IncludeUnknownAuthorItemsHelpText": "Mutasson tételeket film nélkül a sorban. Ez tartalmazhat eltávolított filmeket vagy bármi mást a Radarr kategóriájából",
"IncludeUnmonitored": "Figyelmen Kívül hagyottakat is tartalmazza",
@ -165,46 +165,46 @@
"LaunchBrowserHelpText": " Nyisson meg egy böngészőt, és az alkalmazás indításakor lépjen a Readarr kezdőlapjára.",
"LoadingBookFilesFailed": "A film fájljainak betöltése sikertelen",
"Local": "Helyi",
"LogFiles": "Log Fájlok",
"LogLevel": "Log Szint",
"LogFiles": "Naplófájlok",
"LogLevel": "Napló szint",
"LogLevelvalueTraceTraceLoggingShouldOnlyBeEnabledTemporarily": "A nyomkövetést csak ideiglenesen szabad engedélyezni",
"Logging": "Loggolás",
"Logs": "Naplók",
"LongDateFormat": "Hosszú dátumformátum",
"LongDateFormat": "Hosszú dátum formátum",
"MIA": "MIA",
"ManualImport": "Manuális Importálás",
"MarkAsFailed": "Megjelölés Sikertelenként",
"ManualImport": "Kézi importálás",
"MarkAsFailed": "Megjelölés sikertelenként",
"MarkAsFailedMessageText": "Biztosan sikertelennek szeretnéd jelölni a (z) „{0}”-t?",
"MaximumLimits": "Maximális Limit",
"MaximumSize": "Maximális Méret",
"MaximumLimits": "Maximális korlátok",
"MaximumSize": "Maximális méret",
"MaximumSizeHelpText": "A kiadás maximális mérete MB-ban. Állítsd nullára a korlátlan értékre.",
"Mechanism": "Mechanizmus",
"MediaInfo": "Média Információ",
"MediaManagementSettings": "Média Kezelési Beállítások",
"Mechanism": "Gépezet",
"MediaInfo": "Média információ",
"MediaManagementSettings": "Médiakezelési beállítások",
"Message": "Üzenet",
"MetadataSettings": "Metaadat Beállítások",
"MinimumAge": "Minimális Kor",
"MetadataSettings": "Metaadat-beállítások",
"MinimumAge": "Minimális kor",
"MinimumAgeHelpText": "Usenet: Az NZB-k minimális életkora percekben, mielőtt megragadnák őket. Használja ezt arra, hogy időt biztosítson az új kiadásoknak az usenet-szolgáltatóhoz történő továbbterjesztésre.",
"MinimumFreeSpace": "Minimális Szabad Tárhely",
"MinimumFreeSpace": "Minimális szabad hely",
"MinimumFreeSpaceWhenImportingHelpText": "Akadályozza meg az importálást, ha ennél kevesebb lemezterület maradna",
"MinimumLimits": "Minimális Határ",
"MinimumLimits": "Minimális korlátok",
"Missing": "Hiányzó",
"Mode": "Mód",
"Monitored": "Felügyelt",
"MoreInfo": "Több Információ",
"MoreInfo": "Több információ",
"MustContain": "Tartalmaznia kell",
"MustNotContain": "Nem tartalmazhatja",
"MustNotContain": "Nem tartalmazhat",
"Name": "Név",
"NamingSettings": "Elnevezési beállítások",
"New": "Új",
"NoBackupsAreAvailable": "Nincs elérhető biztonsági mentés",
"NoBackupsAreAvailable": "Nincsenek biztonsági mentések",
"NoHistory": "Nincs(enek) előzmény(ek).",
"NoLeaveIt": "Nem, hagyd így",
"NoLimitForAnyRuntime": "Nincs futási idő korlát",
"NoLogFiles": "Nincsen log fájl",
"NoLeaveIt": "Nem, Hagyd",
"NoLimitForAnyRuntime": "Nincs korlátozás semmilyen futási időre",
"NoLogFiles": "Nincsenek naplófájlok",
"NoMinimumForAnyRuntime": "Nincs minimális futásidő",
"NoUpdatesAreAvailable": "Nincsenek elérhető frissítések",
"NotificationTriggers": "Értesítés(ek) kiváltója",
"NoUpdatesAreAvailable": "Nem érhetők el frissítések",
"NotificationTriggers": "Értesítési triggerek",
"OnGrabHelpText": "Kiválasztás alatt",
"OnHealthIssueHelpText": "Állapotprobléma",
"OnRenameHelpText": "Átnevezés alatt",
@ -242,30 +242,30 @@
"Queue": "Várakozási sor",
"RSSSync": "RSS Szinkronizálás",
"RSSSyncInterval": "RSS Szikronizálás Intervalluma",
"ReadTheWikiForMoreInformation": "Olvasd el a Wiki-t további információkért",
"ReadTheWikiForMoreInformation": "További információkért olvassa el a Wikit",
"ReadarrSupportsAnyIndexerThatUsesTheNewznabStandardAsWellAsOtherIndexersListedBelow": "A Radarr minden indexert támogat, amely a Newznab szabványt használja, valamint az alább felsorolt egyéb indexereket.",
"ReadarrTags": "Radarr Címkék",
"Real": "Igazi",
"Real": "Igaz",
"Reason": "Ok",
"RecycleBinCleanupDaysHelpText": "Állítsd 0-ra az automatikus tisztítás letiltásához",
"RecycleBinCleanupDaysHelpTextWarning": "A kiválasztott napoknál régebbi fájlok a lomtárban automatikusan törlésre kerülnek",
"RecycleBinHelpText": "A filmfájlok végleges törlés helyett ide kerülnek törléskor",
"RecyclingBin": "Lomtár",
"RecyclingBinCleanup": "Lomtár kiürítése",
"RecyclingBinCleanup": "Lomtár tisztítása",
"Redownload": "Letöltés újra",
"Refresh": "Frissítés",
"RefreshInformationAndScanDisk": "Információk frissítése és lemez átvizsgálása",
"ReleaseDate": "Megjelenés Dátuma",
"ReleaseGroup": "Kiadási Csoport",
"ReleaseGroup": "Release csapat",
"ReleaseRejected": "Kiadás elutasítva",
"ReleaseWillBeProcessedInterp": "A kiadás feldolgozása {0}",
"Reload": "Újratöltés",
"RemotePathMappings": "Távoli Elérési Útvonal",
"Reload": "Újratölt",
"RemotePathMappings": "Távoli útvonal-leképezések",
"Remove": "Eltávolítás",
"RemoveCompletedDownloadsHelpText": "Távolítsa el az importált letöltéseket a letöltési kliens előzményeiből",
"RemoveFailedDownloadsHelpText": "Távolítsa el a sikertelen letöltéseket a letöltési kliens előzményeiből",
"RemoveFilter": "Szűrő törlése",
"RemoveFromDownloadClient": "Eltávolítás a letöltési kliensből",
"RemoveFromDownloadClient": "Eltávolítás a Letöltési kliensből",
"RemoveFromQueue": "Eltávolítás a sorból",
"RemoveHelpTextWarning": "Az eltávolítás eltávolítja a letöltést és a fájl(oka)t a letöltési kliensből.",
"RemoveSelected": "Kiválaszottak törlése",
@ -282,10 +282,10 @@
"Reset": "Visszaállítás",
"ResetAPIKey": "API Kulcs visszaállítása",
"ResetAPIKeyMessageText": "Biztos hogy vissza szeretnéd állítani az API-Kulcsod?",
"Restart": "Újraindítás",
"Restart": "Újrakezd",
"RestartNow": "Újraindítás Most",
"RestartReadarr": "Radarr Újraindítása",
"Restore": "Visszaállítás",
"Restore": "Visszaállít",
"RestoreBackup": "Biztonsági mentés visszaállítása",
"Result": "Eredmény",
"Retention": "Visszatartás",
@ -305,33 +305,33 @@
"SearchSelected": "Kiválasztottak keresése",
"Security": "Biztonság",
"SendAnonymousUsageData": "Névtelen használati adatok küldése",
"SetPermissions": "Engedélyek beállítása",
"SetPermissions": "Állítsa be az engedélyeket",
"SetPermissionsLinuxHelpText": "Futtatni kell a chmod-ot fájlok importálásakor / átnevezésekor?",
"SetPermissionsLinuxHelpTextWarning": "Ha nem vagy biztos abban, hogy ezek a beállítások mit csinálnak, ne változtasd meg őket.",
"SetPermissionsLinuxHelpTextWarning": "Ha nem biztos abban, hogy ezek a beállítások mit csinálnak, ne módosítsa őket.",
"Settings": "Beállítások",
"ShortDateFormat": "Rövid dátumformátum",
"ShowCutoffUnmetIconHelpText": "Szimbólum megjelenítése, ha a minőségi küszöböt még nem érték el",
"ShowDateAdded": "Hozzáadás dátuma",
"ShowMonitored": "Monitorozottak mutatása",
"ShowMonitoredHelpText": "Monitorozott státusz kijelzése a poszter alatt",
"ShowPath": "Útvonal mutatása",
"ShowQualityProfile": "Minőségi profil megjelenítése",
"ShowQualityProfileHelpText": "Minőségi profil megjelenítése a poszter alatt",
"ShowDateAdded": "Hozzáadás dátumának megjelenítése",
"ShowMonitored": "Megfigyelt megjelenítése",
"ShowMonitoredHelpText": "A figyelt állapot megjelenítése a plakát alatt",
"ShowPath": "Útvonal megjelenítése",
"ShowQualityProfile": "Minőségi Profil mutatása",
"ShowQualityProfileHelpText": "Minőségi profil megjelenítése a plakát alatt",
"ShowRelativeDates": "Relatív dátumok megjelenítése",
"ShowRelativeDatesHelpText": "Relatív (Ma / Tegnap / stb.) vagy valós dátumok megjelenítése",
"ShowSearch": "Keresés(ek) megjelenítése",
"ShowSearch": "Keresés mutatása",
"ShowSearchActionHelpText": "A kereső gomb megjelenítése az egérrel",
"ShowSizeOnDisk": "Használt hely megjelenítése",
"ShowSizeOnDisk": "Méret megjelenítése a lemezen",
"ShownAboveEachColumnWhenWeekIsTheActiveView": "Minden oszlop felett jelenjen meg, hogy melyik hét az aktuális",
"Size": " Méret",
"SkipFreeSpaceCheck": "A szabad hely ellenőrzésének kihagyása",
"SkipFreeSpaceCheck": "Kihagyja a szabad hely ellenőrzését",
"SkipFreeSpaceCheckWhenImportingHelpText": "Akkor használja, ha a Readarr nem képes felismerni a gyökérmappában lévő szabad helyet",
"SorryThatAuthorCannotBeFound": "Sajnáljuk, ez a film nem található.",
"SorryThatBookCannotBeFound": "Sajnáljuk, ez a film nem található.",
"Source": "Forrás",
"SourcePath": "Forrás útvonala",
"SslCertPasswordHelpText": "Jelszó a Pfx fájlhoz",
"SslCertPathHelpText": "A PFX fájl elérési útvonala",
"SslCertPasswordHelpText": "Jelszó a pfx fájlhoz",
"SslCertPathHelpText": "A pfx fájl elérési útja",
"SslPortHelpTextWarning": "Újraindítás szükséges a hatálybalépéshez",
"StandardBookFormat": "Normál filmformátum",
"StartTypingOrSelectAPathBelow": "Kezdd el gépelni, vagy válassz az alábbi útvonalak közül",
@ -348,14 +348,14 @@
"TagIsNotUsedAndCanBeDeleted": "A címke nincs használatban, törölhető",
"Tasks": "Feladatok",
"TestAll": "Összes Tesztelése",
"TestAllClients": "Összes kliens tesztelése",
"TestAllIndexers": "Indexerek tesztelése",
"TestAllLists": "Összes lista tesztelése",
"TestAllClients": "Minden ügyfél tesztelése",
"TestAllIndexers": "Tesztelje az összes indexelőt",
"TestAllLists": "Minden lista tesztelése",
"ThisWillApplyToAllIndexersPleaseFollowTheRulesSetForthByThem": "Ez minden indexerre vonatkozni fog, kérjük, tartsa be az általuk meghatározott szabályokat",
"TimeFormat": "Idő formátum",
"Title": "Cím",
"TorrentDelay": "Torrent késleltetés",
"TorrentDelayHelpText": "Eltolás percekben, mielőtt a torrentkliens elkezdi a letöltést",
"TorrentDelay": "Torrent Késleltetés",
"TorrentDelayHelpText": "Percek késése, hogy várjon, mielőtt megragad egy torrentet",
"Torrents": "Torrentek",
"TotalFileSize": "Összesített fájlméret",
"UILanguage": "Felület nyelve",
@ -400,7 +400,7 @@
"AgeWhenGrabbed": "Életkor (amikor megragadták)",
"AlreadyInYourLibrary": "Már a könyvtárban",
"UnableToLoadRemotePathMappings": "Nem lehet betölteni a Távoli útvonal-hozzárendeléseket",
"None": "Nincs",
"None": "Egyik sem",
"UnableToLoadRootFolders": "Nem lehet betölteni a gyökérmappákat",
"Tags": "Címkék",
"UnableToLoadTags": "Nem sikerült betölteni a címkéket",
@ -486,9 +486,9 @@
"DeleteBookFile": "Könyvfájl törlése",
"DeleteBookFileMessageText": "Biztosan törli a következőt: {0}?",
"DeleteFilesHelpText": "Törölje a könyvfájlokat és a szerzői mappát",
"DeleteImportList": "Importlista törlése",
"DeleteImportList": "Importálási lista törlése",
"DeleteMetadataProfile": "Metaadat-profil törlése",
"DeleteRootFolder": "Gyökérmappa törlése",
"DeleteRootFolder": "Gyökérmappa törlés",
"Development": "Fejlesztés",
"DiscCount": "Lemezszám",
"DiscNumber": "Lemez száma",
@ -540,14 +540,14 @@
"LogRotation": "Napló forgatása",
"LogSQL": "Naplózza az SQL-t",
"LogSqlHelpText": "Naplózza az összes SQL-lekérdezést a Readarr-ból",
"MaintenanceRelease": "Karbantartási frissítés: hibajavítások és egyéb fejlesztések. További részletekért lásd: Github Commit History",
"MaintenanceRelease": "Karbantartási kiadás: hibajavítások és egyéb fejlesztések. További részletekért lásd: Github Commit History",
"ManualDownload": "Kézi letöltés",
"MetadataConsumers": "Metaadat-fogyasztók",
"MetadataProfile": "Metaadat-profil",
"MetadataProfileIdHelpText": "A Metaadat-profil listaelemeket hozzá kell adni a",
"MetadataProfiles": "Metaadat-profilok",
"MetadataProviderSource": "Metaadat-szolgáltató forrása",
"MetadataSource": "Metaadat-forrás",
"MetadataSource": "Metaadatforrás",
"MetadataSourceHelpText": "Alternatív metaadat-forrás (hagyd üresen az alapértelmezéshez)",
"MinPopularityHelpText": "A népszerűség átlagos értékelése * szavazatok száma",
"MinimumPopularity": "Minimális népszerűség",
@ -596,7 +596,7 @@
"StatusEndedContinuing": "Folytatás",
"SpecificBook": "Konkrét könyv",
"SkipSecondarySeriesBooks": "A másodlagos sorozatú könyvek kihagyása",
"SkipRedownload": "Az újraletöltés átugrása",
"SkipRedownload": "Az újraletöltés kihagyása",
"SkipPartBooksAndSets": "Részletkönyvek és könyvkészlet(ek) kihagyása",
"SkipBooksWithNoISBNOrASIN": "ISBN vagy ASIN nélküli könyvek kihagyása",
"SkipBooksWithMissingReleaseDate": "Hagyja ki a hiányzó megjelenési dátummal rendelkező könyveket",
@ -624,7 +624,7 @@
"RescanAfterRefreshHelpText": "A szerző frissítése után vizsgálja át a szerzői mappát",
"ReplaceIllegalCharactersHelpText": "Helyettesítse az illegális karaktereket. Ha nincs bejelölve, akkor a Readarr eltávolítja őket",
"RenameBooks": "Könyvek átnevezése",
"ReleaseProfiles": "Kiadási profilok",
"ReleaseProfiles": "Release profilok",
"RefreshInformation": "Információk frissítése",
"RefreshAuthor": "Szerző frissítése",
"ReadarrSupportsMultipleListsForImportingBooksAndAuthorsIntoTheDatabase": "A Readarr több listát is támogat a Könyvek és Szerzők adatbázisba történő importálásához.",
@ -673,7 +673,7 @@
"NotMonitored": "Nincs monitorozva",
"ShowBookTitleHelpText": "Mutasd a filmcímet a poszter alatt",
"ShowReleaseDate": "Megjelenés dátuma",
"ShowTitle": "Cím megjelenítése",
"ShowTitle": "Cím mutatása",
"TheAuthorFolderAndAllOfItsContentWillBeDeleted": "A '{0}' film mappája és annak tartalma törlésre kerül.",
"BookMonitoring": "Könyv Figyelés",
"BooksTotal": "Könyvek ({0})",
@ -685,11 +685,11 @@
"SeriesTotal": "Sorozat ({0})",
"TooManyBooks": "Hiányzik valamelyik, vagy túl sok a könyv? Módosíts vagy hozzon létre újat",
"BlocklistRelease": "Blokklista Release",
"NoHistoryBlocklist": "Nincs blokkolási előzménylista",
"NoHistoryBlocklist": "Nincs előzmény a tiltólistán",
"Blocklist": "Feketelista",
"RemoveFromBlocklist": "Eltávolítás a feketelistáról",
"UnableToLoadBlocklist": "Nem sikerült betölteni a feketelistát",
"Component": "Komponens",
"Component": "Összetevő",
"Level": "Szint",
"ReleaseBranchCheckOfficialBranchMessage": "A(z) {0} nem érvényes Readarr frissítési ágazat, ezért nem kap frissítéseket",
"Time": "Idő",
@ -698,7 +698,7 @@
"ShouldMonitorExistingHelpText": "A listán szereplő azon könyvek automatikus figyelése, amelyek már szerepelnek a Readarrban",
"MassBookSearch": "Tömeges könyvkeresés",
"MassBookSearchWarning": "Biztosan tömeges könyvkeresést kíván végrehajtani {0} könyveknél?",
"SelectAll": "Összes kijelölése",
"SelectAll": "Mindet kiválaszt",
"TheFollowingFilesWillBeDeleted": "A következő fájlok törölve lesznek:",
"UnselectAll": "Minden kijelölés megszüntetése",
"AuthorIndex": "Szerzői Index",
@ -761,7 +761,7 @@
"UserAgentProvidedByTheAppThatCalledTheAPI": "Az API-t hívó alkalmazás biztosítja a User-Agent szolgáltatást",
"Yesterday": "Tegnap",
"IndexerJackettAll": "A nem támogatott Jackett „összes” végpontot használó indexelők: {0}",
"DownloadClientsSettingsSummary": "Letöltőkliensek, letöltések kezelése, és távoli elérési útvonalak",
"DownloadClientsSettingsSummary": "Kliensek letöltése, letöltéskezelés és távoli útvonalleképezések",
"Duration": "Időtartam",
"ForeignId": "Külföldi azonosító",
"ProxyCheckBadRequestMessage": "Proxy tesztelése sikertelen. Állapotkód: {0}",
@ -782,10 +782,10 @@
"IndexerRssHealthCheckNoIndexers": "Nincs elérhető indexer RSS szinkronizálással, így a Readarr nem fogja automatikusan megragadni az új kiadásokat",
"IndexerSearchCheckNoAvailableIndexersMessage": "Az összes keresésre képes indexer átmenetileg nem elérhető, a legutóbbi indexelő hibák miatt",
"Lists": "Listák",
"Metadata": "metaadat",
"Monitor": "Monitorozni",
"Metadata": "Metaadat",
"Monitor": "Monitor",
"MountCheckMessage": "A szerzőt tartalmazó mappa csak olvasható: ",
"Queued": "Sorba helyezve",
"Queued": "Sorban",
"RemotePathMappingCheckFileRemoved": "A(z) {0} fájlt a feldolgozás során eltávolították.",
"RemotePathMappingCheckFilesGenericPermissions": "A letöltőkliens {0} jelentett fájljait a(z) {1} fájlba, de a Readarr nem látja ezt a könyvtárat. Lehet, hogy módosítania kell a mappa engedélyeit.",
"RemotePathMappingCheckFilesWrongOSPath": "A távoli letöltőkliens {0} fájlokat jelentett a(z) {1} fájlban, de ez nem érvényes {2} elérési út. Ellenőrizze a távoli elérési utak hozzárendelését és a letöltőkliens beállításait.",
@ -816,14 +816,14 @@
"HealthNoIssues": "Nincs hiba a konfigurációval",
"ImportListStatusCheckAllClientMessage": "Az összes lista elérhetetlen, hiba miatt",
"IndexerStatusCheckSingleClientMessage": "Indexerek elérhetetlenek a következő hiba miatt: {0}",
"MediaManagement": "Média Kezelés",
"MediaManagement": "Médiakezelés",
"ProxyCheckFailedToTestMessage": "Proxy tesztelése sikertelen: {0}",
"RefreshAndScan": "Frissítés & Keresés",
"RefreshAndScan": "Frissítés és Keresés",
"RemotePathMappingCheckDownloadPermissions": "A Readarr láthatja, de nem fér hozzá a letöltött filmhez {0}. Valószínűleg engedélyezési hiba.",
"RootFolderCheckMultipleMessage": "Több gyökérmappa hiányzik: {0}",
"SettingsRemotePathMappingLocalPath": "Helyi útvonal",
"SizeLimit": "Méretkorlát",
"Started": "Elkezdődött",
"Started": "Elindult",
"TimeLeft": "Hátralévő idő",
"UpdateCheckStartupNotWritableMessage": "A frissítés nem telepíthető, mert a (z) „{0}” indítási mappát a „{1}” felhasználó nem írhatja.",
"UpdateCheckStartupTranslocationMessage": "Nem lehet telepíteni a frissítést, mert a (z) „{0}” indítási mappa az Alkalmazások Transzlokációs mappájában található.",
@ -856,17 +856,17 @@
"ManualImportSelectEdition": "Kézi importálás Válaszd ki a Kiadást",
"Database": "Adatbázis",
"ApplicationURL": "Alkalmazás URL",
"ApplicationUrlHelpText": "Az alkalmazás külső URL-címe, beleértve a http(s)://-t, a portot és az URL-alapot",
"ApplicationUrlHelpText": "Ennek az alkalmazásnak a külső URL-címe, beleértve a http-eket",
"ChooseImportMethod": "Importálási mód kiválasztása",
"ClickToChangeReleaseGroup": "Kattintson a kiadási csoport módosításához",
"HardlinkCopyFiles": "Hardlinkelés/Fájl(ok) Másolása",
"MoveFiles": "Fájl(ok) mozgatása",
"MoveFiles": "Fájlok áthelyezése",
"OnApplicationUpdate": "Alkalmazásfrissítésről",
"OnApplicationUpdateHelpText": "Alkalmazásfrissítésről",
"Theme": "Téma",
"ThemeHelpText": "Változtasd meg az alkalmazás felhasználói felület témáját, az „Auto” téma az operációs rendszer témáját használja a Világos vagy Sötét mód beállításához. A Theme.Park ihlette",
"ThemeHelpText": "Változtassa meg az alkalmazás felhasználói felület témáját, az \"Auto\" téma az operációs rendszer témáját használja a Világos vagy Sötét mód beállításához. A Theme.Park ihlette",
"EnableRssHelpText": "Akkor használatos, amikor a Radarr rendszeresen keres kiadásokat az RSS Sync segítségével",
"MinimumCustomFormatScore": "Minimum Egyéni Formátum száma",
"MinimumCustomFormatScore": "Minimális egyéni formátum pontszám",
"BypassIfHighestQuality": "Kihagyás ha a legjobb minőség elérhető",
"CustomFormatScore": "Egyéni formátum pontszám",
"CloneCustomFormat": "Egyéni formátum klónozása",
@ -880,7 +880,7 @@
"DeleteCustomFormatMessageText": "Biztosan törölni akarod a/az '{0}' egyéni formátumot?",
"DeleteFormatMessageText": "Biztosan törlöd a(z) {0} formátumú címkét?",
"ExportCustomFormat": "Egyéni formátum exportálása",
"Formats": "Formátumok",
"Formats": "Formátum",
"IncludeCustomFormatWhenRenamingHelpText": "Tartalmazza a(z) {Custom Formats} átnevezési formátumot",
"MinFormatScoreHelpText": "A letöltéshez engedélyezett minimális egyéni formátum pontszám",
"NegateHelpText": "Ha be van jelölve, az egyéni formátum nem lesz érvényes, ha ez a(z) {0} feltétel megegyezik.",
@ -910,14 +910,14 @@
"RemoveSelectedItemsQueueMessageText": "Biztosan el akar távolítani {0} elemet a várólistáról?",
"Required": "Kötelező",
"ApiKeyValidationHealthCheckMessage": "Kérlek frissítsd az API kulcsot, ami legalább {0} karakter hosszú. Ezt megteheted a Beállításokban, vagy a config file-ban",
"NoEventsFound": "Nem található esemény",
"NoEventsFound": "Nem található események",
"ResetQualityDefinitions": "Állítsd vissza a minőségi meghatározásokat",
"DeleteRemotePathMapping": "Távoli Elérési Útvonal Módosítása",
"BlocklistReleaseHelpText": "Megakadályozza, hogy a Lidarr automatikusan letöltse újra",
"ApplyTagsHelpTextHowToApplyAuthors": "Hogyan adjunk hozzá címkéket a kiválasztott filmhez",
"ApplyTagsHelpTextReplace": "Csere: Cserélje ki a címkéket a beírt címkékre (az összes címke törléséhez ne adjon meg címkéket)",
"ApplyTagsHelpTextReplace": "Csere: Cserélje ki a címkéket a megadott címkékkel (az összes címke törléséhez ne írjon be címkéket)",
"AutomaticAdd": "Automatikus hozzáadás",
"EditSelectedImportLists": "Kiválasztott import listák szerkesztése",
"EditSelectedImportLists": "Kijelölt importálási listák szerkesztése",
"RemoveFailed": "Eltávolítás nem sikerült",
"RemoveFailedDownloads": "Sikertelen letöltések eltávolítása",
"SetTags": "Címkék beállítása",
@ -935,34 +935,34 @@
"ApplyTagsHelpTextRemove": "Eltávolítás: Távolítsa el a beírt címkéket",
"CountIndexersSelected": "{0} Indexelő(k) kiválasztva",
"DeleteConditionMessageText": "Biztosan törölni akarod a '{0}' feltételt?",
"DeleteSelectedDownloadClients": "Letöltőkliens Törlése",
"DeleteSelectedImportLists": "Importlista törlése",
"DeleteSelectedIndexers": "Indexer Törlése",
"DeleteSelectedDownloadClients": "Letöltési kliens(ek) törlése",
"DeleteSelectedImportLists": "Importálási lista(k) törlése",
"DeleteSelectedIndexers": "Indexelő(k) törlése",
"DownloadClientTagHelpText": "Csak olyan filmekhez használja ezt az indexelőt, amelyek legalább egy megfelelő címkével rendelkeznek. Hagyja üresen az összes filmhez való használathoz.",
"EditSelectedDownloadClients": "Kiválasztott letöltési kliensek szerkesztése",
"EditSelectedDownloadClients": "Kijelölt letöltési kliensek szerkesztése",
"EditSelectedIndexers": "Kiválasztott indexelők szerkesztése",
"ExistingTag": "Meglévő Címke",
"Negated": "Megtagadva",
"ExistingTag": "Létező címke",
"Negated": "Negatív",
"No": "Nem",
"NoChange": "Nincs változás",
"RemoveCompletedDownloads": "Befejezett letöltések eltávolítása",
"RemovingTag": "Címke eltávolítása",
"NextExecution": "Következő végrehajtás",
"NotificationStatusAllClientHealthCheckMessage": "Összes alkalmazás elérhetetlen hiba miatt",
"NotificationStatusAllClientHealthCheckMessage": "Az összes értesítés nem érhető el hibák miatt",
"NotificationStatusSingleClientHealthCheckMessage": "Az alkalmazás nem áll rendelkezésre az alábbi hibák miatt: {0}",
"Small": "kicsi",
"Small": "Kicsi",
"SkipRedownloadHelpText": "Megakadályozza, hogy a Lidarr megpróbálja letölteni az eltávolított elemek alternatív kiadásait",
"Events": "Események",
"FreeSpace": "Szabad Tárhely",
"NoResultsFound": "Nem eredményezett találatot",
"SomeResultsAreHiddenByTheAppliedFilter": "Néhány találat nem látható az alkalmazott szűrők miatt",
"NoResultsFound": "Nincs találat",
"SomeResultsAreHiddenByTheAppliedFilter": "Néhány eredményt elrejtett az alkalmazott szűrő",
"System": "Rendszer",
"TotalSpace": "Összesített terület",
"Ui": "Felület",
"ConnectionLost": "Kapcsolódás Elveszett",
"ConnectionLostReconnect": "A Radarr megpróbál automatikusan csatlakozni, vagy kattints a frissítés gombra.",
"ConnectionLostToBackend": "A Radarr elvesztette kapcsolatát a háttérrendszerrel, a funkciók helyreállításához frissíts.",
"RecentChanges": "Friss változtatások",
"ConnectionLost": "A kapcsolat megszakadt",
"ConnectionLostReconnect": "A(z) {appName} automatikusan megpróbál csatlakozni, vagy kattintson az újratöltés gombra lent.",
"ConnectionLostToBackend": "A(z) {appName} megszakadt a kapcsolat a háttérrendszerrel, ezért újra kell tölteni a működés visszaállításához.",
"RecentChanges": "Friss változások",
"WhatsNew": "Mi az újdonság?",
"Large": "Óriási",
"LastDuration": "Utolsó időtartam",
@ -977,7 +977,7 @@
"Medium": "Közepes",
"AutoAdd": "Automatikus hozzáadás",
"ExtraFileExtensionsHelpText": "Az importálandó extra fájlok vesszővel lesznek elválasztva (.nfo .nfo-orig néven lesz importálva)",
"ExtraFileExtensionsHelpTextsExamples": "Például: '.sub, .nfo' vagy 'sub, nfo'",
"ExtraFileExtensionsHelpTextsExamples": "Példák: \".sub, .nfo\" vagy \"sub,nfo\"",
"Implementation": "Végrehajtás",
"Clone": "Klón",
"AppUpdated": "{appName} frissítve",
@ -988,5 +988,20 @@
"ManageIndexers": "Indexelők kezelése",
"ManageImportLists": "Importálási listák kezelése",
"NoIndexersFound": "Nem található indexelő",
"AutoRedownloadFailedFromInteractiveSearch": "Az újraletöltés nem sikerült az interaktív keresésből"
"AutoRedownloadFailedFromInteractiveSearch": "Az újraletöltés nem sikerült az interaktív keresésből",
"DeleteRemotePathMappingMessageText": "Biztosan törli ezt a távoli útvonal-leképezést?",
"AutomaticUpdatesDisabledDocker": "Az automatikus frissítések közvetlenül nem támogatottak a Docker frissítési mechanizmus használatakor. Frissítenie kell a tároló képét a {appName} alkalmazáson kívül, vagy szkriptet kell használnia",
"DeleteSelectedDownloadClientsMessageText": "Biztosan törölni szeretné a kiválasztott {count} letöltési klienst?",
"SmartReplace": "Intelligens csere",
"DeleteSelectedImportListsMessageText": "Biztosan törölni szeretne {count} kiválasztott importlistát?",
"DeleteSelectedIndexersMessageText": "Biztosan törölni szeretne {count} kiválasztott indexelőt?",
"ManageClients": "Ügyfelek kezelése",
"ManageDownloadClients": "Letöltési kliensek kezelése",
"DownloadClientQbittorrentSettingsContentLayout": "Tartalom elrendezése",
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Függetlenül attól, hogy a qBittorrent konfigurált tartalomelrendezését használja, az eredeti elrendezést a torrentből, vagy mindig hozzon létre egy almappát (qBittorrent 4.3.2)",
"InvalidUILanguage": "A felhasználói felület érvénytelen nyelvre van állítva, javítsa ki, és mentse el a beállításait",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Automatikusan keressen és kíséreljen meg egy másik kiadást letölteni, ha az interaktív keresésből sikertelen kiadást ragadtak meg",
"AppUpdatedVersion": "{appName} frissítve lett `{version}` verzióra, ahhoz hogy a legutóbbi változtatások életbelépjenek, töltsd újra a {appName}-t",
"CustomFormatsSpecificationRegularExpression": "Reguláris kifejezés",
"SourceTitle": "Eredeti cím"
}

@ -71,7 +71,7 @@
"CreateGroup": "Búðu til hóp",
"CutoffHelpText": "Þegar þessum gæðum er náð mun Radarr ekki lengur hlaða niður kvikmyndum",
"CutoffUnmet": "Cut-off Ómetið",
"DBMigration": "DB fólksflutningar",
"DatabaseMigration": "DB fólksflutningar",
"Dates": "Dagsetningar",
"DelayProfile": "Seinka prófíl",
"DelayProfiles": "Seinka snið",

@ -76,7 +76,7 @@
"CreateGroup": "Crea gruppo",
"CutoffHelpText": "Una volta raggiunta questa qualità, Radarr non scaricherà più film",
"CutoffUnmet": "Soglia Non Raggiunta",
"DBMigration": "Migrazione DB",
"DatabaseMigration": "Migrazione DB",
"Dates": "Date",
"DelayProfile": "Profilo di Ritardo",
"DelayProfiles": "Profili di Ritardo",
@ -730,5 +730,6 @@
"DeleteCondition": "Cancella Condizione",
"ConnectionLost": "Connessione Persa",
"AppUpdated": "{appName} Aggiornato",
"AllResultsAreHiddenByTheAppliedFilter": "Tutti i risultati sono nascosti dal filtro applicato"
"AllResultsAreHiddenByTheAppliedFilter": "Tutti i risultati sono nascosti dal filtro applicato",
"AutoRedownloadFailed": "Download fallito"
}

@ -377,7 +377,7 @@
"CreateGroup": "グループを作成",
"CutoffHelpText": "この品質に達すると、Radarrは映画をダウンロードしなくなります",
"CutoffUnmet": "カットオフアンメット",
"DBMigration": "DB移行",
"DatabaseMigration": "DB移行",
"Dates": "日付",
"DelayProfile": "遅延プロファイル",
"DelayProfiles": "遅延プロファイル",

@ -114,7 +114,7 @@
"CreateGroup": "그룹 만들기",
"CutoffHelpText": "이 품질에 도달하면 Radarr는 더 이상 영화를 다운로드하지 않습니다.",
"CutoffUnmet": "컷오프 미충족",
"DBMigration": "DB 마이그레이션",
"DatabaseMigration": "DB 마이그레이션",
"Dates": "날짜",
"DelayProfile": "지연 프로필",
"DelayProfiles": "지연 프로필",

@ -71,7 +71,7 @@
"CreateGroup": "Groep aanmaken",
"CutoffHelpText": "Wanneer deze kwaliteit is behaald, zal Radarr niet langer films downloaden",
"CutoffUnmet": "Onbereikte Drempel",
"DBMigration": "DB Migratie",
"DatabaseMigration": "DB Migratie",
"Dates": "Datum en tijd",
"DelayProfile": "Vertragingsprofiel",
"DelayProfiles": "Vertragingsprofielen",

@ -106,7 +106,7 @@
"CreateGroup": "Stworzyć grupę",
"CutoffHelpText": "Po osiągnięciu tej jakości Radarr nie będzie już pobierał filmów",
"CutoffUnmet": "Odcięcie niespełnione",
"DBMigration": "Migracja bazy danych",
"DatabaseMigration": "Migracja bazy danych",
"Dates": "Daktyle",
"DelayProfile": "Profil opóźnienia",
"DelayProfiles": "Profile opóźnień",

@ -191,7 +191,7 @@
"CreateGroup": "Criar grupo",
"CutoffHelpText": "Quando esta qualidade for alcançada, o Readarr não transferirá mais filmes",
"CutoffUnmet": "Limite não-correspondido",
"DBMigration": "Migração da base de dados",
"DatabaseMigration": "Migração da base de dados",
"DeleteBackup": "Eliminar cópia de segurança",
"DeleteBackupMessageText": "Tem a certeza que quer eliminar a cópia de segurança \"{name}\"?",
"DeleteDelayProfile": "Eliminar perfil de atraso",

@ -101,7 +101,7 @@
"CreateGroup": "Criar grupo",
"CutoffHelpText": "Assim que esta qualidade for alcançada, o Readarr não baixará mais livros",
"CutoffUnmet": "Corte não atendido",
"DBMigration": "Migração de banco de dados",
"DatabaseMigration": "Migração de banco de dados",
"Dates": "Datas",
"DelayProfile": "Perfil de atraso",
"DelayProfiles": "Perfis de atraso",
@ -290,7 +290,7 @@
"RemoveCompletedDownloadsHelpText": "Remover downloads importados do histórico do cliente de download",
"RemoveFailedDownloadsHelpText": "Remova downloads com falha do histórico do cliente de download",
"RemoveFilter": "Remover filtro",
"RemoveFromDownloadClient": "Remover do cliente de download",
"RemoveFromDownloadClient": "Remover do Cliente de Download",
"RemoveFromQueue": "Remover da fila",
"RemoveHelpTextWarning": "Isso removerá o download e o(s) arquivo(s) do cliente de download.",
"RemoveSelected": "Remover Selecionado",
@ -360,7 +360,7 @@
"SslPortHelpTextWarning": "Requer reinício para ter efeito",
"StandardBookFormat": "Formato de livro padrão",
"StartTypingOrSelectAPathBelow": "Comece a digitar ou selecione um caminho abaixo",
"StartupDirectory": "Diretório de inicialização",
"StartupDirectory": "Diretório de Inicialização",
"Status": "Status",
"StatusEndedEnded": "Terminado",
"Style": "Estilo",
@ -883,7 +883,7 @@
"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",
"Conditions": "'Condições'",
"Conditions": "Condições",
"CopyToClipboard": "Copiar para a área de transferência",
"CustomFormat": "Formato personalizado",
"CustomFormatSettings": "Configurações de formato personalizado",
@ -942,7 +942,7 @@
"EditSelectedImportLists": "Editar listas de importação selecionadas",
"EditSelectedIndexers": "Editar indexadores selecionados",
"Implementation": "Implementação",
"ManageClients": "Gerenciar clientes",
"ManageClients": "Gerenciar Clientes",
"ManageIndexers": "Gerenciar indexadores",
"ManageLists": "Gerenciar listas",
"NoChange": "Sem alteração",
@ -1029,5 +1029,29 @@
"SourceTitle": "Título da Fonte",
"AutoRedownloadFailed": "Falha no Novo Download",
"AutoRedownloadFailedFromInteractiveSearch": "Falha no Novo Download da Pesquisa Interativa",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Procure e tente baixar automaticamente uma versão diferente quando a versão com falha for obtida da pesquisa interativa"
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Procure e tente baixar automaticamente uma versão diferente quando a versão com falha for obtida da pesquisa interativa",
"BlocklistAndSearchMultipleHint": "Iniciar pesquisas por substitutos após adicionar a lista de bloqueio",
"BlocklistMultipleOnlyHint": "Adiciona a Lista de bloqueio sem procurar substitutos",
"BlocklistOnly": "Apenas Adicionar a Lista de Bloqueio",
"ChangeCategoryMultipleHint": "Altera os downloads para a 'Categoria Pós-Importação' do Cliente de Download",
"CustomFormatsSpecificationRegularExpression": "Expressão Regular",
"IgnoreDownload": "Ignorar Download",
"IgnoreDownloadHint": "Impede que {appName} processe ainda mais este download",
"IgnoreDownloads": "Ignorar Downloads",
"IgnoreDownloadsHint": "Impede que {appName} processe ainda mais esses downloads",
"RemoveQueueItem": "Remover - {sourceTitle}",
"RemoveQueueItemConfirmation": "Tem certeza de que deseja remover '{sourceTitle}' da fila?",
"RemoveQueueItemRemovalMethod": "Método de Remoção",
"RemoveQueueItemsRemovalMethodHelpTextWarning": "'Remover do Cliente de Download' removerá os downloads e os arquivos do cliente de download.",
"BlocklistAndSearch": "Lista de Bloqueio e Pesquisa",
"BlocklistAndSearchHint": "Inicie uma busca por um substituto após adicionar a lista de bloqueio",
"BlocklistOnlyHint": "Adiciona a Lista de bloqueio sem procurar um substituto",
"ChangeCategory": "Alterar Categoria",
"ChangeCategoryHint": "Altera o download para a 'Categoria Pós-Importação' do Cliente de Download",
"CustomFormatsSpecificationRegularExpressionHelpText": "RegEx do Formato Personalizado Não Diferencia Maiúsculas de Minúsculas",
"DoNotBlocklist": "Não coloque na lista de bloqueio",
"DoNotBlocklistHint": "Remover sem colocar na lista de bloqueio",
"RemoveFromDownloadClientHint": "Remove download e arquivo(s) do cliente de download",
"RemoveMultipleFromDownloadClientHint": "Remove downloads e arquivos do cliente de download",
"RemoveQueueItemRemovalMethodHelpTextWarning": "'Remover do cliente de download' removerá o download e os arquivos do cliente de download."
}

@ -131,7 +131,7 @@
"CreateGroup": "Creați un grup",
"CutoffHelpText": "Odată atinsă această calitate, Radarr nu va mai descărca filme",
"CutoffUnmet": "Calitate maximă neatinsă",
"DBMigration": "Migrarea BD",
"DatabaseMigration": "Migrarea BD",
"Dates": "Date",
"DelayProfile": "Profile de întârziere",
"DelayProfiles": "Profile de întârziere",

@ -73,7 +73,7 @@
"CreateGroup": "Создать группу",
"CutoffHelpText": "Radarr перестанет скачивать фильмы после достижения указанного качества",
"CutoffUnmet": "Порог невыполнен",
"DBMigration": "Перенос БД",
"DatabaseMigration": "Перенос БД",
"Dates": "Даты",
"DelayProfile": "Профиль приостановки",
"DelayProfiles": "Профиль задержки",

@ -78,7 +78,7 @@
"CreateGroup": "Skapa grupp",
"CutoffHelpText": "När denna kvalitet har uppnåtts kommer Readarr inte längre att ladda ner filmer",
"CutoffUnmet": "Avgränsande ej tillgodosedd",
"DBMigration": "DB Migration",
"DatabaseMigration": "DB Migration",
"Dates": "Datum",
"DelayProfiles": "Fördröjande profiler",
"DelayingDownloadUntilInterp": "Försenar nedladdningen till {0} kl. {1}",

@ -77,7 +77,7 @@
"CreateGroup": "สร้างกลุ่ม",
"CutoffHelpText": "เมื่อถึงคุณภาพนี้แล้ว Radarr จะไม่ดาวน์โหลดภาพยนตร์อีกต่อไป",
"CutoffUnmet": "ตัด Unmet",
"DBMigration": "การย้ายฐานข้อมูล",
"DatabaseMigration": "การย้ายฐานข้อมูล",
"Dates": "วันที่",
"DelayProfile": "โปรไฟล์ล่าช้า",
"DelayProfiles": "โปรไฟล์ล่าช้า",

@ -72,7 +72,7 @@
"CreateGroup": "Grup oluştur",
"CutoffHelpText": "Bu kaliteye ulaşıldığında Radarr artık film indirmeyecektir",
"CutoffUnmet": "Kesme Karşılanmadı",
"DBMigration": "DB Geçişi",
"DatabaseMigration": "DB Geçişi",
"Dates": "Tarih",
"DelayProfile": "Gecikme Profilleri",
"DelayProfiles": "Gecikme Profilleri",

@ -23,8 +23,8 @@
"CloneProfile": "Клонувати профіль",
"Close": "Закрити",
"AddingTag": "Додавання тегу",
"AddListExclusion": "Додати винятки списку",
"About": "Деталі",
"AddListExclusion": "Додати виняток зі списку",
"About": "Про нас",
"Actions": "Дії",
"All": "Всі",
"Calendar": "Календар",
@ -34,7 +34,7 @@
"Connect": "Підключити",
"CreateGroup": "Створити групу",
"Dates": "Дати",
"DBMigration": "Міграція БД",
"DatabaseMigration": "Міграція БД",
"DelayingDownloadUntilInterp": "Завантаження відкладається до {0} о {1}",
"DelayProfile": "Профіль затримки",
"DelayProfiles": "Профілі затримки",
@ -644,5 +644,6 @@
"NoChange": "Без змін",
"ResetQualityDefinitions": "Скинути визначення якості",
"SetTags": "Встановити теги",
"AddNew": "Додати новий"
"AddNew": "Додати",
"Activity": "Активність"
}

@ -79,7 +79,7 @@
"CreateGroup": "Tạo nhóm",
"CutoffHelpText": "Khi đạt đến chất lượng này Radarr sẽ không tải phim nữa",
"CutoffUnmet": "Cắt bỏ chưa được đáp ứng",
"DBMigration": "Di chuyển DB",
"DatabaseMigration": "Di chuyển DB",
"Dates": "ngày",
"DelayingDownloadUntilInterp": "Trì hoãn tải xuống cho đến {0} lúc {1}",
"Delete": "Xóa bỏ",

@ -57,7 +57,7 @@
"CreateGroup": "创建组",
"CutoffHelpText": "一旦质量满足则Radarr不会再下载影片",
"CutoffUnmet": "未达截止条件",
"DBMigration": "数据库迁移版本",
"DatabaseMigration": "数据库迁移版本",
"Dates": "日期",
"DelayProfile": "延时配置",
"DelayProfiles": "延迟配置",

@ -27,6 +27,7 @@ namespace NzbDrone.Core.Queue
public RemoteBook RemoteBook { get; set; }
public DownloadProtocol Protocol { get; set; }
public string DownloadClient { get; set; }
public bool DownloadClientHasPostImportCategory { get; set; }
public string Indexer { get; set; }
public string OutputPath { get; set; }
public string ErrorMessage { get; set; }

@ -89,7 +89,8 @@ namespace NzbDrone.Core.Queue
DownloadClient = trackedDownload.DownloadItem.DownloadClientInfo.Name,
Indexer = trackedDownload.Indexer,
OutputPath = trackedDownload.DownloadItem.OutputPath.ToString(),
DownloadForced = downloadForced
DownloadForced = downloadForced,
DownloadClientHasPostImportCategory = trackedDownload.DownloadItem.DownloadClientInfo.HasPostImportCategory
};
queue.Id = HashConverter.GetHashInt31($"trackedDownload-{trackedDownload.DownloadClient}-{trackedDownload.DownloadItem.DownloadId}-book{book?.Id ?? 0}");

@ -41,7 +41,7 @@ namespace NzbDrone.Mono.Test.EnvironmentInfo.VersionAdapters
versionName.FullName.Should().Be("macOS " + versionString);
}
[TestCase]
[Test]
public void should_detect_server()
{
var fileContent = File.ReadAllText(GetTestPath("Files/macOS/SystemVersion.plist"));
@ -63,7 +63,7 @@ namespace NzbDrone.Mono.Test.EnvironmentInfo.VersionAdapters
versionName.Name.Should().Be("macOS Server");
}
[TestCase]
[Test]
public void should_return_null_if_folder_doesnt_exist()
{
Mocker.GetMock<IDiskProvider>()

@ -69,31 +69,64 @@ namespace Readarr.Api.V1.Queue
}
[RestDeleteById]
public void RemoveAction(int id, bool removeFromClient = true, bool blocklist = false, bool skipRedownload = false)
public void RemoveAction(int id, bool removeFromClient = true, bool blocklist = false, bool skipRedownload = false, bool changeCategory = false)
{
var trackedDownload = Remove(id, removeFromClient, blocklist, skipRedownload);
var pendingRelease = _pendingReleaseService.FindPendingQueueItem(id);
if (trackedDownload != null)
if (pendingRelease != null)
{
_trackedDownloadService.StopTracking(trackedDownload.DownloadItem.DownloadId);
Remove(pendingRelease);
return;
}
var trackedDownload = GetTrackedDownload(id);
if (trackedDownload == null)
{
throw new NotFoundException();
}
Remove(trackedDownload, removeFromClient, blocklist, skipRedownload, changeCategory);
_trackedDownloadService.StopTracking(trackedDownload.DownloadItem.DownloadId);
}
[HttpDelete("bulk")]
public object RemoveMany([FromBody] QueueBulkResource resource, [FromQuery] bool removeFromClient = true, [FromQuery] bool blocklist = false, [FromQuery] bool skipRedownload = false)
public object RemoveMany([FromBody] QueueBulkResource resource, [FromQuery] bool removeFromClient = true, [FromQuery] bool blocklist = false, [FromQuery] bool skipRedownload = false, [FromQuery] bool changeCategory = false)
{
var trackedDownloadIds = new List<string>();
var pendingToRemove = new List<NzbDrone.Core.Queue.Queue>();
var trackedToRemove = new List<TrackedDownload>();
foreach (var id in resource.Ids)
{
var trackedDownload = Remove(id, removeFromClient, blocklist, skipRedownload);
var pendingRelease = _pendingReleaseService.FindPendingQueueItem(id);
if (pendingRelease != null)
{
pendingToRemove.Add(pendingRelease);
continue;
}
var trackedDownload = GetTrackedDownload(id);
if (trackedDownload != null)
{
trackedDownloadIds.Add(trackedDownload.DownloadItem.DownloadId);
trackedToRemove.Add(trackedDownload);
}
}
foreach (var pendingRelease in pendingToRemove.DistinctBy(p => p.Id))
{
Remove(pendingRelease);
}
foreach (var trackedDownload in trackedToRemove.DistinctBy(t => t.DownloadItem.DownloadId))
{
Remove(trackedDownload, removeFromClient, blocklist, skipRedownload, changeCategory);
trackedDownloadIds.Add(trackedDownload.DownloadItem.DownloadId);
}
_trackedDownloadService.StopTracking(trackedDownloadIds);
return new { };
@ -206,26 +239,26 @@ namespace Readarr.Api.V1.Queue
}
}
private TrackedDownload Remove(int id, bool removeFromClient, bool blocklist, bool skipRedownload)
private void Remove(NzbDrone.Core.Queue.Queue pendingRelease)
{
var pendingRelease = _pendingReleaseService.FindPendingQueueItem(id);
_blocklistService.Block(pendingRelease.RemoteBook, "Pending release manually blocklisted");
_pendingReleaseService.RemovePendingQueueItems(pendingRelease.Id);
}
if (pendingRelease != null)
private TrackedDownload Remove(TrackedDownload trackedDownload, bool removeFromClient, bool blocklist, bool skipRedownload, bool changeCategory)
{
if (removeFromClient)
{
_blocklistService.Block(pendingRelease.RemoteBook, "Pending book manually blocklisted");
_pendingReleaseService.RemovePendingQueueItems(pendingRelease.Id);
return null;
}
var downloadClient = _downloadClientProvider.Get(trackedDownload.DownloadClient);
var trackedDownload = GetTrackedDownload(id);
if (downloadClient == null)
{
throw new BadRequestException();
}
if (trackedDownload == null)
{
throw new NotFoundException();
downloadClient.RemoveItem(trackedDownload.DownloadItem, true);
}
if (removeFromClient)
else if (changeCategory)
{
var downloadClient = _downloadClientProvider.Get(trackedDownload.DownloadClient);
@ -234,7 +267,7 @@ namespace Readarr.Api.V1.Queue
throw new BadRequestException();
}
downloadClient.RemoveItem(trackedDownload.DownloadItem, true);
downloadClient.MarkItemAsImported(trackedDownload.DownloadItem);
}
if (blocklist)
@ -242,7 +275,7 @@ namespace Readarr.Api.V1.Queue
_failedDownloadService.MarkAsFailed(trackedDownload.DownloadItem.DownloadId, skipRedownload);
}
if (!removeFromClient && !blocklist)
if (!removeFromClient && !blocklist && !changeCategory)
{
if (!_ignoredDownloadService.IgnoreDownload(trackedDownload))
{

@ -34,6 +34,7 @@ namespace Readarr.Api.V1.Queue
public string DownloadId { get; set; }
public DownloadProtocol Protocol { get; set; }
public string DownloadClient { get; set; }
public bool DownloadClientHasPostImportCategory { get; set; }
public string Indexer { get; set; }
public string OutputPath { get; set; }
public bool DownloadForced { get; set; }
@ -74,6 +75,7 @@ namespace Readarr.Api.V1.Queue
DownloadId = model.DownloadId,
Protocol = model.Protocol,
DownloadClient = model.DownloadClient,
DownloadClientHasPostImportCategory = model.DownloadClientHasPostImportCategory,
Indexer = model.Indexer,
OutputPath = model.OutputPath,
DownloadForced = model.DownloadForced

@ -90,7 +90,7 @@ namespace Readarr.Api.V1.System.Backup
}
[HttpPost("restore/upload")]
[RequestFormLimits(MultipartBodyLengthLimit = 500000000)]
[RequestFormLimits(MultipartBodyLengthLimit = 1000000000)]
public object UploadAndRestore()
{
var files = Request.Form.Files;

@ -6365,6 +6365,14 @@
"type": "boolean",
"default": false
}
},
{
"name": "changeCategory",
"in": "query",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
@ -6403,6 +6411,14 @@
"type": "boolean",
"default": false
}
},
{
"name": "changeCategory",
"in": "query",
"schema": {
"type": "boolean",
"default": false
}
}
],
"requestBody": {
@ -12418,6 +12434,9 @@
"type": "string",
"nullable": true
},
"downloadClientHasPostImportCategory": {
"type": "boolean"
},
"indexer": {
"type": "string",
"nullable": true

Loading…
Cancel
Save