|
|
|
@ -8,9 +8,9 @@ namespace NzbDrone.Core.IndexerSearch.Definitions
|
|
|
|
|
{
|
|
|
|
|
public abstract class SearchCriteriaBase
|
|
|
|
|
{
|
|
|
|
|
private static readonly Regex SpecialCharacter = new Regex(@"[`'’.]", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
|
|
|
|
private static readonly Regex NonWord = new Regex(@"[\W]", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
|
|
|
|
private static readonly Regex NonWord = new Regex(@"[^\w']+", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
|
|
|
|
private static readonly Regex BeginningThe = new Regex(@"^the\s", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
|
|
|
|
private static readonly Regex StandardizeSingleQuotesRegex = new Regex(@"[\u0060\u00B4\u2018\u2019]", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
|
|
|
|
|
|
|
|
|
public virtual bool MonitoredEpisodesOnly { get; set; }
|
|
|
|
|
public virtual bool UserInvokedSearch { get; set; }
|
|
|
|
@ -34,9 +34,7 @@ namespace NzbDrone.Core.IndexerSearch.Definitions
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var cleanTitle = BeginningThe.Replace(title, string.Empty);
|
|
|
|
|
|
|
|
|
|
cleanTitle = cleanTitle.Replace(" & ", " ");
|
|
|
|
|
cleanTitle = SpecialCharacter.Replace(cleanTitle, "");
|
|
|
|
|
cleanTitle = StandardizeSingleQuotesRegex.Replace(cleanTitle, "'");
|
|
|
|
|
cleanTitle = NonWord.Replace(cleanTitle, "+");
|
|
|
|
|
|
|
|
|
|
// remove any repeating +s
|
|
|
|
|