mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-01-15 15:48:03 +00:00
Correct Album Artists merge logic (#14655)
Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
* 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>
This commit is contained in:
@@ -109,14 +109,14 @@ public class AlbumMetadataService : MetadataService<MusicAlbum, AlbumInfo>
|
|||||||
|
|
||||||
var albumArtists = songs
|
var albumArtists = songs
|
||||||
.SelectMany(i => i.AlbumArtists)
|
.SelectMany(i => i.AlbumArtists)
|
||||||
.GroupBy(i => i)
|
.GroupBy(i => i, StringComparer.OrdinalIgnoreCase)
|
||||||
.OrderByDescending(g => g.Count())
|
.OrderByDescending(g => g.Count())
|
||||||
.Select(g => g.Key)
|
.Select(g => g.Key)
|
||||||
.ToArray();
|
.ToArray();
|
||||||
|
|
||||||
updateType |= SetProviderIdFromSongs(item, songs, MetadataProvider.MusicBrainzAlbumArtist);
|
updateType |= SetProviderIdFromSongs(item, songs, MetadataProvider.MusicBrainzAlbumArtist);
|
||||||
|
|
||||||
if (!item.AlbumArtists.SequenceEqual(albumArtists, StringComparer.OrdinalIgnoreCase))
|
if (!item.AlbumArtists.SequenceEqual(albumArtists, StringComparer.Ordinal))
|
||||||
{
|
{
|
||||||
item.AlbumArtists = albumArtists;
|
item.AlbumArtists = albumArtists;
|
||||||
updateType |= ItemUpdateType.MetadataEdit;
|
updateType |= ItemUpdateType.MetadataEdit;
|
||||||
@@ -131,12 +131,12 @@ public class AlbumMetadataService : MetadataService<MusicAlbum, AlbumInfo>
|
|||||||
|
|
||||||
var artists = songs
|
var artists = songs
|
||||||
.SelectMany(i => i.Artists)
|
.SelectMany(i => i.Artists)
|
||||||
.GroupBy(i => i)
|
.GroupBy(i => i, StringComparer.OrdinalIgnoreCase)
|
||||||
.OrderByDescending(g => g.Count())
|
.OrderByDescending(g => g.Count())
|
||||||
.Select(g => g.Key)
|
.Select(g => g.Key)
|
||||||
.ToArray();
|
.ToArray();
|
||||||
|
|
||||||
if (!item.Artists.SequenceEqual(artists, StringComparer.OrdinalIgnoreCase))
|
if (!item.Artists.SequenceEqual(artists, StringComparer.Ordinal))
|
||||||
{
|
{
|
||||||
item.Artists = artists;
|
item.Artists = artists;
|
||||||
updateType |= ItemUpdateType.MetadataEdit;
|
updateType |= ItemUpdateType.MetadataEdit;
|
||||||
|
|||||||
Reference in New Issue
Block a user