aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager/MetadataService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/Manager/MetadataService.cs')
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs19
1 files changed, 13 insertions, 6 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index 0605b0bd7..834ef29f5 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -12,6 +12,7 @@ using Jellyfin.Extensions;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
@@ -108,7 +109,7 @@ namespace MediaBrowser.Providers.Manager
try
{
// Always validate images and check for new locally stored ones.
- if (ImageProvider.ValidateImages(item, allImageProviders.OfType<ILocalImageProvider>(), refreshOptions.DirectoryService))
+ if (ImageProvider.ValidateImages(item, allImageProviders.OfType<ILocalImageProvider>(), refreshOptions))
{
updateType |= ItemUpdateType.ImageUpdate;
}
@@ -672,6 +673,7 @@ namespace MediaBrowser.Providers.Manager
}
var hasLocalMetadata = false;
+ var foundImageTypes = new List<ImageType>();
foreach (var provider in providers.OfType<ILocalMetadataProvider<TItemType>>())
{
@@ -698,6 +700,9 @@ namespace MediaBrowser.Providers.Manager
await ProviderManager.SaveImage(item, remoteImage.Url, remoteImage.Type, null, cancellationToken).ConfigureAwait(false);
refreshResult.UpdateType |= ItemUpdateType.ImageUpdate;
+
+ // remember imagetype that has just been downloaded
+ foundImageTypes.Add(remoteImage.Type);
}
catch (HttpRequestException ex)
{
@@ -705,7 +710,12 @@ namespace MediaBrowser.Providers.Manager
}
}
- if (imageService.MergeImages(item, localItem.Images))
+ if (foundImageTypes.Count > 0)
+ {
+ imageService.UpdateReplaceImages(options, foundImageTypes);
+ }
+
+ if (imageService.MergeImages(item, localItem.Images, options))
{
refreshResult.UpdateType |= ItemUpdateType.ImageUpdate;
}
@@ -868,10 +878,7 @@ namespace MediaBrowser.Providers.Manager
var key = providerId.Key;
// Don't replace existing Id's.
- if (!lookupInfo.ProviderIds.ContainsKey(key))
- {
- lookupInfo.ProviderIds[key] = providerId.Value;
- }
+ lookupInfo.ProviderIds.TryAdd(key, providerId.Value);
}
}