diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/DvdSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/RawDiskSpecificationFixture.cs similarity index 87% rename from src/NzbDrone.Core.Test/DecisionEngineTests/DvdSpecificationFixture.cs rename to src/NzbDrone.Core.Test/DecisionEngineTests/RawDiskSpecificationFixture.cs index 209917502..2d205cc7a 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/DvdSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/RawDiskSpecificationFixture.cs @@ -18,7 +18,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests { [TestFixture] - public class DvdSpecificationFixture : CoreTest + public class RawDiskSpecificationFixture : CoreTest { private RemoteEpisode _remoteEpisode; @@ -63,6 +63,13 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().BeFalse(); } + [Test] + public void should_return_false_if_m2ts() + { + WithContainer("M2TS"); + Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().BeFalse(); + } + [Test] public void should_compare_case_insensitive() { diff --git a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj index 8edd74b9d..26ae602a3 100644 --- a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj +++ b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj @@ -156,7 +156,7 @@ - + diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/DvdSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/RawDiskSpecification.cs similarity index 69% rename from src/NzbDrone.Core/DecisionEngine/Specifications/DvdSpecification.cs rename to src/NzbDrone.Core/DecisionEngine/Specifications/RawDiskSpecification.cs index d265b2813..e4a1995c7 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/DvdSpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/RawDiskSpecification.cs @@ -6,13 +6,15 @@ using NzbDrone.Core.Parser.Model; namespace NzbDrone.Core.DecisionEngine.Specifications { - public class DvdSpecification : IDecisionEngineSpecification + public class RawDiskSpecification : IDecisionEngineSpecification { private static readonly string[] _dvdContainerTypes = new[] { "vob", "iso" }; + private static readonly string[] _blurayContainerTypes = new[] { "m2ts" }; + private readonly Logger _logger; - public DvdSpecification(Logger logger) + public RawDiskSpecification(Logger logger) { _logger = logger; } @@ -32,6 +34,12 @@ namespace NzbDrone.Core.DecisionEngine.Specifications return Decision.Reject("Raw DVD release"); } + if (_blurayContainerTypes.Contains(subject.Release.Container.ToLower())) + { + _logger.Debug("Release contains raw Bluray, rejecting."); + return Decision.Reject("Raw Bluray release"); + } + return Decision.Accept(); } } diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index 1245b562b..4a2f3f438 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -331,7 +331,7 @@ - +