diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs | 67 |
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) |
