Parser now recognizes Hardcoded subs. By default these releases are rejected. However, they can still be manually downloaded.

pull/34/head
Leonardo Galli 8 years ago
parent 145c2ca4a4
commit cd310626e9

@ -81,9 +81,18 @@ namespace NzbDrone.Core.DecisionEngine
} }
else else
{ {
remoteEpisode.DownloadAllowed = true; if (parsedEpisodeInfo.Quality.HardcodedSubs.IsNotNullOrWhiteSpace())
//decision = GetDecisionForReport(remoteEpisode, searchCriteria); TODO: Rewrite this for movies! {
decision = new DownloadDecision(remoteEpisode); remoteEpisode.DownloadAllowed = true;
decision = new DownloadDecision(remoteEpisode, new Rejection("Hardcoded subs found: " + parsedEpisodeInfo.Quality.HardcodedSubs));
}
else
{
remoteEpisode.DownloadAllowed = true;
//decision = GetDecisionForReport(remoteEpisode, searchCriteria); TODO: Rewrite this for movies!
decision = new DownloadDecision(remoteEpisode);
}
} }
} }
} }

@ -28,6 +28,8 @@ namespace NzbDrone.Core.Parser
)\b", )\b",
RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace); RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
private static readonly Regex HardcodedSubsRegex = new Regex(@"\b(?<hcsub>(\w+SUB))|(?<hc>(HC))\b", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
private static readonly Regex RawHDRegex = new Regex(@"\b(?<rawhd>RawHD|1080i[-_. ]HDTV|Raw[-_. ]HD|MPEG[-_. ]?2)\b", private static readonly Regex RawHDRegex = new Regex(@"\b(?<rawhd>RawHD|1080i[-_. ]HDTV|Raw[-_. ]HD|MPEG[-_. ]?2)\b",
RegexOptions.Compiled | RegexOptions.IgnoreCase); RegexOptions.Compiled | RegexOptions.IgnoreCase);
@ -59,6 +61,19 @@ namespace NzbDrone.Core.Parser
name = name.Trim(); name = name.Trim();
var normalizedName = name.Replace('_', ' ').Trim().ToLower(); var normalizedName = name.Replace('_', ' ').Trim().ToLower();
var result = ParseQualityModifiers(name, normalizedName); var result = ParseQualityModifiers(name, normalizedName);
var subMatch = HardcodedSubsRegex.Matches(normalizedName).OfType<Match>().LastOrDefault();
if (subMatch != null && subMatch.Success)
{
if (subMatch.Groups["hcsub"].Success)
{
result.HardcodedSubs = subMatch.Groups["hcsub"].Value;
}
else if (subMatch.Groups["hc"].Success)
{
result.HardcodedSubs = "Generic Hardcoded Subs";
}
}
if (RawHDRegex.IsMatch(normalizedName)) if (RawHDRegex.IsMatch(normalizedName))
{ {
@ -69,6 +84,7 @@ namespace NzbDrone.Core.Parser
var sourceMatch = SourceRegex.Matches(normalizedName).OfType<Match>().LastOrDefault(); var sourceMatch = SourceRegex.Matches(normalizedName).OfType<Match>().LastOrDefault();
var resolution = ParseResolution(normalizedName); var resolution = ParseResolution(normalizedName);
var codecRegex = CodecRegex.Match(normalizedName); var codecRegex = CodecRegex.Match(normalizedName);
if (sourceMatch != null && sourceMatch.Success) if (sourceMatch != null && sourceMatch.Success)
{ {
@ -201,6 +217,8 @@ namespace NzbDrone.Core.Parser
} }
} }
//Anime Bluray matching //Anime Bluray matching
if (AnimeBlurayRegex.Match(normalizedName).Success) if (AnimeBlurayRegex.Match(normalizedName).Success)

@ -8,6 +8,7 @@ namespace NzbDrone.Core.Qualities
{ {
public Quality Quality { get; set; } public Quality Quality { get; set; }
public Revision Revision { get; set; } public Revision Revision { get; set; }
public string HardcodedSubs { get; set; }
[JsonIgnore] [JsonIgnore]
public QualitySource QualitySource { get; set; } public QualitySource QualitySource { get; set; }

Loading…
Cancel
Save