Jelajahi Sumber

update search

Luke Pulverenti 8 tahun lalu
induk
melakukan
384a35d878

+ 3 - 2
Emby.Server.Implementations/Library/SearchEngine.cs

@@ -98,7 +98,7 @@ namespace Emby.Server.Implementations.Library
 
             var hints = new List<Tuple<BaseItem, string, int>>();
 
-            var excludeItemTypes = new List<string>();
+            var excludeItemTypes = query.ExcludeItemTypes.ToList();
             var includeItemTypes = (query.IncludeItemTypes ?? new string[] { }).ToList();
 
             excludeItemTypes.Add(typeof(Year).Name);
@@ -174,7 +174,8 @@ namespace Emby.Server.Implementations.Library
                 IsMovie = query.IsMovie,
                 IsNews = query.IsNews,
                 IsSeries = query.IsSeries,
-                IsSports = query.IsSports
+                IsSports = query.IsSports,
+                MediaTypes = query.MediaTypes
             });
 
             // Add search hints based on item name

+ 8 - 0
MediaBrowser.Api/SearchService.cs

@@ -67,6 +67,12 @@ namespace MediaBrowser.Api
         [ApiMember(Name = "IncludeItemTypes", Description = "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
         public string IncludeItemTypes { get; set; }
 
+        [ApiMember(Name = "ExcludeItemTypes", Description = "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
+        public string ExcludeItemTypes { get; set; }
+
+        [ApiMember(Name = "MediaTypes", Description = "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
+        public string MediaTypes { get; set; }
+
         public string ParentId { get; set; }
 
         [ApiMember(Name = "IsMovie", Description = "Optional filter for movies.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET,POST")]
@@ -154,6 +160,8 @@ namespace MediaBrowser.Api
                 StartIndex = request.StartIndex,
                 UserId = request.UserId,
                 IncludeItemTypes = (request.IncludeItemTypes ?? string.Empty).Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).ToArray(),
+                ExcludeItemTypes = (request.ExcludeItemTypes ?? string.Empty).Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).ToArray(),
+                MediaTypes = (request.MediaTypes ?? string.Empty).Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).ToArray(),
                 ParentId = request.ParentId,
 
                 IsKids = request.IsKids,

+ 4 - 0
MediaBrowser.Model/Search/SearchQuery.cs

@@ -33,7 +33,9 @@ namespace MediaBrowser.Model.Search
         public bool IncludeStudios { get; set; }
         public bool IncludeArtists { get; set; }
 
+        public string[] MediaTypes { get; set; }
         public string[] IncludeItemTypes { get; set; }
+        public string[] ExcludeItemTypes { get; set; }
         public string ParentId { get; set; }
 
         public bool? IsMovie { get; set; }
@@ -54,7 +56,9 @@ namespace MediaBrowser.Model.Search
             IncludePeople = true;
             IncludeStudios = true;
 
+            MediaTypes = new string[] { };
             IncludeItemTypes = new string[] { };
+            ExcludeItemTypes = new string[] { };
         }
     }
 }