aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs')
-rw-r--r--MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs67
1 files changed, 23 insertions, 44 deletions
diff --git a/MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs b/MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs
index 7bcbbd6a8..4a4d90d14 100644
--- a/MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs
+++ b/MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs
@@ -1,5 +1,6 @@
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.IO;
+using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.TV;
@@ -22,8 +23,8 @@ namespace MediaBrowser.Server.Implementations.UserViews
private readonly IUserManager _userManager;
private readonly ILibraryManager _libraryManager;
- public DynamicImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IUserManager userManager, ILibraryManager libraryManager)
- : base(fileSystem, providerManager, applicationPaths)
+ public DynamicImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IImageProcessor imageProcessor, IUserManager userManager, ILibraryManager libraryManager)
+ : base(fileSystem, providerManager, applicationPaths, imageProcessor)
{
_userManager = userManager;
_libraryManager = libraryManager;
@@ -61,42 +62,18 @@ namespace MediaBrowser.Server.Implementations.UserViews
return new List<BaseItem>();
}
- if (string.Equals(view.ViewType, SpecialFolder.GameGenre, StringComparison.OrdinalIgnoreCase))
- {
- var list = new List<BaseItem>();
-
- var genre = _libraryManager.GetGameGenre(view.Name);
-
- if (genre.HasImage(ImageType.Primary) || genre.HasImage(ImageType.Thumb))
- {
- list.Add(genre);
- }
- return list;
- }
- if (string.Equals(view.ViewType, SpecialFolder.MusicGenre, StringComparison.OrdinalIgnoreCase))
- {
- var list = new List<BaseItem>();
-
- var genre = _libraryManager.GetMusicGenre(view.Name);
-
- if (genre.HasImage(ImageType.Primary) || genre.HasImage(ImageType.Thumb))
- {
- list.Add(genre);
- }
- return list;
- }
- if (string.Equals(view.ViewType, SpecialFolder.MovieGenre, StringComparison.OrdinalIgnoreCase) ||
+ if (string.Equals(view.ViewType, SpecialFolder.GameGenre, StringComparison.OrdinalIgnoreCase) ||
+ string.Equals(view.ViewType, SpecialFolder.MusicGenre, StringComparison.OrdinalIgnoreCase) ||
+ string.Equals(view.ViewType, SpecialFolder.MovieGenre, StringComparison.OrdinalIgnoreCase) ||
string.Equals(view.ViewType, SpecialFolder.TvGenre, StringComparison.OrdinalIgnoreCase))
{
- var list = new List<BaseItem>();
-
- var genre = _libraryManager.GetGenre(view.Name);
-
- if (genre.HasImage(ImageType.Primary) || genre.HasImage(ImageType.Thumb))
+ var userItemsResult = await view.GetItems(new InternalItemsQuery
{
- list.Add(genre);
- }
- return list;
+ User = _userManager.GetUserById(view.UserId.Value),
+ CollapseBoxSetItems = false
+ });
+
+ return userItemsResult.Items.ToList();
}
var isUsingCollectionStrip = IsUsingCollectionStrip(view);
@@ -202,6 +179,7 @@ namespace MediaBrowser.Server.Implementations.UserViews
SpecialFolder.MusicGenres,
SpecialFolder.MusicGenre,
SpecialFolder.MusicLatest,
+ SpecialFolder.MusicPlaylists,
SpecialFolder.MusicSongs,
SpecialFolder.MusicFavorites,
SpecialFolder.MusicFavoriteArtists,
@@ -238,25 +216,28 @@ namespace MediaBrowser.Server.Implementations.UserViews
return collectionStripViewTypes.Contains(view.ViewType ?? string.Empty);
}
- protected override async Task<Stream> CreateImageAsync(IHasImages item, List<BaseItem> itemsWithImages, ImageType imageType, int imageIndex)
+ protected override bool CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPath, ImageType imageType, int imageIndex)
{
var view = (UserView)item;
if (imageType == ImageType.Primary && IsUsingCollectionStrip(view))
{
if (itemsWithImages.Count == 0 && !string.Equals(view.ViewType, CollectionType.LiveTv, StringComparison.OrdinalIgnoreCase))
{
- return null;
+ return false;
}
- return new StripCollageBuilder(ApplicationPaths).BuildThumbCollage(GetStripCollageImagePaths(itemsWithImages, view.ViewType), 960, 540, false, item.Name);
+ CreateThumbCollage(item, itemsWithImages, outputPath, 960, 540, false, item.Name);
+ return true;
}
- return await base.CreateImageAsync(item, itemsWithImages, imageType, imageIndex);
+ return base.CreateImage(item, itemsWithImages, outputPath, imageType, imageIndex);
}
- private IEnumerable<String> GetStripCollageImagePaths(IEnumerable<BaseItem> items, string viewType)
+ protected override IEnumerable<String> GetStripCollageImagePaths(IHasImages primaryItem, IEnumerable<BaseItem> items)
{
- if (string.Equals(viewType, CollectionType.LiveTv, StringComparison.OrdinalIgnoreCase))
+ var userView = primaryItem as UserView;
+
+ if (userView != null && string.Equals(userView.ViewType, CollectionType.LiveTv, StringComparison.OrdinalIgnoreCase))
{
var list = new List<string>();
for (int i = 1; i <= 8; i++)
@@ -266,9 +247,7 @@ namespace MediaBrowser.Server.Implementations.UserViews
return list;
}
- return items
- .Select(i => i.GetImagePath(ImageType.Primary) ?? i.GetImagePath(ImageType.Thumb))
- .Where(i => !string.IsNullOrWhiteSpace(i));
+ return base.GetStripCollageImagePaths(primaryItem, items);
}
private string ExtractLiveTvResource(string name, IApplicationPaths paths)