aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs28
1 files changed, 27 insertions, 1 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs b/MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs
index e7565ff65..f47d6c448 100644
--- a/MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs
+++ b/MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs
@@ -145,7 +145,7 @@ namespace MediaBrowser.Server.Implementations.Library
}
// Find genres, from non-audio items
- var genres = items.Where(i => !(i is Audio) && !(i is MusicAlbum) && !(i is MusicAlbumDisc) && !(i is MusicArtist) && !(i is MusicVideo))
+ var genres = items.Where(i => !(i is Audio) && !(i is MusicAlbum) && !(i is MusicAlbumDisc) && !(i is MusicArtist) && !(i is MusicVideo) && !(i is Game))
.SelectMany(i => i.Genres)
.Where(i => !string.IsNullOrEmpty(i))
.Distinct(StringComparer.OrdinalIgnoreCase)
@@ -196,6 +196,32 @@ namespace MediaBrowser.Server.Implementations.Library
}
}
+ // Find music genres
+ var gameGenres = items.OfType<Game>()
+ .SelectMany(i => i.Genres)
+ .Where(i => !string.IsNullOrEmpty(i))
+ .Distinct(StringComparer.OrdinalIgnoreCase)
+ .ToList();
+
+ foreach (var item in gameGenres)
+ {
+ var index = GetIndex(item, searchTerm, terms);
+
+ if (index.Item2 != -1)
+ {
+ try
+ {
+ var genre = await _libraryManager.GetGameGenre(item).ConfigureAwait(false);
+
+ hints.Add(new Tuple<BaseItem, string, int>(genre, index.Item1, index.Item2));
+ }
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Error getting {0}", ex, item);
+ }
+ }
+ }
+
// Find studios
var studios = items.SelectMany(i => i.Studios)
.Where(i => !string.IsNullOrEmpty(i))