diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Collections/CollectionImageProvider.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Collections/CollectionImageProvider.cs | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/MediaBrowser.Server.Implementations/Collections/CollectionImageProvider.cs b/MediaBrowser.Server.Implementations/Collections/CollectionImageProvider.cs index f5ddbdb78..9ea457284 100644 --- a/MediaBrowser.Server.Implementations/Collections/CollectionImageProvider.cs +++ b/MediaBrowser.Server.Implementations/Collections/CollectionImageProvider.cs @@ -10,8 +10,10 @@ using MediaBrowser.Model.Entities; using MediaBrowser.Server.Implementations.Photos; using MoreLinq; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Threading.Tasks; +using CommonIO; namespace MediaBrowser.Server.Implementations.Collections { @@ -21,6 +23,17 @@ namespace MediaBrowser.Server.Implementations.Collections { } + protected override bool Supports(IHasImages item) + { + // Right now this is the only way to prevent this image from getting created ahead of internet image providers + if (!item.IsLocked) + { + return false; + } + + return base.Supports(item); + } + protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item) { var playlist = (BoxSet)item; @@ -62,7 +75,27 @@ namespace MediaBrowser.Server.Implementations.Collections .DistinctBy(i => i.Id) .ToList(); - return Task.FromResult(GetFinalItems(items)); + return Task.FromResult(GetFinalItems(items, 2)); + } + + protected override async Task<string> CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex) + { + var image = itemsWithImages + .Where(i => i.HasImage(ImageType.Primary) && i.GetImageInfo(ImageType.Primary, 0).IsLocalFile && Path.HasExtension(i.GetImagePath(ImageType.Primary))) + .Select(i => i.GetImagePath(ImageType.Primary)) + .FirstOrDefault(); + + if (string.IsNullOrWhiteSpace(image)) + { + return null; + } + + var ext = Path.GetExtension(image); + + var outputPath = Path.ChangeExtension(outputPathWithoutExtension, ext); + File.Copy(image, outputPath); + + return outputPath; } } } |
