aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api')
-rw-r--r--MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs12
-rw-r--r--MediaBrowser.Api/DefaultTheme/Models.cs5
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs20
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))
{