From e7ecd418c43b966bac3c34d09e6f97c1176a749c Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 21 Oct 2017 12:39:52 -0400 Subject: update home video library support --- .../UserViews/FolderImageProvider.cs | 100 +++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 Emby.Server.Implementations/UserViews/FolderImageProvider.cs (limited to 'Emby.Server.Implementations/UserViews/FolderImageProvider.cs') diff --git a/Emby.Server.Implementations/UserViews/FolderImageProvider.cs b/Emby.Server.Implementations/UserViews/FolderImageProvider.cs new file mode 100644 index 000000000..80a74e877 --- /dev/null +++ b/Emby.Server.Implementations/UserViews/FolderImageProvider.cs @@ -0,0 +1,100 @@ +using MediaBrowser.Common.Configuration; +using MediaBrowser.Controller.Drawing; +using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Providers; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Emby.Server.Implementations.Images; +using MediaBrowser.Model.IO; +using MediaBrowser.Model.Entities; +using MediaBrowser.Controller.Entities.Audio; +using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Querying; +using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Dto; + +namespace Emby.Server.Implementations.Photos +{ + public abstract class BaseFolderImageProvider : BaseDynamicImageProvider + where T : Folder, new () + { + protected ILibraryManager _libraryManager; + + public BaseFolderImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IImageProcessor imageProcessor, ILibraryManager libraryManager) + : base(fileSystem, providerManager, applicationPaths, imageProcessor) + { + _libraryManager = libraryManager; + } + + protected override List GetItemsWithImages(IHasMetadata item) + { + return _libraryManager.GetItemList(new InternalItemsQuery + { + Parent = item as BaseItem, + GroupByPresentationUniqueKey = false, + DtoOptions = new DtoOptions(true), + ImageTypes = new ImageType[] { ImageType.Primary } + }); + } + + protected override string CreateImage(IHasMetadata item, List itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) + { + return CreateSingleImage(itemsWithImages, outputPathWithoutExtension, ImageType.Primary); + } + + protected override bool Supports(IHasMetadata item) + { + if (item is PhotoAlbum || item is MusicAlbum) + { + return true; + } + + if (item.GetType() == typeof(Folder)) + { + var folder = item as Folder; + if (folder.IsTopParent) + { + return false; + } + return true; + } + + return false; + } + + protected override bool HasChangedByDate(IHasMetadata item, ItemImageInfo image) + { + if (item is MusicAlbum) + { + return false; + } + + return base.HasChangedByDate(item, image); + } + } + + public class FolderImageProvider : BaseFolderImageProvider + { + public FolderImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IImageProcessor imageProcessor, ILibraryManager libraryManager) + : base(fileSystem, providerManager, applicationPaths, imageProcessor, libraryManager) + { + } + } + + public class MusicAlbumImageProvider : BaseFolderImageProvider + { + public MusicAlbumImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IImageProcessor imageProcessor, ILibraryManager libraryManager) + : base(fileSystem, providerManager, applicationPaths, imageProcessor, libraryManager) + { + } + } + + public class PhotoAlbumImageProvider : BaseFolderImageProvider + { + public PhotoAlbumImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IImageProcessor imageProcessor, ILibraryManager libraryManager) + : base(fileSystem, providerManager, applicationPaths, imageProcessor, libraryManager) + { + } + } +} -- cgit v1.2.3