Fix ArtistMetadata overwrite during album refresh with bad data (#5591)

Co-authored-by: Meyn <loads@gmx.de>
This commit is contained in:
TypNull 2025-09-06 22:34:40 +00:00 committed by sharinganthief
parent 96a23a2c10
commit 9c225340e2

View file

@ -39,6 +39,12 @@ public bool UpsertMany(List<ArtistMetadata> data)
var existing = existingMetadata.SingleOrDefault(x => x.ForeignArtistId == meta.ForeignArtistId);
if (existing != null)
{
if (IsPlaceholderData(meta) && !IsPlaceholderData(existing))
{
_logger.Warn($"Skipping metadata downgrade: {existing.Name} -> {meta.Name}, for artist {meta.ForeignArtistId}");
continue;
}
meta.UseDbFieldsFrom(existing);
if (!meta.Equals(existing))
{
@ -62,5 +68,10 @@ public bool UpsertMany(List<ArtistMetadata> data)
return updateMetadataList.Count > 0 || addMetadataList.Count > 0;
}
private static bool IsPlaceholderData(ArtistMetadata metadata) =>
metadata.Name?.StartsWith("Unknown Artist", System.StringComparison.OrdinalIgnoreCase) != false ||
metadata.Disambiguation == "Artist not found in database" ||
metadata.Type == "Unknown";
}
}