aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Rogers <1337joe@gmail.com>2021-12-31 17:05:02 +0100
committerJoe Rogers <1337joe@gmail.com>2022-01-02 22:21:05 +0100
commit853ef727daa75f7508157400eba3a3b1af2f8c8a (patch)
tree713b2e76c3dc2f4ac8669415bc8ff088e0e914c0
parent76e640b0b9f46ed82433da9cb8f8c27aa5889743 (diff)
Add refresh flag to remove existing data/images
Fixes #7040
-rw-r--r--Jellyfin.Api/Controllers/ItemLookupController.cs3
-rw-r--r--MediaBrowser.Controller/Providers/ImageRefreshOptions.cs5
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs8
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);
}
}