|
@@ -53,6 +53,9 @@ namespace MediaBrowser.Api.UserLibrary
|
|
|
[ApiMember(Name = "Studios", Description = "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
|
|
|
public string Studios { get; set; }
|
|
|
|
|
|
+ [ApiMember(Name = "StudioIds", Description = "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
|
|
|
+ public string StudioIds { get; set; }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// Gets or sets the studios.
|
|
|
/// </summary>
|
|
@@ -231,6 +234,11 @@ namespace MediaBrowser.Api.UserLibrary
|
|
|
return (Studios ?? string.Empty).Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
}
|
|
|
|
|
|
+ public string[] GetStudioIds()
|
|
|
+ {
|
|
|
+ return (StudioIds ?? string.Empty).Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
+ }
|
|
|
+
|
|
|
public string[] GetPersonTypes()
|
|
|
{
|
|
|
return (PersonTypes ?? string.Empty).Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
|
@@ -467,6 +475,7 @@ namespace MediaBrowser.Api.UserLibrary
|
|
|
OfficialRatings = request.GetOfficialRatings(),
|
|
|
Genres = request.GetGenres(),
|
|
|
Studios = request.GetStudios(),
|
|
|
+ StudioIds = request.GetStudioIds(),
|
|
|
Person = request.Person,
|
|
|
PersonTypes = request.GetPersonTypes(),
|
|
|
Years = request.GetYears(),
|
|
@@ -945,6 +954,17 @@ namespace MediaBrowser.Api.UserLibrary
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ // Apply studio filter
|
|
|
+ var studioIds = request.GetStudioIds();
|
|
|
+ if (studioIds.Length > 0 && !studioIds.Any(id =>
|
|
|
+ {
|
|
|
+ var studioItem = libraryManager.GetItemById(id);
|
|
|
+ return studioItem != null && i.Studios.Contains(studioItem.Name, StringComparer.OrdinalIgnoreCase);
|
|
|
+ }))
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
// Apply year filter
|
|
|
var years = request.GetYears();
|
|
|
if (years.Length > 0 && !(i.ProductionYear.HasValue && years.Contains(i.ProductionYear.Value)))
|
|
@@ -1019,14 +1039,8 @@ namespace MediaBrowser.Api.UserLibrary
|
|
|
|
|
|
if (!(audio != null && artistIds.Any(id =>
|
|
|
{
|
|
|
- try
|
|
|
- {
|
|
|
- return audio.HasAnyArtist(libraryManager.GetItemById(id).Name);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
+ var artistItem = libraryManager.GetItemById(id);
|
|
|
+ return artistItem != null && audio.HasAnyArtist(artistItem.Name);
|
|
|
})))
|
|
|
{
|
|
|
return false;
|