diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-11 21:35:18 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-11 21:35:18 -0400 |
| commit | d770a8af7c885ac141d4f4539abee0d5351bebee (patch) | |
| tree | 4650cd910c225ee30f8aa2c110615fb3475f7dff | |
| parent | 8d6a7a99926354d020c621d01a90e119e5d8795e (diff) | |
update default theme api
| -rw-r--r-- | MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs | 64 | ||||
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/ItemsService.cs | 2 |
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) { |
