private async Task <SearchAlbumViewModel> MapIntoAlbumVm(AlbumLookup a, LidarrSettings settings) { var vm = new SearchAlbumViewModel { ForeignAlbumId = a.foreignAlbumId, Monitored = a.monitored, Rating = a.ratings?.value ?? 0m, ReleaseDate = a.releaseDate, Title = a.title, Disk = a.images?.FirstOrDefault(x => x.coverType.Equals("disc"))?.url?.Replace("http", "https"), Genres = a.genres }; if (a.artistId > 0) { //TODO THEY HAVE FIXED THIS IN DEV // The JSON is different for some stupid reason // Need to lookup the artist now and all the images -.-" var artist = await _lidarrApi.GetArtist(a.artistId, settings.ApiKey, settings.FullUri); vm.ArtistName = artist.artistName; vm.ForeignArtistId = artist.foreignArtistId; } else { vm.ForeignArtistId = a.artist?.foreignArtistId; vm.ArtistName = a.artist?.artistName; } vm.Cover = a.images?.FirstOrDefault(x => x.coverType.Equals("cover"))?.url?.Replace("http", "https"); if (vm.Cover.IsNullOrEmpty()) { vm.Cover = a.remoteCover; } await Rules.StartSpecificRules(vm, SpecificRules.LidarrAlbum); await RunSearchRules(vm); return(vm); }
private void CreateAlbumHtmlContent(StringBuilder sb, AlbumLookup info) { var cover = info.images .FirstOrDefault(x => x.coverType.Equals("cover", StringComparison.InvariantCultureIgnoreCase))?.url; if (cover.IsNullOrEmpty()) { cover = info.remoteCover; } AddBackgroundInsideTable(sb, cover); var disk = info.images .FirstOrDefault(x => x.coverType.Equals("disc", StringComparison.InvariantCultureIgnoreCase))?.url; if (disk.IsNullOrEmpty()) { disk = info.remoteCover; } AddPosterInsideTable(sb, disk); AddMediaServerUrl(sb, string.Empty, string.Empty); AddInfoTable(sb); var releaseDate = $"({info.releaseDate.Year})"; AddTitle(sb, string.Empty, $"{info.title} {releaseDate}"); var summary = info.artist?.artistName ?? string.Empty; if (summary.Length > 280) { summary = summary.Remove(280); summary = summary + "...</p>"; } AddParagraph(sb, summary); AddGenres(sb, $"Type: {info.albumType}"); }