From 2f0d02b3bc2996d428a1f9e61a35a3f528143cf9 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Wed, 7 Dec 2022 20:26:46 -0800 Subject: [PATCH] Allow Discography to be grabbed automatically if all albums will be released within 24 hours (cherry picked from commit 87795708b5caf63e63570cb62c6043a781ee89ae) Closes #3181 --- .../DiscographySpecificationFixture.cs | 8 ++++++++ .../Specifications/DiscographySpecification.cs | 2 +- src/NzbDrone.Core/IndexerSearch/AlbumSearchService.cs | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/DiscographySpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/DiscographySpecificationFixture.cs index f6a87b092..d5ef99ed8 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/DiscographySpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/DiscographySpecificationFixture.cs @@ -57,6 +57,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue(); } + [Test] + public void should_return_true_if_all_albums_will_have_released_in_the_next_24_hours() + { + _remoteAlbum.Albums.Last().ReleaseDate = DateTime.UtcNow.AddHours(23); + + Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue(); + } + [Test] public void should_return_false_if_one_album_has_not_released() { diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/DiscographySpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/DiscographySpecification.cs index 98ff0d304..bff31f1b2 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/DiscographySpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/DiscographySpecification.cs @@ -25,7 +25,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications { _logger.Debug("Checking if all albums in discography release have released. {0}", subject.Release.Title); - if (subject.Albums.Any(e => !e.ReleaseDate.HasValue || e.ReleaseDate.Value.After(DateTime.UtcNow))) + if (subject.Albums.Any(e => !e.ReleaseDate.HasValue || e.ReleaseDate.Value.After(DateTime.UtcNow.AddHours(24)))) { _logger.Debug("Discography release {0} rejected. All albums haven't released yet.", subject.Release.Title); return Decision.Reject("Discography release rejected. All albums haven't released yet."); diff --git a/src/NzbDrone.Core/IndexerSearch/AlbumSearchService.cs b/src/NzbDrone.Core/IndexerSearch/AlbumSearchService.cs index ef75dba40..356b5c65e 100644 --- a/src/NzbDrone.Core/IndexerSearch/AlbumSearchService.cs +++ b/src/NzbDrone.Core/IndexerSearch/AlbumSearchService.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks;