New: Import Existing series now handles camelCase titles without spaces.

This commit is contained in:
Powdor 2014-11-03 15:13:08 +01:00 committed by Taloth Saldono
parent 17ac82385a
commit 6dc72713be
2 changed files with 15 additions and 6 deletions

View File

@ -37,6 +37,14 @@ namespace NzbDrone.Core.Test.MetadataSourceTests
[TestCase("tvdb:78804", "Doctor Who (2005)")]
[TestCase("TVDB:78804", "Doctor Who (2005)")]
[TestCase("TVDB: 78804 ", "Doctor Who (2005)")]
[TestCase("TheBigBangTheory", "The Big Bang Theory")]
[TestCase("Agents of S.H.I.E.L.D.", "Marvel's Agents of S.H.I.E.L.D.")]
[TestCase("Marvel's Agents of S.H.I.E.L.D.", "Marvel's Agents of S.H.I.E.L.D.")]
[TestCase("Marvel'sAgentsOfS.H.I.E.L.D.", "Marvel's Agents of S.H.I.E.L.D.")]
[TestCase("Utopia (US) (2014)", "Utopia (US) (2014)")]
[TestCase("Utopia US 2014", "Utopia (US) (2014)")]
[TestCase("UtopiaUS2014", "Utopia (US) (2014)")]
[TestCase("@Midnight", "@midnight")]
public void successful_search(string title, string expected)
{
var result = Subject.SearchForNewSeries(title);

View File

@ -19,7 +19,7 @@ namespace NzbDrone.Core.MetadataSource
private readonly IHttpClient _httpClient;
private static readonly Regex CollapseSpaceRegex = new Regex(@"\s+", RegexOptions.Compiled);
private static readonly Regex InvalidSearchCharRegex = new Regex(@"(?:\*|\(|\)|'|!|@|\+)", RegexOptions.Compiled);
private static readonly Regex ExpandCamelCaseRegEx = new Regex(@"(?<!^|[A-Z]\.?|[^\w.])(?=[A-Z])", RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled);
private readonly HttpRequestBuilder _requestBuilder;
@ -231,11 +231,12 @@ namespace NzbDrone.Core.MetadataSource
private static string GetSearchTerm(string phrase)
{
phrase = phrase.RemoveAccent().ToLower();
phrase = phrase.RemoveAccent();
phrase = InvalidSearchCharRegex.Replace(phrase, "");
phrase = CollapseSpaceRegex.Replace(phrase, " ").Trim().ToLower();
phrase = ExpandCamelCaseRegEx.Replace(phrase, " ");
phrase = CollapseSpaceRegex.Replace(phrase, " ").Trim();
phrase = phrase.Trim('-');
phrase = System.Web.HttpUtility.UrlEncode(phrase);
phrase = System.Web.HttpUtility.UrlEncode(phrase.ToLower());
return phrase;
}