mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-05-24 02:02:29 -04:00
Only set first MusicBrainz ID for audio tags (#13003)
This commit is contained in:
parent
9e61a6fd72
commit
e2434d38c5
@ -347,7 +347,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
|| track.AdditionalFields.TryGetValue("MusicBrainz Artist Id", out musicBrainzArtistTag))
|
||||
&& !string.IsNullOrEmpty(musicBrainzArtistTag))
|
||||
{
|
||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzArtist, musicBrainzArtistTag);
|
||||
var id = GetFirstMusicBrainzId(musicBrainzArtistTag, libraryOptions.UseCustomTagDelimiters, libraryOptions.GetCustomTagDelimiters(), libraryOptions.DelimiterWhitelist);
|
||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzArtist, id);
|
||||
}
|
||||
}
|
||||
|
||||
@ -357,7 +358,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
|| track.AdditionalFields.TryGetValue("MusicBrainz Album Artist Id", out musicBrainzReleaseArtistIdTag))
|
||||
&& !string.IsNullOrEmpty(musicBrainzReleaseArtistIdTag))
|
||||
{
|
||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzAlbumArtist, musicBrainzReleaseArtistIdTag);
|
||||
var id = GetFirstMusicBrainzId(musicBrainzReleaseArtistIdTag, libraryOptions.UseCustomTagDelimiters, libraryOptions.GetCustomTagDelimiters(), libraryOptions.DelimiterWhitelist);
|
||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzAlbumArtist, id);
|
||||
}
|
||||
}
|
||||
|
||||
@ -367,7 +369,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
|| track.AdditionalFields.TryGetValue("MusicBrainz Album Id", out musicBrainzReleaseIdTag))
|
||||
&& !string.IsNullOrEmpty(musicBrainzReleaseIdTag))
|
||||
{
|
||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzAlbum, musicBrainzReleaseIdTag);
|
||||
var id = GetFirstMusicBrainzId(musicBrainzReleaseIdTag, libraryOptions.UseCustomTagDelimiters, libraryOptions.GetCustomTagDelimiters(), libraryOptions.DelimiterWhitelist);
|
||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzAlbum, id);
|
||||
}
|
||||
}
|
||||
|
||||
@ -377,7 +380,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
|| track.AdditionalFields.TryGetValue("MusicBrainz Release Group Id", out musicBrainzReleaseGroupIdTag))
|
||||
&& !string.IsNullOrEmpty(musicBrainzReleaseGroupIdTag))
|
||||
{
|
||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzReleaseGroup, musicBrainzReleaseGroupIdTag);
|
||||
var id = GetFirstMusicBrainzId(musicBrainzReleaseGroupIdTag, libraryOptions.UseCustomTagDelimiters, libraryOptions.GetCustomTagDelimiters(), libraryOptions.DelimiterWhitelist);
|
||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzReleaseGroup, id);
|
||||
}
|
||||
}
|
||||
|
||||
@ -387,7 +391,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
|| track.AdditionalFields.TryGetValue("MusicBrainz Release Track Id", out trackMbId))
|
||||
&& !string.IsNullOrEmpty(trackMbId))
|
||||
{
|
||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzTrack, trackMbId);
|
||||
var id = GetFirstMusicBrainzId(trackMbId, libraryOptions.UseCustomTagDelimiters, libraryOptions.GetCustomTagDelimiters(), libraryOptions.DelimiterWhitelist);
|
||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzTrack, id);
|
||||
}
|
||||
}
|
||||
|
||||
@ -441,5 +446,18 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
|
||||
return items;
|
||||
}
|
||||
|
||||
// MusicBrainz IDs are multi-value tags, so we need to split them
|
||||
// However, our current provider can only have one single ID, which means we need to pick the first one
|
||||
private string? GetFirstMusicBrainzId(string tag, bool useCustomTagDelimiters, char[] tagDelimiters, string[] whitelist)
|
||||
{
|
||||
var val = tag.Split(InternalValueSeparator).FirstOrDefault();
|
||||
if (val is not null && useCustomTagDelimiters)
|
||||
{
|
||||
val = SplitWithCustomDelimiter(val, tagDelimiters, whitelist).FirstOrDefault();
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user