Add refresh flag to remove existing data/images

Fixes #7040
This commit is contained in:
Joe Rogers 2021-12-31 17:05:02 +01:00
parent 76e640b0b9
commit 853ef727da
No known key found for this signature in database
GPG key ID: 0074AD57B8FDBBB4
3 changed files with 13 additions and 3 deletions

View file

@ -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);

View file

@ -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 &&

View file

@ -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);
}
}