aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager/ItemImageProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/Manager/ItemImageProvider.cs')
-rw-r--r--MediaBrowser.Providers/Manager/ItemImageProvider.cs37
1 files changed, 22 insertions, 15 deletions
diff --git a/MediaBrowser.Providers/Manager/ItemImageProvider.cs b/MediaBrowser.Providers/Manager/ItemImageProvider.cs
index 533e843ea..a3b569150 100644
--- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs
+++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs
@@ -36,16 +36,15 @@ namespace MediaBrowser.Providers.Manager
public bool ValidateImages(IHasImages item, IEnumerable<IImageProvider> providers, IDirectoryService directoryService)
{
- var hasChanges = item.ValidateImages(directoryService);
+ var hasChanges = false;
- foreach (var provider in providers.OfType<ILocalImageFileProvider>())
- {
- var images = provider.GetImages(item, directoryService);
+ var images = providers.OfType<ILocalImageFileProvider>()
+ .SelectMany(i => i.GetImages(item, directoryService))
+ .ToList();
- if (MergeImages(item, images))
- {
- hasChanges = true;
- }
+ if (MergeImages(item, images))
+ {
+ hasChanges = true;
}
return hasChanges;
@@ -377,8 +376,7 @@ namespace MediaBrowser.Providers.Manager
item.SetImagePath(type, image.FileInfo);
changed = true;
}
- else if (!string.Equals(currentImage.Path, image.FileInfo.FullName,
- StringComparison.OrdinalIgnoreCase))
+ else if (!string.Equals(currentImage.Path, image.FileInfo.FullName, StringComparison.OrdinalIgnoreCase))
{
item.SetImagePath(type, image.FileInfo);
changed = true;
@@ -389,6 +387,15 @@ namespace MediaBrowser.Providers.Manager
currentImage.Length = ((FileInfo) image.FileInfo).Length;
}
}
+ else
+ {
+ var existing = item.GetImageInfo(type, 0);
+ if (existing != null && !File.Exists(existing.Path))
+ {
+ item.RemoveImage(existing);
+ changed = true;
+ }
+ }
}
if (UpdateMultiImages(item, images, ImageType.Backdrop))
@@ -412,16 +419,16 @@ namespace MediaBrowser.Providers.Manager
{
var changed = false;
- var backdrops = images.Where(i => i.Type == type).ToList();
- if (backdrops.Count > 0)
+ var newImages = images.Where(i => i.Type == type).ToList();
+ if (newImages.Count > 0)
{
- var foundImages = images.Where(i => i.Type == type)
+ var newImageFileInfos = images.Where(i => i.Type == type)
.Select(i => i.FileInfo)
.ToList();
- if (foundImages.Count > 0)
+ if (newImageFileInfos.Count > 0)
{
- if (item.AddImages(type, foundImages))
+ if (item.AddImages(type, newImageFileInfos))
{
changed = true;
}