aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-15 15:33:23 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-15 15:33:23 -0400
commitd2b6b91ab60cc4ec97416e1de3750d669be578d8 (patch)
tree0f20ccc2416d11b73c8bca80fabbfb6ef758766f
parent7ecbf44590971bf8bcea2fee6b6f71ed172c76c9 (diff)
added players filter to games view
-rw-r--r--MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs34
-rw-r--r--MediaBrowser.Api/DefaultTheme/Models.cs5
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs22
-rw-r--r--MediaBrowser.Providers/TV/RemoteSeriesProvider.cs6
4 files changed, 35 insertions, 32 deletions
diff --git a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
index a2f7b153f..21ddcd028 100644
--- a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
+++ b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
@@ -36,8 +36,8 @@ namespace MediaBrowser.Api.DefaultTheme
[ApiMember(Name = "UserId", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "GET")]
public Guid UserId { get; set; }
- [ApiMember(Name = "FamilyRating", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
- public string FamilyRating { get; set; }
+ [ApiMember(Name = "FamilyGenre", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
+ public string FamilyGenre { get; set; }
[ApiMember(Name = "ComedyGenre", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
public string ComedyGenre { get; set; }
@@ -185,8 +185,6 @@ namespace MediaBrowser.Api.DefaultTheme
var itemsWithBackdrops = items.Where(i => i.BackdropImagePaths.Count > 0 && !(i is Trailer))
.ToList();
- var baselineRating = _localization.GetRatingLevel(request.FamilyRating ?? "PG");
-
var view = new MoviesView();
var movies = items.OfType<Movie>()
@@ -194,7 +192,9 @@ namespace MediaBrowser.Api.DefaultTheme
var hdMovies = movies.Where(i => i.IsHd).ToList();
- var familyMovies = movies.Where(i => IsFamilyMovie(i, baselineRating)).ToList();
+ var familyGenres = request.FamilyGenre.Split(',').ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
+
+ var familyMovies = movies.Where(i => i.Genres.Any(familyGenres.ContainsKey)).ToList();
view.HDMoviePercentage = 100 * hdMovies.Count;
view.HDMoviePercentage /= movies.Count;
@@ -323,30 +323,6 @@ namespace MediaBrowser.Api.DefaultTheme
}
}
- private bool IsFamilyMovie(BaseItem item, int? baselineRating)
- {
- var ratingString = item.CustomRating;
-
- if (string.IsNullOrEmpty(ratingString))
- {
- ratingString = item.OfficialRating;
- }
-
- if (string.IsNullOrEmpty(ratingString))
- {
- return false;
- }
-
- var rating = _localization.GetRatingLevel(ratingString);
-
- if (!baselineRating.HasValue || !rating.HasValue)
- {
- return false;
- }
-
- return rating.Value <= baselineRating.Value;
- }
-
private async Task<ItemStub[]> GetActors(IEnumerable<BaseItem> mediaItems)
{
var actorStubs = new List<ItemStub>();
diff --git a/MediaBrowser.Api/DefaultTheme/Models.cs b/MediaBrowser.Api/DefaultTheme/Models.cs
index a4167bf33..a25bb4bb1 100644
--- a/MediaBrowser.Api/DefaultTheme/Models.cs
+++ b/MediaBrowser.Api/DefaultTheme/Models.cs
@@ -43,6 +43,11 @@ namespace MediaBrowser.Api.DefaultTheme
public ItemStub[] ComedyItems { get; set; }
}
+ public class GamesView
+ {
+ public BaseItemDto[] SpotlightItems { get; set; }
+ }
+
public class HomeView
{
public BaseItemDto[] SpotlightItems { get; set; }
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index 879df7e3c..40ce84405 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -164,6 +164,9 @@ namespace MediaBrowser.Api.UserLibrary
[ApiMember(Name = "MinIndexNumber", Description = "Optional filter by minimum index number.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
public int? MinIndexNumber { get; set; }
+ [ApiMember(Name = "MinPlayers", Description = "Optional filter by minimum number of game players.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
+ public int? MinPlayers { get; set; }
+
[ApiMember(Name = "ParentIndexNumber", Description = "Optional filter by parent index number.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
public int? ParentIndexNumber { get; set; }
@@ -670,6 +673,25 @@ namespace MediaBrowser.Api.UserLibrary
items = items.Where(i => request.HasThemeVideo.Value ? i.ThemeVideoIds.Count > 0 : i.ThemeVideoIds.Count == 0);
}
+ if (request.MinPlayers.HasValue)
+ {
+ var filterValue = request.MinPlayers.Value;
+
+ items = items.Where(i =>
+ {
+ var game = i as Game;
+
+ if (game != null)
+ {
+ var players = game.PlayersSupported ?? 1;
+
+ return players >= filterValue;
+ }
+
+ return false;
+ });
+ }
+
if (request.HasSpecialFeature.HasValue)
{
var filterValue = request.HasSpecialFeature.Value;
diff --git a/MediaBrowser.Providers/TV/RemoteSeriesProvider.cs b/MediaBrowser.Providers/TV/RemoteSeriesProvider.cs
index beacd962c..e1ebdba5e 100644
--- a/MediaBrowser.Providers/TV/RemoteSeriesProvider.cs
+++ b/MediaBrowser.Providers/TV/RemoteSeriesProvider.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using MediaBrowser.Common.Configuration;
+using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
@@ -10,6 +9,7 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;
using System;
+using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
@@ -149,7 +149,7 @@ namespace MediaBrowser.Providers.TV
{
get
{
- return "1";
+ return "2";
}
}