Fixed the parser for movies with A.

Fixes  some parser issues.
pull/2/head
Leonardo Galli 8 years ago
parent 24a394bf46
commit b9eab860f5

@ -71,6 +71,9 @@ namespace NzbDrone.Core.Test.ParserTests
[TestCase("This Is A Movie (1999) [IMDB #] <Genre, Genre, Genre> {ACTORS} !DIRECTOR +MORE_SILLY_STUFF_NO_ONE_NEEDS ?", "This Is A Movie")] [TestCase("This Is A Movie (1999) [IMDB #] <Genre, Genre, Genre> {ACTORS} !DIRECTOR +MORE_SILLY_STUFF_NO_ONE_NEEDS ?", "This Is A Movie")]
[TestCase("We Are the Best!.2013.720p.H264.mkv", "We Are the Best!")] [TestCase("We Are the Best!.2013.720p.H264.mkv", "We Are the Best!")]
[TestCase("(500).Days.Of.Summer.(2009).DTS.1080p.BluRay.x264.NLsubs", "(500) Days Of Summer")] [TestCase("(500).Days.Of.Summer.(2009).DTS.1080p.BluRay.x264.NLsubs", "(500) Days Of Summer")]
[TestCase("To.Live.and.Die.in.L.A.1985.1080p.BluRay", "To Live and Die in L.A.")]
[TestCase("A.I.Artificial.Intelligence.(2001)", "A.I. Artificial Intelligence")]
[TestCase("A.Movie.Name.(1998)", "A Movie Name")]
public void should_parse_movie_title(string postTitle, string title) public void should_parse_movie_title(string postTitle, string title)
{ {
Parser.Parser.ParseMovieTitle(postTitle).MovieTitle.Should().Be(title); Parser.Parser.ParseMovieTitle(postTitle).MovieTitle.Should().Be(title);

@ -736,15 +736,25 @@ namespace NzbDrone.Core.Parser
var parts = seriesName.Split('.'); var parts = seriesName.Split('.');
seriesName = ""; seriesName = "";
int n; int n = 0;
bool previousAcronym = false; bool previousAcronym = false;
string nextPart = "";
foreach (var part in parts) foreach (var part in parts)
{ {
if (parts.Length >= n+2)
{
nextPart = parts[n+1];
}
if (part.Length == 1 && part.ToLower() != "a" && !int.TryParse(part, out n)) if (part.Length == 1 && part.ToLower() != "a" && !int.TryParse(part, out n))
{ {
seriesName += part + "."; seriesName += part + ".";
previousAcronym = true; previousAcronym = true;
} }
else if (part.ToLower() == "a" && (previousAcronym == true || nextPart.Length == 1))
{
seriesName += part + ".";
previousAcronym = true;
}
else else
{ {
if (previousAcronym) if (previousAcronym)
@ -754,7 +764,7 @@ namespace NzbDrone.Core.Parser
} }
seriesName += part + " "; seriesName += part + " ";
} }
n++;
} }
seriesName = seriesName.Trim(' '); seriesName = seriesName.Trim(' ');

Loading…
Cancel
Save