< Summary - Jellyfin

Information
Class: MediaBrowser.Providers.Music.AlbumInfoExtensions
Assembly: MediaBrowser.Providers
File(s): /srv/git/jellyfin/MediaBrowser.Providers/Music/AlbumInfoExtensions.cs
Line coverage
61%
Covered lines: 19
Uncovered lines: 12
Coverable lines: 31
Total lines: 90
Line coverage: 61.2%
Branch coverage
50%
Covered branches: 8
Total branches: 16
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100 5/16/2026 - 12:15:55 AM Line coverage: 0% (0/27) Branch coverage: 0% (0/14) Total lines: 8110/29/2026 - 12:17:11 AM Line coverage: 61.2% (19/31) Branch coverage: 50% (8/16) Total lines: 90 5/16/2026 - 12:15:55 AM Line coverage: 0% (0/27) Branch coverage: 0% (0/14) Total lines: 8110/29/2026 - 12:17:11 AM Line coverage: 61.2% (19/31) Branch coverage: 50% (8/16) Total lines: 90

Coverage delta

Coverage delta 62 -62

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
GetAlbumArtist(...)0%2040%
GetReleaseGroupId(...)0%620%
GetReleaseId(...)100%22100%
GetMusicBrainzArtistId(...)50%4477.77%
GetMusicBrainzArtistId(...)100%22100%
MusicBrainzId(...)100%22100%

File(s)

/srv/git/jellyfin/MediaBrowser.Providers/Music/AlbumInfoExtensions.cs

#LineLine coverage
 1#pragma warning disable CS1591
 2
 3using System.Linq;
 4using MediaBrowser.Controller.Providers;
 5using MediaBrowser.Model.Entities;
 6
 7namespace MediaBrowser.Providers.Music
 8{
 9    public static class AlbumInfoExtensions
 10    {
 11        public static string? GetAlbumArtist(this AlbumInfo info)
 12        {
 013            var id = info.SongInfos.SelectMany(i => i.AlbumArtists)
 014                    .FirstOrDefault(i => !string.IsNullOrEmpty(i));
 15
 016            if (!string.IsNullOrEmpty(id))
 17            {
 018                return id;
 19            }
 20
 021            return info.AlbumArtists.Count > 0 ? info.AlbumArtists[0] : default;
 22        }
 23
 24        public static string? GetReleaseGroupId(this AlbumInfo info)
 25        {
 026            var id = MusicBrainzId(MetadataProvider.MusicBrainzReleaseGroup, info.GetProviderId(MetadataProvider.MusicBr
 27
 028            if (string.IsNullOrEmpty(id))
 29            {
 030                return info.SongInfos.Select(i => MusicBrainzId(MetadataProvider.MusicBrainzReleaseGroup, i.GetProviderI
 031                    .FirstOrDefault(i => !string.IsNullOrEmpty(i));
 32            }
 33
 034            return id;
 35        }
 36
 37        public static string? GetReleaseId(this AlbumInfo info)
 38        {
 439            var id = MusicBrainzId(MetadataProvider.MusicBrainzAlbum, info.GetProviderId(MetadataProvider.MusicBrainzAlb
 40
 441            if (string.IsNullOrEmpty(id))
 42            {
 343                return info.SongInfos.Select(i => MusicBrainzId(MetadataProvider.MusicBrainzAlbum, i.GetProviderId(Metad
 344                    .FirstOrDefault(i => !string.IsNullOrEmpty(i));
 45            }
 46
 147            return id;
 48        }
 49
 50        public static string? GetMusicBrainzArtistId(this AlbumInfo info)
 51        {
 152            info.ProviderIds.TryGetValue(MetadataProvider.MusicBrainzAlbumArtist.ToString(), out string? id);
 153            id = MusicBrainzId(MetadataProvider.MusicBrainzAlbumArtist, id);
 54
 155            if (string.IsNullOrEmpty(id))
 56            {
 157                info.ArtistProviderIds.TryGetValue(MetadataProvider.MusicBrainzArtist.ToString(), out id);
 158                id = MusicBrainzId(MetadataProvider.MusicBrainzArtist, id);
 59            }
 60
 161            if (string.IsNullOrEmpty(id))
 62            {
 063                return info.SongInfos.Select(i => MusicBrainzId(MetadataProvider.MusicBrainzAlbumArtist, i.GetProviderId
 064                    .FirstOrDefault(i => !string.IsNullOrEmpty(i));
 65            }
 66
 167            return id;
 68        }
 69
 70        public static string? GetMusicBrainzArtistId(this ArtistInfo info)
 71        {
 272            info.ProviderIds.TryGetValue(MetadataProvider.MusicBrainzArtist.ToString(), out var id);
 273            id = MusicBrainzId(MetadataProvider.MusicBrainzArtist, id);
 74
 275            if (string.IsNullOrEmpty(id))
 76            {
 177                return info.SongInfos.Select(i => MusicBrainzId(MetadataProvider.MusicBrainzAlbumArtist, i.GetProviderId
 178                    .FirstOrDefault(i => !string.IsNullOrEmpty(i));
 79            }
 80
 181            return id;
 82        }
 83
 84        /// <summary>
 85        /// Returns the id if it can be an id of the given provider, otherwise <c>null</c>.
 86        /// </summary>
 87        private static string? MusicBrainzId(MetadataProvider provider, string? id)
 988            => ProviderIdsExtensions.IsValidProviderId(provider.ToString(), id) ? id : null;
 89    }
 90}