aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Collections/CollectionImageProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Collections/CollectionImageProvider.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Collections/CollectionImageProvider.cs35
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;
}
}
}