From 95eaf88abd6a979b19f4ee998936ba6f2f4eef4b Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 9 Nov 2014 23:20:11 -0500 Subject: fixes #943 - Add web client filtering by genres, parental ratings, tags and years --- MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs') diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs b/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs index 3dcd4efbda..6b0c64b797 100644 --- a/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs +++ b/MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs @@ -96,6 +96,41 @@ namespace MediaBrowser.Api.UserLibrary [ApiMember(Name = "IsPlayed", Description = "Optional filter by items that are played, or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")] public bool? IsPlayed { get; set; } + /// + /// Limit results to items containing specific genres + /// + /// The genres. + [ApiMember(Name = "Genres", Description = "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)] + public string Genres { get; set; } + + [ApiMember(Name = "OfficialRatings", Description = "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)] + public string OfficialRatings { get; set; } + + [ApiMember(Name = "Tags", Description = "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)] + public string Tags { get; set; } + + /// + /// Limit results to items containing specific years + /// + /// The years. + [ApiMember(Name = "Years", Description = "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)] + public string Years { get; set; } + + public string[] GetGenres() + { + return (Genres ?? string.Empty).Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); + } + + public string[] GetTags() + { + return (Tags ?? string.Empty).Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); + } + + public string[] GetOfficialRatings() + { + return (OfficialRatings ?? string.Empty).Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); + } + public string[] GetMediaTypes() { return (MediaTypes ?? string.Empty).Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); @@ -110,6 +145,11 @@ namespace MediaBrowser.Api.UserLibrary { return (ExcludeItemTypes ?? string.Empty).Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); } + + public int[] GetYears() + { + return (Years ?? string.Empty).Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray(); + } /// /// Gets the filters. -- cgit v1.2.3