Remove request info from title when parsing

This commit is contained in:
Mark McDowall 2014-08-11 22:11:06 -07:00
parent 1e815e7525
commit 3b08f317dd
2 changed files with 10 additions and 1 deletions

View File

@ -35,7 +35,7 @@ namespace NzbDrone.Core.Test.ParserTests
[TestCase("Hawaii Five 0", "hawaiifive0")] [TestCase("Hawaii Five 0", "hawaiifive0")]
[TestCase("Match of the Day", "matchday")] [TestCase("Match of the Day", "matchday")]
[TestCase("Match of the Day 2", "matchday2")] [TestCase("Match of the Day 2", "matchday2")]
public void should_parse_series_name(string postTitle, string title) public void should_parse_series_name(String postTitle, String title)
{ {
var result = Parser.Parser.ParseSeriesName(postTitle); var result = Parser.Parser.ParseSeriesName(postTitle);
result.Should().Be(title.CleanSeriesTitle()); result.Should().Be(title.CleanSeriesTitle());
@ -48,5 +48,11 @@ namespace NzbDrone.Core.Test.ParserTests
title.CleanSeriesTitle().Should().Be("carnivale"); title.CleanSeriesTitle().Should().Be("carnivale");
} }
[TestCase("[scnzbefnet][509103] 2.Broke.Girls.S03E18.720p.HDTV.X264-DIMENSION", "2 Broke Girls")]
public void should_remove_request_info_from_title(String postTitle, String title)
{
Parser.Parser.ParseTitle(postTitle).SeriesTitle.Should().Be(title.CleanSeriesTitle());
}
} }
} }

View File

@ -153,6 +153,8 @@ namespace NzbDrone.Core.Parser
private static readonly Regex SpecialEpisodeWordRegex = new Regex(@"\b(part|special|edition)\b\s?", private static readonly Regex SpecialEpisodeWordRegex = new Regex(@"\b(part|special|edition)\b\s?",
RegexOptions.IgnoreCase | RegexOptions.Compiled); RegexOptions.IgnoreCase | RegexOptions.Compiled);
private static readonly Regex RequestInfoRegex = new Regex(@"\[.+?\]", RegexOptions.Compiled);
public static ParsedEpisodeInfo ParsePath(string path) public static ParsedEpisodeInfo ParsePath(string path)
{ {
var fileInfo = new FileInfo(path); var fileInfo = new FileInfo(path);
@ -381,6 +383,7 @@ namespace NzbDrone.Core.Parser
private static ParsedEpisodeInfo ParseMatchCollection(MatchCollection matchCollection) private static ParsedEpisodeInfo ParseMatchCollection(MatchCollection matchCollection)
{ {
var seriesName = matchCollection[0].Groups["title"].Value.Replace('.', ' '); var seriesName = matchCollection[0].Groups["title"].Value.Replace('.', ' ');
seriesName = RequestInfoRegex.Replace(seriesName, "").Trim(' ');
int airYear; int airYear;
Int32.TryParse(matchCollection[0].Groups["airyear"].Value, out airYear); Int32.TryParse(matchCollection[0].Groups["airyear"].Value, out airYear);