From 9c225340e2b3d63295084362bc05d12239034ef2 Mon Sep 17 00:00:00 2001 From: TypNull <136082098+TypNull@users.noreply.github.com> Date: Sat, 6 Sep 2025 22:34:40 +0000 Subject: [PATCH] Fix ArtistMetadata overwrite during album refresh with bad data (#5591) Co-authored-by: Meyn --- .../Music/Repositories/ArtistMetadataRepository.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/NzbDrone.Core/Music/Repositories/ArtistMetadataRepository.cs b/src/NzbDrone.Core/Music/Repositories/ArtistMetadataRepository.cs index 1f54aa3e5..de8a95cbc 100644 --- a/src/NzbDrone.Core/Music/Repositories/ArtistMetadataRepository.cs +++ b/src/NzbDrone.Core/Music/Repositories/ArtistMetadataRepository.cs @@ -39,6 +39,12 @@ public bool UpsertMany(List 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 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"; } }