From 2737937d3794f7f8775c4947b5f4fe3f8a88daa0 Mon Sep 17 00:00:00 2001 From: Robin Dadswell <19610103+RobinDadswell@users.noreply.github.com> Date: Wed, 17 Nov 2021 11:07:33 +0000 Subject: [PATCH 1/5] Fixed: Blocklist error on blocklisting release --- src/NzbDrone.Core/Blocklisting/BlocklistService.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/Blocklisting/BlocklistService.cs b/src/NzbDrone.Core/Blocklisting/BlocklistService.cs index c22c94a3c..419e89cf6 100644 --- a/src/NzbDrone.Core/Blocklisting/BlocklistService.cs +++ b/src/NzbDrone.Core/Blocklisting/BlocklistService.cs @@ -85,7 +85,8 @@ namespace NzbDrone.Core.Blocklisting Size = remoteMovie.Release.Size, Indexer = remoteMovie.Release.Indexer, Protocol = remoteMovie.Release.DownloadProtocol, - Message = message + Message = message, + Languages = remoteMovie.ParsedMovieInfo.Languages }; if (remoteMovie.Release is TorrentInfo torrentRelease) From 498d9086b5ece68671e997e48922b01afdded6c3 Mon Sep 17 00:00:00 2001 From: bakerboy448 <55419169+bakerboy448@users.noreply.github.com> Date: Wed, 17 Nov 2021 09:54:01 -0600 Subject: [PATCH 2/5] Fixed: Only blocklist pending releases when option is checked (cherry picked from commit d11c691a7389d8984ddcbbd299d3192690719a1a) Fixes #6730 Closes #6732 --- src/Radarr.Api.V3/Queue/QueueController.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Radarr.Api.V3/Queue/QueueController.cs b/src/Radarr.Api.V3/Queue/QueueController.cs index 0fbfec6e9..3fda5d985 100644 --- a/src/Radarr.Api.V3/Queue/QueueController.cs +++ b/src/Radarr.Api.V3/Queue/QueueController.cs @@ -204,7 +204,11 @@ namespace Radarr.Api.V3.Queue if (pendingRelease != null) { - _blocklistService.Block(pendingRelease.RemoteMovie, "Pending release manually blocklisted"); + if (blocklist) + { + _blocklistService.Block(pendingRelease.RemoteMovie, "Pending release manually blocklisted"); + } + _pendingReleaseService.RemovePendingQueueItems(pendingRelease.Id); return null; From f1de24ccc85ce9212102d805caafc66c55eaf7c8 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 15 Nov 2021 07:29:40 +0000 Subject: [PATCH 3/5] Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci] Currently translated at 99.8% (1108 of 1110 strings) Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci] Currently translated at 99.8% (1108 of 1110 strings) Update translation files [skip ci] Updated by "Remove blank strings" hook in Weblate. Co-authored-by: Anonymous Co-authored-by: Weblate Co-authored-by: mm519897405 Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ Translate-URL: https://translate.servarr.com/projects/servarr/radarr/zh_CN/ Translation: Servarr/Radarr --- src/NzbDrone.Core/Localization/Core/sk.json | 1 - .../Localization/Core/zh_CN.json | 38 ++++++++++++------- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/NzbDrone.Core/Localization/Core/sk.json b/src/NzbDrone.Core/Localization/Core/sk.json index 1802fa3c8..48b9eaa67 100644 --- a/src/NzbDrone.Core/Localization/Core/sk.json +++ b/src/NzbDrone.Core/Localization/Core/sk.json @@ -32,7 +32,6 @@ "AllMoviesInPathHaveBeenImported": "Všetky filmy z domény {0} boli importované", "AllowMovieChangeClickToChangeMovie": "Kliknutím zmeníte film", "AlreadyInYourLibrary": "Už vo vašej knižnici", - "AllowHardcodedSubs": "", "AlternativeTitle": "Alternatívny názov", "Always": "Vždy", "AnalyseVideoFiles": "Analyzovať video súbory", diff --git a/src/NzbDrone.Core/Localization/Core/zh_CN.json b/src/NzbDrone.Core/Localization/Core/zh_CN.json index d9181dde1..bd4d4421a 100644 --- a/src/NzbDrone.Core/Localization/Core/zh_CN.json +++ b/src/NzbDrone.Core/Localization/Core/zh_CN.json @@ -120,7 +120,7 @@ "AptUpdater": "使用 apt 安装更新", "AnalyseVideoFiles": "分析视频文件", "Always": "总是", - "AlreadyInYourLibrary": "已经在库中", + "AlreadyInYourLibrary": "已经在你的库中", "AllResultsHiddenFilter": "根据过滤条件所有结果已隐藏", "CancelPendingTask": "您确定要取消这个挂起的任务吗?", "Peers": "用户", @@ -208,9 +208,9 @@ "Reset": "重置", "RescanMovieFolderAfterRefresh": "刷新后重新扫描影片文件夹", "Required": "必须的", - "ReplaceWithSpaceDashSpace": "使用空格波折号空格替换", - "ReplaceWithSpaceDash": "使用空格波折号替换", - "ReplaceWithDash": "使用波折号替换", + "ReplaceWithSpaceDashSpace": "使用空格破折号空格替换", + "ReplaceWithSpaceDash": "使用空格破折号替换", + "ReplaceWithDash": "使用破折号替换", "ReplaceIllegalCharactersHelpText": "替换非法字符,如未勾选,则会被Radarr移除", "ReplaceIllegalCharacters": "替换非法字符", "Replace": "替换", @@ -540,7 +540,7 @@ "SSLPort": "SSL端口", "SSLCertPath": "SSL证书路径", "SourcePath": "来源路径", - "Source": "源代码", + "Source": "源路径", "SorryThatMovieCannotBeFound": "对不起,未找到影片。", "SkipFreeSpaceCheck": "跳过剩余空间检查", "SizeOnDisk": "占用磁盘体积", @@ -578,7 +578,7 @@ "AddMoviesMonitored": "添加监控中的电影", "AddListExclusion": "添加排除列表", "AddList": "添加列表", - "AddingTag": "添加便签", + "AddingTag": "添加标签", "AddImportExclusionHelpText": "防止列表中的电影被添加到 Radarr 中", "AddExclusion": "添加例外", "AddedToDownloadQueue": "已添加到已下载队列", @@ -625,7 +625,7 @@ "MonitoredHelpText": "可用时下载影片", "Monitor": "是否监控", "MissingFromDisk": "Radarr在磁盘上找不到该文件,已移除", - "MinimumFreeSpaceWhenImportingHelpText": "如果可用磁盘空间少于此数则阻止导入", + "MinimumFreeSpaceWhenImportingHelpText": "如果导入的磁盘空间不足,则禁止导入", "MinimumFreeSpace": "最小剩余空间", "MinimumCustomFormatScore": "最小自定义格式分数", "MinFormatScoreHelpText": "允许下载的最小自定义格式分数", @@ -656,8 +656,8 @@ "IndexerStatusCheckAllClientMessage": "所有搜刮器都因错误不可用", "IndexerSearchCheckNoInteractiveMessage": "没有任何搜刮器开启了手动搜索,Radarr不会提供任何手动搜索结果", "IndexerRssHealthCheckNoIndexers": "没有任何搜刮器开启了RSS同步,Radarr不会自动抓取新发布的影片", - "IndexerLongTermStatusCheckSingleClientMessage": "所有搜刮器由于故障都已不可用6小时:{0}", - "IndexerLongTermStatusCheckAllClientMessage": "所有搜刮器由于故障都已不可用6小时", + "IndexerLongTermStatusCheckSingleClientMessage": "由于故障6小时,下列搜刮器都已不可用:{0}", + "IndexerLongTermStatusCheckAllClientMessage": "由于故障超过6小时,所有搜刮器均不可用", "IndexerFlags": "搜刮器标记", "IncludeUnmonitored": "包含未监控的", "IncludeRecommendationsHelpText": "在发现页面中包含Radarr推荐影片", @@ -761,7 +761,7 @@ "UnableToAddANewQualityProfilePleaseTryAgain": "无法添加新影片质量配置,请稍后重试。", "ThisCannotBeCancelled": "该操作不能取消,除非重新启动Radarr。", "SearchCutoffUnmet": "搜索未满足终止条件的", - "RadarrSupportsAnyDownloadClient": "Radarr支持任何使用Newznab标准的下载客户端,以及下面列出的其他下载客户端。", + "RadarrSupportsAnyDownloadClient": "Radarr支持许多常用的的torrent和usenet下载客户端。", "VideoCodec": "视频编码", "QualitySettings": "影片质量配置设置", "UseHardlinksInsteadOfCopy": "使用硬链接代替复制", @@ -857,7 +857,7 @@ "PreviewRename": "预览重命名", "ForMoreInformationOnTheIndividualIndexers": "有关更多搜刮器的详细信息,请单击信息按钮。", "ForMoreInformationOnTheIndividualImportListsClinkOnTheInfoButtons": "有关更多导入列表的详细信息,请单击info按钮。", - "ForMoreInformationOnTheIndividualDownloadClients": "有关个别下载客户端的详细信息,请单击info按钮。", + "ForMoreInformationOnTheIndividualDownloadClients": "若需要查看有关下载客户端的详细信息,请点击“更多信息”按钮。", "Crew": "工作人员", "ChmodGroupHelpTextWarning": "这只在运行Radarr的用户是文件所有者的情况下才有效。最好确保下载客户端使用与Radarr相同的组。", "ChmodFolderHelpTextWarning": "这只在运行Radarr的用户是文件所有者的情况下才有效。最好确保下载客户端正确设置权限。", @@ -876,8 +876,8 @@ "DownloadPropersAndRepacks": "适合的和重封装的Propers and Repacks", "DoNotPrefer": "不要首选", "Reorder": "重新排序Reorder", - "MinimumAvailability": "最小可用性Minimum Availability", - "MinimumAge": "最小年龄Minimum Age", + "MinimumAvailability": "最小可用性", + "MinimumAge": "最小年龄", "ListTagsHelpText": "标签列表项目将被添加和", "IncludeUnknownMovieItemsHelpText": "显示队列中没有电影的项目,这可能包括被删除的电影或Radarr类别中的任何其他内容", "ExtraFileExtensionsHelpTexts1": "要导入的额外文件的逗号分隔列表(.nfo将被导入为.nfo-orig)Comma separated list of extra files to import", @@ -1096,5 +1096,15 @@ "BlocklistRelease": "黑名单版本", "RemoveFromBlocklist": "从黑名单中移除", "UnableToLoadBlocklist": "无法加载黑名单", - "Blocklisted": "黑名单" + "Blocklisted": "黑名单", + "AreYouSureYouWantToRemoveSelectedItemFromQueue": "确认从队列中删除已选择项目?", + "BlocklistReleases": "黑名单版本", + "IndexerTagHelpText": "仅对至少有一个匹配标记的电影使用此索引器。留空则适用于所有电影。", + "RemotePathMappingCheckFileRemoved": "文件{0} 在处理的过程中被部分删除。", + "RemotePathMappingCheckFilesGenericPermissions": "下载{1}中客户端{0}报告的文件,但Radarr无法看到此目录。您可能需要调整文件夹的权限。", + "RemotePathMappingCheckGenericPermissions": "下载客户端{0}将下载放置在{1}中,但Radarr无法看到此目录。您可能需要调整文件夹的权限。", + "UpdateAvailable": "有新的更新可用", + "Letterboxd": "信箱", + "RemoveSelectedItem": "删除所选项目", + "RemoveSelectedItems": "删除所选项目" } From 183d3d0872006f2822a2076c8578b614b7d4ffd3 Mon Sep 17 00:00:00 2001 From: ta264 Date: Thu, 18 Nov 2021 21:55:25 +0000 Subject: [PATCH 4/5] Fixed: Error adding import list exclusions from discover Fixes #6739 --- frontend/src/Store/Actions/discoverMovieActions.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/Store/Actions/discoverMovieActions.js b/frontend/src/Store/Actions/discoverMovieActions.js index 8b01e3af5..62f3534da 100644 --- a/frontend/src/Store/Actions/discoverMovieActions.js +++ b/frontend/src/Store/Actions/discoverMovieActions.js @@ -600,6 +600,7 @@ export const actionHandlers = handleThunks({ const promise = createAjaxRequest({ url: '/exclusions/bulk', method: 'POST', + contentType: 'application/json', data: JSON.stringify(exclusions) }).request; From b18daebc8a1da3a5fc19eacd490df4a6fcff1ad3 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Tue, 5 Oct 2021 12:00:59 -0700 Subject: [PATCH 5/5] Rename QueryTitles to CleanSceneTitles in SearchCriteriaBase (cherry picked from commit 747a4164e24e9861cacad39cf7d94db398747b38) --- .../IndexerSearchTests/SearchDefinitionFixture.cs | 2 +- .../IndexerSearch/Definitions/SearchCriteriaBase.cs | 4 ++-- .../Indexers/FileList/FileListRequestGenerator.cs | 2 +- src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs | 2 +- src/NzbDrone.Core/Indexers/Nyaa/NyaaRequestGenerator.cs | 2 +- .../Indexers/Omgwtfnzbs/OmgwtfnzbsRequestGenerator.cs | 2 +- .../Indexers/PassThePopcorn/PassThePopcornRequestGenerator.cs | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs b/src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs index 4e1f4db6d..6ec88ac3d 100644 --- a/src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs +++ b/src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs @@ -18,7 +18,7 @@ namespace NzbDrone.Core.Test.IndexerSearchTests public void should_replace_some_special_characters(string input, string expected) { Subject.SceneTitles = new List { input }; - Subject.QueryTitles.First().Should().Be(expected); + Subject.CleanSceneTitles.First().Should().Be(expected); } } } diff --git a/src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs index da55ef55f..b132f3740 100644 --- a/src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs +++ b/src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs @@ -19,9 +19,9 @@ namespace NzbDrone.Core.IndexerSearch.Definitions public virtual bool UserInvokedSearch { get; set; } public virtual bool InteractiveSearch { get; set; } - public List QueryTitles => SceneTitles.Select(GetQueryTitle).ToList(); + public List CleanSceneTitles => SceneTitles.Select(GetCleanSceneTitle).Distinct().ToList(); - public static string GetQueryTitle(string title) + public static string GetCleanSceneTitle(string title) { Ensure.That(title, () => title).IsNotNullOrWhiteSpace(); diff --git a/src/NzbDrone.Core/Indexers/FileList/FileListRequestGenerator.cs b/src/NzbDrone.Core/Indexers/FileList/FileListRequestGenerator.cs index 1d6ac1445..ca47a146a 100644 --- a/src/NzbDrone.Core/Indexers/FileList/FileListRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/FileList/FileListRequestGenerator.cs @@ -30,7 +30,7 @@ namespace NzbDrone.Core.Indexers.FileList } else { - foreach (var queryTitle in searchCriteria.QueryTitles) + foreach (var queryTitle in searchCriteria.CleanSceneTitles) { var titleYearSearchQuery = string.Format("{0}+{1}", queryTitle, searchCriteria.Movie.Year); pageableRequests.Add(GetRequest("search-torrents", string.Format("&type=name&query={0}", titleYearSearchQuery.Trim()))); diff --git a/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs index a725a9756..9486b019a 100644 --- a/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs @@ -155,7 +155,7 @@ namespace NzbDrone.Core.Indexers.Newznab if (SupportsSearch) { chain.AddTier(); - var queryTitles = TextSearchEngine == "raw" ? searchCriteria.SceneTitles : searchCriteria.QueryTitles; + var queryTitles = TextSearchEngine == "raw" ? searchCriteria.SceneTitles : searchCriteria.CleanSceneTitles; foreach (var queryTitle in queryTitles) { var searchQuery = queryTitle; diff --git a/src/NzbDrone.Core/Indexers/Nyaa/NyaaRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Nyaa/NyaaRequestGenerator.cs index 103e872b4..7760f08a8 100644 --- a/src/NzbDrone.Core/Indexers/Nyaa/NyaaRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Nyaa/NyaaRequestGenerator.cs @@ -60,7 +60,7 @@ namespace NzbDrone.Core.Indexers.Nyaa { var pageableRequests = new IndexerPageableRequestChain(); - foreach (var queryTitle in searchCriteria.QueryTitles) + foreach (var queryTitle in searchCriteria.CleanSceneTitles) { pageableRequests.Add(GetPagedRequests(MaxPages, PrepareQuery(string.Format("{0} {1}", queryTitle, searchCriteria.Movie.Year)))); } diff --git a/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsRequestGenerator.cs index b2bf7d5aa..665044281 100644 --- a/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsRequestGenerator.cs @@ -30,7 +30,7 @@ namespace NzbDrone.Core.Indexers.Omgwtfnzbs { var pageableRequests = new IndexerPageableRequestChain(); - foreach (var queryTitle in searchCriteria.QueryTitles) + foreach (var queryTitle in searchCriteria.CleanSceneTitles) { pageableRequests.Add(GetPagedRequests(string.Format("{0}", queryTitle))); diff --git a/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornRequestGenerator.cs b/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornRequestGenerator.cs index 9a93c7673..f5d62c4fd 100644 --- a/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/PassThePopcorn/PassThePopcornRequestGenerator.cs @@ -35,7 +35,7 @@ namespace NzbDrone.Core.Indexers.PassThePopcorn } else if (searchCriteria.Movie.Year > 0) { - foreach (var queryTitle in searchCriteria.QueryTitles) + foreach (var queryTitle in searchCriteria.CleanSceneTitles) { pageableRequests.Add(GetRequest(string.Format("{0}&year={1}", queryTitle, searchCriteria.Movie.Year))); }