From aff870aaafc29b08127f7ea62e96ba8a3a60c0f8 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 8 Jan 2015 22:34:09 -0500 Subject: [PATCH] search ignore accent chars --- .../Library/CoreResolutionIgnoreRule.cs | 10 ++++++++-- .../Library/SearchEngine.cs | 7 ++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs b/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs index 1628ccc328..1771bbdb2c 100644 --- a/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs +++ b/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Common.IO; +using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.IO; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Resolvers; @@ -114,7 +115,12 @@ namespace MediaBrowser.Server.Implementations.Library } // Ignore samples - if (filename.IndexOf(".sample.", StringComparison.OrdinalIgnoreCase) != -1) + var sampleFilename = " " + filename.Replace(".", " ", StringComparison.OrdinalIgnoreCase) + .Replace("-", " ", StringComparison.OrdinalIgnoreCase) + .Replace("_", " ", StringComparison.OrdinalIgnoreCase) + .Replace("!", " ", StringComparison.OrdinalIgnoreCase); + + if (sampleFilename.IndexOf(" sample ", StringComparison.OrdinalIgnoreCase) != -1) { return true; } diff --git a/MediaBrowser.Server.Implementations/Library/SearchEngine.cs b/MediaBrowser.Server.Implementations/Library/SearchEngine.cs index 071031b25b..1c92f6c4af 100644 --- a/MediaBrowser.Server.Implementations/Library/SearchEngine.cs +++ b/MediaBrowser.Server.Implementations/Library/SearchEngine.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Entities; +using MediaBrowser.Common.Extensions; +using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; @@ -97,6 +98,8 @@ namespace MediaBrowser.Server.Implementations.Library throw new ArgumentNullException("searchTerm"); } + searchTerm = searchTerm.RemoveDiacritics(); + var terms = GetWords(searchTerm); var hints = new List>(); @@ -318,6 +321,8 @@ namespace MediaBrowser.Server.Implementations.Library throw new ArgumentNullException("input"); } + input = input.RemoveDiacritics(); + if (string.Equals(input, searchInput, StringComparison.OrdinalIgnoreCase)) { return new Tuple(searchInput, 0);