diff options
| author | evan314159 <110177090+evan314159@users.noreply.github.com> | 2025-09-01 19:22:55 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-01 13:22:55 +0200 |
| commit | a0d4ae1974f5c569cdb828faa529d32867df0108 (patch) | |
| tree | e603f27f5c3b211f2c266728c6f6e9eadae0bfd7 /MediaBrowser.Providers/Music | |
| parent | d65b18a7f320041388b8895f1ae6a68cbd4b46fa (diff) | |
Correct Album Artists merge logic (#14655)
* Correct Album Artists merge logic and Artist equality checks
Correct Album Artists merge logic in MetadataService that causes empty
metadata sources to overwrite populated Album Artists arrays. This impacted
People-to-BaseItem relationships and caused orphaned records in Peoples.
Correct equality checks to be case-sensitive so Jelly metadata exactly
matches file metadata.
* use StringComparer.Ordinal
---------
Co-authored-by: Evan <evan@MacBook-Pro.local>
Diffstat (limited to 'MediaBrowser.Providers/Music')
| -rw-r--r-- | MediaBrowser.Providers/Music/AlbumMetadataService.cs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/MediaBrowser.Providers/Music/AlbumMetadataService.cs b/MediaBrowser.Providers/Music/AlbumMetadataService.cs index 7c193b4d5..13511b594 100644 --- a/MediaBrowser.Providers/Music/AlbumMetadataService.cs +++ b/MediaBrowser.Providers/Music/AlbumMetadataService.cs @@ -109,14 +109,14 @@ public class AlbumMetadataService : MetadataService<MusicAlbum, AlbumInfo> var albumArtists = songs .SelectMany(i => i.AlbumArtists) - .GroupBy(i => i) + .GroupBy(i => i, StringComparer.OrdinalIgnoreCase) .OrderByDescending(g => g.Count()) .Select(g => g.Key) .ToArray(); updateType |= SetProviderIdFromSongs(item, songs, MetadataProvider.MusicBrainzAlbumArtist); - if (!item.AlbumArtists.SequenceEqual(albumArtists, StringComparer.OrdinalIgnoreCase)) + if (!item.AlbumArtists.SequenceEqual(albumArtists, StringComparer.Ordinal)) { item.AlbumArtists = albumArtists; updateType |= ItemUpdateType.MetadataEdit; @@ -131,12 +131,12 @@ public class AlbumMetadataService : MetadataService<MusicAlbum, AlbumInfo> var artists = songs .SelectMany(i => i.Artists) - .GroupBy(i => i) + .GroupBy(i => i, StringComparer.OrdinalIgnoreCase) .OrderByDescending(g => g.Count()) .Select(g => g.Key) .ToArray(); - if (!item.Artists.SequenceEqual(artists, StringComparer.OrdinalIgnoreCase)) + if (!item.Artists.SequenceEqual(artists, StringComparer.Ordinal)) { item.Artists = artists; updateType |= ItemUpdateType.MetadataEdit; |
