diff options
| author | SenorSmartyPants <senorsmartypants@gmail.com> | 2023-03-18 20:24:48 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-18 19:24:48 -0600 |
| commit | 39677525f30e01118a879477b1f223c994b71059 (patch) | |
| tree | 936b6541fbe9be86b02e4aa3dd7706f79ee79f4b /MediaBrowser.Providers/Manager/MetadataService.cs | |
| parent | b2461feffb271ba6ac2902dabe6dafe59e864421 (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.cs | 14 |
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; |
