From cda9cf726ac644dde1ad7328f7af652c80dddc10 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Tue, 25 Jul 2023 22:25:04 +0300 Subject: [PATCH] Fixed: Recalculate Custom Format Score in Manual Import --- .../InteractiveImport/Interactive/InteractiveImportRow.tsx | 5 ++++- .../MediaFiles/EpisodeImport/Manual/ManualImportItem.cs | 1 + .../MediaFiles/EpisodeImport/Manual/ManualImportService.cs | 1 + src/Sonarr.Api.V3/ManualImport/ManualImportController.cs | 3 +++ .../ManualImport/ManualImportReprocessResource.cs | 4 +++- 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/frontend/src/InteractiveImport/Interactive/InteractiveImportRow.tsx b/frontend/src/InteractiveImport/Interactive/InteractiveImportRow.tsx index 2c49de695..3689a74cd 100644 --- a/frontend/src/InteractiveImport/Interactive/InteractiveImportRow.tsx +++ b/frontend/src/InteractiveImport/Interactive/InteractiveImportRow.tsx @@ -431,7 +431,10 @@ function InteractiveImportRow(props: InteractiveImportRowProps) { {customFormats?.length ? ( diff --git a/src/NzbDrone.Core/MediaFiles/EpisodeImport/Manual/ManualImportItem.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Manual/ManualImportItem.cs index c1010de9f..a7fc461b8 100644 --- a/src/NzbDrone.Core/MediaFiles/EpisodeImport/Manual/ManualImportItem.cs +++ b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Manual/ManualImportItem.cs @@ -23,6 +23,7 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport.Manual public string ReleaseGroup { get; set; } public string DownloadId { get; set; } public List CustomFormats { get; set; } + public int CustomFormatScore { get; set; } public IEnumerable Rejections { get; set; } public ManualImportItem() diff --git a/src/NzbDrone.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs index c01e5536b..67c4b1d9f 100644 --- a/src/NzbDrone.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs +++ b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs @@ -393,6 +393,7 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport.Manual item.Series = decision.LocalEpisode.Series; item.CustomFormats = _formatCalculator.ParseCustomFormat(decision.LocalEpisode); + item.CustomFormatScore = item.Series.QualityProfile?.Value.CalculateCustomFormatScore(item.CustomFormats) ?? 0; } if (decision.LocalEpisode.Episodes.Any() && decision.LocalEpisode.Episodes.Select(c => c.SeasonNumber).Distinct().Count() == 1) diff --git a/src/Sonarr.Api.V3/ManualImport/ManualImportController.cs b/src/Sonarr.Api.V3/ManualImport/ManualImportController.cs index 61c86c098..bb7b77258 100644 --- a/src/Sonarr.Api.V3/ManualImport/ManualImportController.cs +++ b/src/Sonarr.Api.V3/ManualImport/ManualImportController.cs @@ -5,6 +5,7 @@ using NzbDrone.Common.Extensions; using NzbDrone.Core.Languages; using NzbDrone.Core.MediaFiles.EpisodeImport.Manual; using NzbDrone.Core.Qualities; +using Sonarr.Api.V3.CustomFormats; using Sonarr.Api.V3.Episodes; using Sonarr.Http; @@ -43,6 +44,8 @@ namespace Sonarr.Api.V3.ManualImport item.SeasonNumber = processedItem.SeasonNumber; item.Episodes = processedItem.Episodes.ToResource(); item.Rejections = processedItem.Rejections; + item.CustomFormats = processedItem.CustomFormats.ToResource(false); + item.CustomFormatScore = processedItem.CustomFormatScore; // Only set the language/quality if they're unknown and languages were returned. // Languages won't be returned when reprocessing if the season/episode isn't filled in yet and we don't want to return no languages to the client. diff --git a/src/Sonarr.Api.V3/ManualImport/ManualImportReprocessResource.cs b/src/Sonarr.Api.V3/ManualImport/ManualImportReprocessResource.cs index c8817d328..744f6ce51 100644 --- a/src/Sonarr.Api.V3/ManualImport/ManualImportReprocessResource.cs +++ b/src/Sonarr.Api.V3/ManualImport/ManualImportReprocessResource.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using NzbDrone.Core.DecisionEngine; using NzbDrone.Core.Languages; using NzbDrone.Core.Qualities; +using Sonarr.Api.V3.CustomFormats; using Sonarr.Api.V3.Episodes; using Sonarr.Http.REST; @@ -18,7 +19,8 @@ namespace Sonarr.Api.V3.ManualImport public List Languages { get; set; } public string ReleaseGroup { get; set; } public string DownloadId { get; set; } - + public List CustomFormats { get; set; } + public int CustomFormatScore { get; set; } public IEnumerable Rejections { get; set; } } }