diff options
Diffstat (limited to 'MediaBrowser.Api')
| -rw-r--r-- | MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs | 12 | ||||
| -rw-r--r-- | MediaBrowser.Api/DefaultTheme/Models.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/ItemsService.cs | 20 |
3 files changed, 36 insertions, 1 deletions
diff --git a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs index 77f4f3dba..d0f095f5b 100644 --- a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs +++ b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs @@ -33,6 +33,9 @@ namespace MediaBrowser.Api.DefaultTheme [ApiMember(Name = "RomanceGenre", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)] public string RomanceGenre { get; set; } + + [ApiMember(Name = "TopCommunityRating", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")] + public double TopCommunityRating { get; set; } } [Route("/MBT/DefaultTheme/Movies", "GET")] @@ -260,7 +263,14 @@ namespace MediaBrowser.Api.DefaultTheme var seriesWithBackdrops = series.Where(i => i.BackdropImagePaths.Count > 0).ToList(); - var view = new TvView(); + var view = new TvView + { + SeriesCount = series.Count, + + FavoriteSeriesCount = series.Count(i => _userDataManager.GetUserData(user.Id, i.GetUserDataKey()).IsFavorite), + + TopCommunityRatedSeriesCount = series.Count(i => i.CommunityRating.HasValue && i.CommunityRating.Value >= request.TopCommunityRating) + }; var fields = new List<ItemFields>(); diff --git a/MediaBrowser.Api/DefaultTheme/Models.cs b/MediaBrowser.Api/DefaultTheme/Models.cs index f44387326..70f95a90f 100644 --- a/MediaBrowser.Api/DefaultTheme/Models.cs +++ b/MediaBrowser.Api/DefaultTheme/Models.cs @@ -40,6 +40,11 @@ namespace MediaBrowser.Api.DefaultTheme public List<ItemStub> RomanceItems { get; set; } public List<ItemStub> ComedyItems { get; set; } + + public int SeriesCount { get; set; } + public int FavoriteSeriesCount { get; set; } + public int TopCommunityRatedSeriesCount { get; set; } + public int InProgressSeriesCount { get; set; } } public class GamesView : BaseView diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index b6963f8b2..29a894b1c 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -196,6 +196,12 @@ namespace MediaBrowser.Api.UserLibrary [ApiMember(Name = "IsVirtualUnaired", Description = "Optional filter by items that are virtual unaired episodes or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")] public bool? IsVirtualUnaired { get; set; } + + [ApiMember(Name = "MinCommunityRating", Description = "Optional filter by minimum community rating.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")] + public double? MinCommunityRating { get; set; } + + [ApiMember(Name = "MinCriticRating", Description = "Optional filter by minimum critic rating.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")] + public double? MinCriticRating { get; set; } } /// <summary> @@ -564,6 +570,20 @@ namespace MediaBrowser.Api.UserLibrary /// <returns>IEnumerable{BaseItem}.</returns> private IEnumerable<BaseItem> ApplyAdditionalFilters(GetItems request, IEnumerable<BaseItem> items, User user) { + if (request.MinCommunityRating.HasValue) + { + var val = request.MinCommunityRating.Value; + + items = items.Where(i => i.CommunityRating.HasValue && i.CommunityRating >= val); + } + + if (request.MinCriticRating.HasValue) + { + var val = request.MinCriticRating.Value; + + items = items.Where(i => i.CriticRating.HasValue && i.CriticRating >= val); + } + // Artists if (!string.IsNullOrEmpty(request.Artists)) { |
