aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers
diff options
context:
space:
mode:
authorevan314159 <110177090+evan314159@users.noreply.github.com>2025-09-01 19:22:55 +0800
committerGitHub <noreply@github.com>2025-09-01 13:22:55 +0200
commita0d4ae1974f5c569cdb828faa529d32867df0108 (patch)
treee603f27f5c3b211f2c266728c6f6e9eadae0bfd7 /MediaBrowser.Providers
parentd65b18a7f320041388b8895f1ae6a68cbd4b46fa (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')
-rw-r--r--MediaBrowser.Providers/Music/AlbumMetadataService.cs8
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;