diff --git a/src/Lidarr.Api.V1/Albums/AlbumResource.cs b/src/Lidarr.Api.V1/Albums/AlbumResource.cs index 2d172b014..446df75ef 100644 --- a/src/Lidarr.Api.V1/Albums/AlbumResource.cs +++ b/src/Lidarr.Api.V1/Albums/AlbumResource.cs @@ -57,7 +57,7 @@ namespace Lidarr.Api.V1.Albums { if (model == null) return null; - var selectedRelease = model.AlbumReleases.Value.Where(x => x.Monitored).SingleOrDefault(); + var selectedRelease = model.AlbumReleases?.Value.Where(x => x.Monitored).SingleOrDefault(); return new AlbumResource { @@ -75,12 +75,12 @@ namespace Lidarr.Api.V1.Albums Images = model.Images, Links = model.Links, Ratings = model.Ratings, - Duration = selectedRelease.Duration, + Duration = selectedRelease?.Duration ?? 0, AlbumType = model.AlbumType, SecondaryTypes = model.SecondaryTypes.Select(s => s.Name).ToList(), - Releases = model.AlbumReleases.Value.ToResource(), - Media = selectedRelease.Media.ToResource(), - Artist = model.Artist.Value.ToResource() + Releases = model.AlbumReleases?.Value.ToResource() ?? new List(), + Media = selectedRelease?.Media.ToResource() ?? new List(), + Artist = model.Artist?.Value.ToResource() }; } diff --git a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs index 789c5ae3e..10e866b7b 100644 --- a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs +++ b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs @@ -280,10 +280,13 @@ namespace NzbDrone.Core.MetadataSource.SkyHook { var album = _albumService.FindById(resource.Id) ?? MapAlbum(resource, null); - if (album.Artist == null) + var artist = _artistService.FindById(resource.ArtistId); + if (artist == null) { - album.Artist = _artistService.GetArtist(album.ArtistId); + artist = new Artist(); + artist.Metadata = MapArtistMetadata(resource.Artists.Single(x => x.Id == resource.ArtistId)); } + album.Artist = artist; return album; }