aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager/MetadataService.cs
diff options
context:
space:
mode:
authorSenorSmartyPants <senorsmartypants@gmail.com>2023-03-18 20:24:48 -0500
committerGitHub <noreply@github.com>2023-03-18 19:24:48 -0600
commit39677525f30e01118a879477b1f223c994b71059 (patch)
tree936b6541fbe9be86b02e4aa3dd7706f79ee79f4b /MediaBrowser.Providers/Manager/MetadataService.cs
parentb2461feffb271ba6ac2902dabe6dafe59e864421 (diff)
Don't overwrite NFO images (#9452)
Co-authored-by: Cody Robibero <cody@robibe.ro>
Diffstat (limited to 'MediaBrowser.Providers/Manager/MetadataService.cs')
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs14
1 files changed, 14 insertions, 0 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index 0605b0bd7..ebd653e34 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -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;