diff options
| author | Joe Rogers <1337joe@gmail.com> | 2021-12-31 17:05:02 +0100 |
|---|---|---|
| committer | Joe Rogers <1337joe@gmail.com> | 2022-01-02 22:21:05 +0100 |
| commit | 853ef727daa75f7508157400eba3a3b1af2f8c8a (patch) | |
| tree | 713b2e76c3dc2f4ac8669415bc8ff088e0e914c0 | |
| parent | 76e640b0b9f46ed82433da9cb8f8c27aa5889743 (diff) | |
Add refresh flag to remove existing data/images
Fixes #7040
| -rw-r--r-- | Jellyfin.Api/Controllers/ItemLookupController.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Providers/ImageRefreshOptions.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Providers/Manager/MetadataService.cs | 8 |
3 files changed, 13 insertions, 3 deletions
diff --git a/Jellyfin.Api/Controllers/ItemLookupController.cs b/Jellyfin.Api/Controllers/ItemLookupController.cs index 4161e43f6..9cc23dc4f 100644 --- a/Jellyfin.Api/Controllers/ItemLookupController.cs +++ b/Jellyfin.Api/Controllers/ItemLookupController.cs @@ -263,7 +263,8 @@ namespace Jellyfin.Api.Controllers ImageRefreshMode = MetadataRefreshMode.FullRefresh, ReplaceAllMetadata = true, ReplaceAllImages = replaceAllImages, - SearchResult = searchResult + SearchResult = searchResult, + IsIdentify = true }, CancellationToken.None).ConfigureAwait(false); diff --git a/MediaBrowser.Controller/Providers/ImageRefreshOptions.cs b/MediaBrowser.Controller/Providers/ImageRefreshOptions.cs index 08d129a82..9f40f8a2c 100644 --- a/MediaBrowser.Controller/Providers/ImageRefreshOptions.cs +++ b/MediaBrowser.Controller/Providers/ImageRefreshOptions.cs @@ -27,6 +27,11 @@ namespace MediaBrowser.Controller.Providers public bool IsAutomated { get; set; } + /// <summary> + /// Gets or sets a value indicating whether the action is an identify. + /// </summary> + public bool IsIdentify { get; set; } + public bool IsReplacingImage(ImageType type) { return ImageRefreshMode == MetadataRefreshMode.FullRefresh && diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index 32be181dd..80ee32030 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/MediaBrowser.Providers/Manager/MetadataService.cs @@ -749,8 +749,12 @@ namespace MediaBrowser.Providers.Manager } else { - // TODO: If the new metadata from above has some blank data, this can cause old data to get filled into those empty fields - MergeData(metadata, temp, Array.Empty<MetadataField>(), false, false); + if (!options.IsIdentify) + { + // Keep metadata for fields that the new metadata doesn't have populated + MergeData(metadata, temp, Array.Empty<MetadataField>(), false, false); + } + MergeData(temp, metadata, item.LockedFields, true, false); } } |
