|
@@ -26,6 +26,8 @@ namespace MediaBrowser.Providers.Manager
|
|
|
where TItemType : BaseItem, IHasLookupInfo<TIdType>, new()
|
|
|
where TIdType : ItemLookupInfo, new()
|
|
|
{
|
|
|
+ private static readonly ImageType[] AllImageTypes = Enum.GetValues<ImageType>();
|
|
|
+
|
|
|
protected MetadataService(IServerConfigurationManager serverConfigurationManager, ILogger<MetadataService<TItemType, TIdType>> logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager)
|
|
|
{
|
|
|
ServerConfigurationManager = serverConfigurationManager;
|
|
@@ -672,6 +674,8 @@ namespace MediaBrowser.Providers.Manager
|
|
|
}
|
|
|
|
|
|
var hasLocalMetadata = false;
|
|
|
+ var replaceImages = AllImageTypes.ToList();
|
|
|
+ var localImagesFound = false;
|
|
|
|
|
|
foreach (var provider in providers.OfType<ILocalMetadataProvider<TItemType>>())
|
|
|
{
|
|
@@ -698,6 +702,10 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
|
|
await ProviderManager.SaveImage(item, remoteImage.Url, remoteImage.Type, null, cancellationToken).ConfigureAwait(false);
|
|
|
refreshResult.UpdateType |= ItemUpdateType.ImageUpdate;
|
|
|
+
|
|
|
+ // remove imagetype that has just been downloaded
|
|
|
+ replaceImages.Remove(remoteImage.Type);
|
|
|
+ localImagesFound = true;
|
|
|
}
|
|
|
catch (HttpRequestException ex)
|
|
|
{
|
|
@@ -705,6 +713,12 @@ namespace MediaBrowser.Providers.Manager
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ if (localImagesFound)
|
|
|
+ {
|
|
|
+ options.ReplaceAllImages = false;
|
|
|
+ options.ReplaceImages = replaceImages;
|
|
|
+ }
|
|
|
+
|
|
|
if (imageService.MergeImages(item, localItem.Images))
|
|
|
{
|
|
|
refreshResult.UpdateType |= ItemUpdateType.ImageUpdate;
|