From 0d647ffb9afe05a9e952b5292a963cf55ca60c7e Mon Sep 17 00:00:00 2001 From: vertigo235 Date: Sat, 4 Feb 2017 02:26:11 -0500 Subject: [PATCH] Delay Profile: Delay for at least 1 preferred word --- .../Specifications/RssSync/DelaySpecification.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/DelaySpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/DelaySpecification.cs index 2298fac1b..1f2ef13f2 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/DelaySpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/DelaySpecification.cs @@ -68,11 +68,14 @@ namespace NzbDrone.Core.DecisionEngine.Specifications.RssSync // If quality meets or exceeds the best allowed quality in the profile accept it immediately var bestQualityInProfile = new QualityModel(profile.LastAllowedQuality()); - var isBestInProfile = comparer.Compare(subject.ParsedMovieInfo.Quality, bestQualityInProfile) >= 0; + var isBestInProfile = comparer.Compare(subject.ParsedMovieInfo.Quality, bestQualityInProfile) >= 0; + var title = subject.Release.Title; + var preferredWords = subject.Movie.Profile.Value.PreferredTags; + var num = preferredWords.AsEnumerable().Count(w => title.ToLower().Contains(w.ToLower())); - if (isBestInProfile && isPreferredProtocol) + if (isBestInProfile && isPreferredProtocol && (num > 0 || preferredWords == null)) { - _logger.Debug("Quality is highest in profile for preferred protocol, will not delay"); + _logger.Debug("Quality is highest in profile for preferred protocol and preferred word count is {0}, will not delay",num); return Decision.Accept(); }