aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-11 21:35:18 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-11 21:35:18 -0400
commitd770a8af7c885ac141d4f4539abee0d5351bebee (patch)
tree4650cd910c225ee30f8aa2c110615fb3475f7dff
parent8d6a7a99926354d020c621d01a90e119e5d8795e (diff)
update default theme api
-rw-r--r--MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs64
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs2
2 files changed, 40 insertions, 26 deletions
diff --git a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
index d4f824198..ba6e44582 100644
--- a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
+++ b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
@@ -41,7 +41,7 @@ namespace MediaBrowser.Api.DefaultTheme
private readonly ILibraryManager _libraryManager;
private readonly ILocalizationManager _localization;
-
+
public DefaultThemeService(IUserManager userManager, IDtoService dtoService, ILogger logger, ILibraryManager libraryManager, ILocalizationManager localization)
{
_userManager = userManager;
@@ -70,21 +70,20 @@ namespace MediaBrowser.Api.DefaultTheme
var view = new TvView();
- var fields = Enum.GetNames(typeof(ItemFields))
- .Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true))
- .ToList();
+ var fields = new List<ItemFields>();
var spotlightItemTasks = seriesWithBackdrops
+ .OrderByDescending(i => GetResolution(i, i.BackdropImagePaths[0]))
+ .Take(60)
.OrderBy(i => Guid.NewGuid())
- .Take(30)
.Select(i => _dtoService.GetBaseItemDto(i, fields, user));
view.SpotlightItems = await Task.WhenAll(spotlightItemTasks).ConfigureAwait(false);
view.ShowsItems = series
- .Where(i => !string.IsNullOrEmpty(i.PrimaryImagePath))
+ .Where(i => i.BackdropImagePaths.Count > 0)
.OrderBy(i => Guid.NewGuid())
- .Select(i => GetItemStub(i, ImageType.Primary))
+ .Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
.ToArray();
@@ -131,25 +130,24 @@ namespace MediaBrowser.Api.DefaultTheme
view.FamilyMoviePercentage = 100 * familyMovies.Count;
view.FamilyMoviePercentage /= movies.Count;
-
- var moviesWithImages = movies
- .Where(i => !string.IsNullOrEmpty(i.PrimaryImagePath))
- .ToList();
- var fields = Enum.GetNames(typeof(ItemFields))
- .Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true))
- .ToList();
+ var moviesWithBackdrops = movies
+ .Where(i => i.BackdropImagePaths.Count > 0)
+ .ToList();
+
+ var fields = new List<ItemFields>();
var spotlightItemTasks = itemsWithBackdrops
+ .OrderByDescending(i => GetResolution(i, i.BackdropImagePaths[0]))
+ .Take(60)
.OrderBy(i => Guid.NewGuid())
- .Take(30)
.Select(i => _dtoService.GetBaseItemDto(i, fields, user));
view.SpotlightItems = await Task.WhenAll(spotlightItemTasks).ConfigureAwait(false);
- view.MovieItems = moviesWithImages
+ view.MovieItems = moviesWithBackdrops
.OrderBy(i => Guid.NewGuid())
- .Select(i => GetItemStub(i, ImageType.Primary))
+ .Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
.ToArray();
@@ -165,33 +163,33 @@ namespace MediaBrowser.Api.DefaultTheme
view.BoxSetItems = items
.OfType<BoxSet>()
- .Where(i => !string.IsNullOrEmpty(i.PrimaryImagePath))
+ .Where(i => i.BackdropImagePaths.Count > 0)
.OrderBy(i => Guid.NewGuid())
- .Select(i => GetItemStub(i, ImageType.Primary))
+ .Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
.ToArray();
- view.ThreeDItems = moviesWithImages
+ view.ThreeDItems = moviesWithBackdrops
.Where(i => i.Is3D)
.OrderBy(i => Guid.NewGuid())
- .Select(i => GetItemStub(i, ImageType.Primary))
+ .Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
.ToArray();
view.HDItems = hdMovies
- .Where(i => !string.IsNullOrEmpty(i.PrimaryImagePath))
+ .Where(i => i.BackdropImagePaths.Count > 0)
.OrderBy(i => Guid.NewGuid())
- .Select(i => GetItemStub(i, ImageType.Primary))
+ .Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
.ToArray();
view.FamilyMovies = familyMovies
- .Where(i => !string.IsNullOrEmpty(i.PrimaryImagePath))
+ .Where(i => i.BackdropImagePaths.Count > 0)
.OrderBy(i => Guid.NewGuid())
- .Select(i => GetItemStub(i, ImageType.Primary))
+ .Select(i => GetItemStub(i, ImageType.Backdrop))
.Where(i => i != null)
.Take(3)
.ToArray();
@@ -201,6 +199,22 @@ namespace MediaBrowser.Api.DefaultTheme
return view;
}
+ private double GetResolution(BaseItem item, string path)
+ {
+ try
+ {
+ var date = Kernel.Instance.ImageManager.GetImageDateModified(item, path);
+
+ var size = Kernel.Instance.ImageManager.GetImageSize(path, date).Result;
+
+ return size.Width;
+ }
+ catch
+ {
+ return 0;
+ }
+ }
+
private bool IsFamilyMovie(BaseItem item, int? baselineRating)
{
var ratingString = item.CustomRating;
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index 80246a5d8..727facf9a 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -509,7 +509,7 @@ namespace MediaBrowser.Api.UserLibrary
// Max official rating
if (!string.IsNullOrEmpty(request.MaxOfficialRating))
{
- var level = _localization.GetRatingLevel(request.MinOfficialRating);
+ var level = _localization.GetRatingLevel(request.MaxOfficialRating);
if (level.HasValue)
{