Closes #5043pull/5374/head
parent
599ad86657
commit
bc2942c28d
@ -1,73 +1,71 @@
|
|||||||
using System.Linq;
|
using NLog;
|
||||||
using NLog;
|
using NzbDrone.Common.Extensions;
|
||||||
using NzbDrone.Common.Extensions;
|
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||||
using NzbDrone.Core.DataAugmentation.Scene;
|
using NzbDrone.Core.Parser.Model;
|
||||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
|
||||||
using NzbDrone.Core.Parser.Model;
|
namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||||
|
{
|
||||||
namespace NzbDrone.Core.DecisionEngine.Specifications.Search
|
public class SceneMappingSpecification : IDecisionEngineSpecification
|
||||||
{
|
{
|
||||||
public class SceneMappingSpecification : IDecisionEngineSpecification
|
private readonly Logger _logger;
|
||||||
{
|
|
||||||
private readonly Logger _logger;
|
public SceneMappingSpecification(Logger logger)
|
||||||
|
{
|
||||||
public SceneMappingSpecification(Logger logger)
|
_logger = logger;
|
||||||
{
|
}
|
||||||
_logger = logger;
|
|
||||||
}
|
public SpecificationPriority Priority => SpecificationPriority.Default;
|
||||||
|
public RejectionType Type => RejectionType.Temporary; // Temporary till there's a mapping
|
||||||
public SpecificationPriority Priority => SpecificationPriority.Default;
|
|
||||||
public RejectionType Type => RejectionType.Temporary; // Temporary till there's a mapping
|
public Decision IsSatisfiedBy(RemoteEpisode remoteEpisode, SearchCriteriaBase searchCriteria)
|
||||||
|
{
|
||||||
public Decision IsSatisfiedBy(RemoteEpisode remoteEpisode, SearchCriteriaBase searchCriteria)
|
if (remoteEpisode.SceneMapping == null)
|
||||||
{
|
{
|
||||||
if (remoteEpisode.SceneMapping == null)
|
_logger.Debug("No applicable scene mapping, skipping.");
|
||||||
{
|
return Decision.Accept();
|
||||||
_logger.Debug("No applicable scene mapping, skipping.");
|
}
|
||||||
return Decision.Accept();
|
|
||||||
}
|
if (remoteEpisode.SceneMapping.SceneOrigin.IsNullOrWhiteSpace())
|
||||||
|
{
|
||||||
if (remoteEpisode.SceneMapping.SceneOrigin.IsNullOrWhiteSpace())
|
_logger.Debug("No explicit scene origin in scene mapping.");
|
||||||
{
|
return Decision.Accept();
|
||||||
_logger.Debug("No explicit scene origin in scene mapping.");
|
}
|
||||||
return Decision.Accept();
|
|
||||||
}
|
var split = remoteEpisode.SceneMapping.SceneOrigin.Split(':');
|
||||||
|
|
||||||
var split = remoteEpisode.SceneMapping.SceneOrigin.Split(':');
|
var isInteractive = searchCriteria != null && searchCriteria.InteractiveSearch;
|
||||||
|
|
||||||
var isInteractive = searchCriteria != null && searchCriteria.InteractiveSearch;
|
if (remoteEpisode.SceneMapping.Comment.IsNotNullOrWhiteSpace())
|
||||||
|
{
|
||||||
if (remoteEpisode.SceneMapping.Comment.IsNotNullOrWhiteSpace())
|
_logger.Debug("SceneMapping has origin {0} with comment '{1}'.", remoteEpisode.SceneMapping.SceneOrigin, remoteEpisode.SceneMapping.Comment);
|
||||||
{
|
}
|
||||||
_logger.Debug("SceneMapping has origin {0} with comment '{1}'.", remoteEpisode.SceneMapping.SceneOrigin, remoteEpisode.SceneMapping.Comment);
|
else
|
||||||
}
|
{
|
||||||
else
|
_logger.Debug("SceneMapping has origin {0}.", remoteEpisode.SceneMapping.SceneOrigin);
|
||||||
{
|
}
|
||||||
_logger.Debug("SceneMapping has origin {0}.", remoteEpisode.SceneMapping.SceneOrigin);
|
|
||||||
}
|
if (split[0] == "mixed")
|
||||||
|
{
|
||||||
if (split[0] == "mixed")
|
_logger.Debug("SceneMapping origin is explicitly mixed, this means these were released with multiple unidentifiable numbering schemes.");
|
||||||
{
|
|
||||||
_logger.Debug("SceneMapping origin is explicitly mixed, this means these were released with multiple unidentifiable numbering schemes.");
|
if (remoteEpisode.SceneMapping.Comment.IsNotNullOrWhiteSpace())
|
||||||
|
{
|
||||||
if (remoteEpisode.SceneMapping.Comment.IsNotNullOrWhiteSpace())
|
return Decision.Reject("{0} has ambiguous numbering");
|
||||||
{
|
}
|
||||||
return Decision.Reject("{0} has ambiguous numbering");
|
else
|
||||||
}
|
{
|
||||||
else
|
return Decision.Reject("Ambiguous numbering");
|
||||||
{
|
}
|
||||||
return Decision.Reject("Ambiguous numbering");
|
}
|
||||||
}
|
|
||||||
}
|
if (split[0] == "unknown")
|
||||||
|
{
|
||||||
if (split[0] == "unknown")
|
var type = split.Length >= 2 ? split[1] : "scene";
|
||||||
{
|
|
||||||
var type = split.Length >= 2 ? split[1] : "scene";
|
_logger.Debug("SceneMapping origin is explicitly unknown, unsure what numbering scheme it uses but '{0}' will be assumed. Provide full release title to Sonarr/TheXEM team.", type);
|
||||||
|
}
|
||||||
_logger.Debug("SceneMapping origin is explicitly unknown, unsure what numbering scheme it uses but '{0}' will be assumed. Provide full release title to Sonarr/TheXEM team.", type);
|
|
||||||
}
|
return Decision.Accept();
|
||||||
|
}
|
||||||
return Decision.Accept();
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in new issue