@ -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 ;