aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs77
1 files changed, 52 insertions, 25 deletions
diff --git a/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs b/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs
index ef12544ba..4b7e1c3a7 100644
--- a/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs
+++ b/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs
@@ -53,10 +53,23 @@ namespace MediaBrowser.Server.Implementations.Photos
return ItemUpdateType.None;
}
- var primaryResult = await FetchAsync(item, ImageType.Primary, options, cancellationToken).ConfigureAwait(false);
- var thumbResult = await FetchAsync(item, ImageType.Thumb, options, cancellationToken).ConfigureAwait(false);
+ var updateType = ItemUpdateType.None;
+ var supportedImages = GetSupportedImages(item).ToList();
- return primaryResult | thumbResult;
+ if (supportedImages.Contains(ImageType.Primary))
+ {
+ var primaryResult = await FetchAsync(item, ImageType.Primary, options, cancellationToken).ConfigureAwait(false);
+ updateType = updateType | primaryResult;
+ }
+
+ if (supportedImages.Contains(ImageType.Thumb))
+ {
+ var thumbResult = await FetchAsync(item, ImageType.Thumb, options, cancellationToken).ConfigureAwait(false);
+ updateType = updateType | thumbResult;
+ }
+
+
+ return updateType;
}
protected async Task<ItemUpdateType> FetchAsync(IHasImages item, ImageType imageType, MetadataRefreshOptions options, CancellationToken cancellationToken)
@@ -103,9 +116,9 @@ namespace MediaBrowser.Server.Implementations.Photos
return parts.GetMD5().ToString("N");
}
- protected Task<bool> CreateThumbCollage(IHasImages primaryItem, List<BaseItem> items, string outputPath, bool drawText)
+ protected Task<bool> CreateThumbCollage(IHasImages primaryItem, List<BaseItem> items, string outputPath)
{
- return CreateCollage(primaryItem, items, outputPath, 960, 540, drawText, primaryItem.Name);
+ return CreateCollage(primaryItem, items, outputPath, 640, 360);
}
protected virtual IEnumerable<string> GetStripCollageImagePaths(IHasImages primaryItem, IEnumerable<BaseItem> items)
@@ -117,20 +130,20 @@ namespace MediaBrowser.Server.Implementations.Photos
protected Task<bool> CreatePosterCollage(IHasImages primaryItem, List<BaseItem> items, string outputPath)
{
- return CreateCollage(primaryItem, items, outputPath, 600, 900, true, primaryItem.Name);
+ return CreateCollage(primaryItem, items, outputPath, 400, 600);
}
- protected Task<bool> CreateSquareCollage(IHasImages primaryItem, List<BaseItem> items, string outputPath, bool drawText)
+ protected Task<bool> CreateSquareCollage(IHasImages primaryItem, List<BaseItem> items, string outputPath)
{
- return CreateCollage(primaryItem, items, outputPath, 800, 800, drawText, primaryItem.Name);
+ return CreateCollage(primaryItem, items, outputPath, 600, 600);
}
- protected Task<bool> CreateThumbCollage(IHasImages primaryItem, List<BaseItem> items, string outputPath, int width, int height, bool drawText, string text)
+ protected Task<bool> CreateThumbCollage(IHasImages primaryItem, List<BaseItem> items, string outputPath, int width, int height)
{
- return CreateCollage(primaryItem, items, outputPath, width, height, drawText, text);
+ return CreateCollage(primaryItem, items, outputPath, width, height);
}
- private Task<bool> CreateCollage(IHasImages primaryItem, List<BaseItem> items, string outputPath, int width, int height, bool drawText, string text)
+ private Task<bool> CreateCollage(IHasImages primaryItem, List<BaseItem> items, string outputPath, int width, int height)
{
Directory.CreateDirectory(Path.GetDirectoryName(outputPath));
@@ -139,7 +152,6 @@ namespace MediaBrowser.Server.Implementations.Photos
Height = height,
Width = width,
OutputPath = outputPath,
- Text = drawText ? text : null,
InputPaths = GetStripCollageImagePaths(primaryItem, items).ToArray()
};
@@ -168,27 +180,22 @@ namespace MediaBrowser.Server.Implementations.Photos
return false;
}
- var drawText = !(item is UserView);
-
if (imageType == ImageType.Thumb)
{
- return await CreateThumbCollage(item, itemsWithImages, outputPath, drawText).ConfigureAwait(false);
+ return await CreateThumbCollage(item, itemsWithImages, outputPath).ConfigureAwait(false);
}
if (imageType == ImageType.Primary)
{
if (item is UserView)
{
- return await CreateSquareCollage(item, itemsWithImages, outputPath, drawText).ConfigureAwait(false);
+ return await CreateSquareCollage(item, itemsWithImages, outputPath).ConfigureAwait(false);
}
- else if (item is PhotoAlbum || item is Playlist)
+ if (item is PhotoAlbum || item is Playlist)
{
- return await CreateSquareCollage(item, itemsWithImages, outputPath, drawText).ConfigureAwait(false);
- }
- else
- {
- return await CreatePosterCollage(item, itemsWithImages, outputPath).ConfigureAwait(false);
+ return await CreateSquareCollage(item, itemsWithImages, outputPath).ConfigureAwait(false);
}
+ return await CreatePosterCollage(item, itemsWithImages, outputPath).ConfigureAwait(false);
}
throw new ArgumentException("Unexpected image type");
@@ -203,15 +210,35 @@ namespace MediaBrowser.Server.Implementations.Photos
return false;
}
- if (item is UserView)
+ var supportedImages = GetSupportedImages(item).ToList();
+
+ if (item is UserView || item is ICollectionFolder)
{
- return HasChanged(item, ImageType.Primary);
+ if (supportedImages.Contains(ImageType.Primary) && HasChanged(item, ImageType.Primary))
+ {
+ return true;
+ }
+ if (supportedImages.Contains(ImageType.Thumb) && HasChanged(item, ImageType.Thumb))
+ {
+ return true;
+ }
+
+ return false;
}
var items = GetItemsWithImages(item).Result;
var cacheKey = GetConfigurationCacheKey(items, item.Name);
- return HasChanged(item, ImageType.Primary, cacheKey) || HasChanged(item, ImageType.Thumb, cacheKey);
+ if (supportedImages.Contains(ImageType.Primary) && HasChanged(item, ImageType.Primary, cacheKey))
+ {
+ return true;
+ }
+ if (supportedImages.Contains(ImageType.Thumb) && HasChanged(item, ImageType.Thumb, cacheKey))
+ {
+ return true;
+ }
+
+ return false;
}
protected bool HasChanged(IHasImages item, ImageType type, string cacheKey)