aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs
diff options
context:
space:
mode:
authorstefan <stefan@hegedues.at>2018-09-12 19:26:21 +0200
committerstefan <stefan@hegedues.at>2018-09-12 19:26:21 +0200
commit48facb797ed912e4ea6b04b17d1ff190ac2daac4 (patch)
tree8dae77a31670a888d733484cb17dd4077d5444e8 /Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs
parentc32d8656382a0eacb301692e0084377fc433ae9b (diff)
Update to 3.5.2 and .net core 2.1
Diffstat (limited to 'Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs')
-rw-r--r--Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs143
1 files changed, 46 insertions, 97 deletions
diff --git a/Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs b/Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs
index f051e856a..2543fd372 100644
--- a/Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs
+++ b/Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs
@@ -28,120 +28,70 @@ namespace Emby.Server.Implementations.UserViews
{
}
- protected override List<BaseItem> GetItemsWithImages(IHasMetadata item)
+ protected override List<BaseItem> GetItemsWithImages(BaseItem item)
{
var view = (CollectionFolder)item;
+ var viewType = view.CollectionType;
- var recursive = !new[] { CollectionType.Playlists, CollectionType.Channels }.Contains(view.CollectionType ?? string.Empty, StringComparer.OrdinalIgnoreCase);
+ string[] includeItemTypes;
- var result = view.GetItemList(new InternalItemsQuery
+ if (string.Equals(viewType, CollectionType.Movies))
{
- CollapseBoxSetItems = false,
- Recursive = recursive,
- ExcludeItemTypes = new[] { "UserView", "CollectionFolder", "Playlist" },
- DtoOptions = new DtoOptions(false)
-
- });
-
- var items = result.Select(i =>
+ includeItemTypes = new string[] { "Movie" };
+ }
+ else if (string.Equals(viewType, CollectionType.TvShows))
{
- var episode = i as Episode;
- if (episode != null)
- {
- var series = episode.Series;
- if (series != null)
- {
- return series;
- }
-
- return episode;
- }
-
- var season = i as Season;
- if (season != null)
- {
- var series = season.Series;
- if (series != null)
- {
- return series;
- }
-
- return season;
- }
-
- var audio = i as Audio;
- if (audio != null)
- {
- var album = audio.AlbumEntity;
- if (album != null && album.HasImage(ImageType.Primary))
- {
- return album;
- }
- }
-
- return i;
-
- }).DistinctBy(i => i.Id);
-
- return GetFinalItems(items.Where(i => i.HasImage(ImageType.Primary) || i.HasImage(ImageType.Thumb)), 8);
- }
-
- protected override bool Supports(IHasMetadata item)
- {
- return item is CollectionFolder;
- }
-
- protected override string CreateImage(IHasMetadata item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)
- {
- var outputPath = Path.ChangeExtension(outputPathWithoutExtension, ".png");
-
- if (imageType == ImageType.Primary)
+ includeItemTypes = new string[] { "Series" };
+ }
+ else if (string.Equals(viewType, CollectionType.Music))
{
- if (itemsWithImages.Count == 0)
- {
- return null;
- }
-
- return CreateThumbCollage(item, itemsWithImages, outputPath, 960, 540);
+ includeItemTypes = new string[] { "MusicAlbum" };
+ }
+ else if (string.Equals(viewType, CollectionType.Books))
+ {
+ includeItemTypes = new string[] { "Book", "AudioBook" };
+ }
+ else if (string.Equals(viewType, CollectionType.Games))
+ {
+ includeItemTypes = new string[] { "Game" };
+ }
+ else if (string.Equals(viewType, CollectionType.BoxSets))
+ {
+ includeItemTypes = new string[] { "BoxSet" };
+ }
+ else if (string.Equals(viewType, CollectionType.HomeVideos) || string.Equals(viewType, CollectionType.Photos))
+ {
+ includeItemTypes = new string[] { "Video", "Photo" };
+ }
+ else
+ {
+ includeItemTypes = new string[] { "Video", "Audio", "Photo", "Movie", "Series" };
}
- return base.CreateImage(item, itemsWithImages, outputPath, imageType, imageIndex);
- }
- }
-
- public class ManualCollectionFolderImageProvider : BaseDynamicImageProvider<ManualCollectionsFolder>
- {
- private readonly ILibraryManager _libraryManager;
-
- public ManualCollectionFolderImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IImageProcessor imageProcessor, ILibraryManager libraryManager) : base(fileSystem, providerManager, applicationPaths, imageProcessor)
- {
- _libraryManager = libraryManager;
- }
-
- protected override List<BaseItem> GetItemsWithImages(IHasMetadata item)
- {
- var view = (ManualCollectionsFolder)item;
-
- var recursive = !new[] { CollectionType.Playlists, CollectionType.Channels }.Contains(view.CollectionType ?? string.Empty, StringComparer.OrdinalIgnoreCase);
+ var recursive = !new[] { CollectionType.Playlists }.Contains(view.CollectionType ?? string.Empty, StringComparer.OrdinalIgnoreCase);
- var items = _libraryManager.GetItemList(new InternalItemsQuery
+ return view.GetItemList(new InternalItemsQuery
{
+ CollapseBoxSetItems = false,
Recursive = recursive,
- IncludeItemTypes = new[] { typeof(BoxSet).Name },
- Limit = 20,
- OrderBy = new [] { new Tuple<string, SortOrder>(ItemSortBy.Random, SortOrder.Ascending) },
- DtoOptions = new DtoOptions(false)
- });
+ DtoOptions = new DtoOptions(false),
+ ImageTypes = new ImageType[] { ImageType.Primary },
+ Limit = 8,
+ OrderBy = new ValueTuple<string, SortOrder>[]
+ {
+ new ValueTuple<string, SortOrder>(ItemSortBy.Random, SortOrder.Ascending)
+ },
+ IncludeItemTypes = includeItemTypes
- return GetFinalItems(items.Where(i => i.HasImage(ImageType.Primary) || i.HasImage(ImageType.Thumb)), 8);
+ }).ToList();
}
- protected override bool Supports(IHasMetadata item)
+ protected override bool Supports(BaseItem item)
{
- return item is ManualCollectionsFolder;
+ return item is CollectionFolder;
}
- protected override string CreateImage(IHasMetadata item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)
+ protected override string CreateImage(BaseItem item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)
{
var outputPath = Path.ChangeExtension(outputPathWithoutExtension, ".png");
@@ -158,5 +108,4 @@ namespace Emby.Server.Implementations.UserViews
return base.CreateImage(item, itemsWithImages, outputPath, imageType, imageIndex);
}
}
-
}