Fixed: Parsing similar author names with common words at end

(cherry picked from commit 0fe24539625f8397dfb63d4618611db99c3c137a)
pull/3130/head
Mark McDowall 4 years ago committed by Bogdan
parent 50be87e5a4
commit 7d30c7d1ea

@ -35,22 +35,40 @@ namespace NzbDrone.Core.Test.ParserTests
[TestCase("or")]
[TestCase("an")]
[TestCase("of")]
public void should_remove_common_words(string word)
public void should_remove_common_words_from_middle_of_title(string word)
{
var dirtyFormat = new[]
{
"word.{0}.word",
"word {0} word",
"word-{0}-word",
"word-{0}-word"
};
foreach (var s in dirtyFormat)
{
var dirty = string.Format(s, word);
dirty.CleanAuthorName().Should().Be("wordword");
}
}
[TestCase("the")]
[TestCase("and")]
[TestCase("or")]
[TestCase("an")]
[TestCase("of")]
public void should_not_remove_common_words_from_end_of_title(string word)
{
var dirtyFormat = new[]
{
"word.word.{0}",
"word-word-{0}",
"word-word {0}",
"word-word {0}"
};
foreach (var s in dirtyFormat)
{
var dirty = string.Format(s, word);
dirty.CleanAuthorName().Should().Be("wordword");
dirty.CleanAuthorName().Should().Be("wordword" + word.ToLower());
}
}

@ -158,7 +158,7 @@ namespace NzbDrone.Core.Parser
new Regex(@"^b00bs$", RegexOptions.Compiled | RegexOptions.IgnoreCase)
};
private static readonly RegexReplace NormalizeRegex = new RegexReplace(@"((?:\b|_)(?<!^)(a(?!$)|an|the|and|or|of)(?:\b|_))|\W|_",
private static readonly RegexReplace NormalizeRegex = new RegexReplace(@"((?:\b|_)(?<!^)(a(?!$)|an|the|and|or|of)(?!$)(?:\b|_))|\W|_",
string.Empty,
RegexOptions.IgnoreCase | RegexOptions.Compiled);

Loading…
Cancel
Save