protected override async Task <string> FindId(Entities.BaseItem item, System.Threading.CancellationToken cancellationToken) { //Execute the Artist search against our name and assume first one is the one we want var url = RootUrl + string.Format("method=artist.search&artist={0}&api_key={1}&format=json", UrlEncode(item.Name), ApiKey); LastfmArtistSearchResults searchResult = null; try { using (var json = await HttpClient.Get(url, LastfmResourcePool, cancellationToken).ConfigureAwait(false)) { searchResult = JsonSerializer.DeserializeFromStream <LastfmArtistSearchResults>(json); } } catch (HttpException e) { if (e.StatusCode == HttpStatusCode.NotFound) { return(null); } throw; } if (searchResult != null && searchResult.results != null && searchResult.results.artistmatches != null && searchResult.results.artistmatches.artist.Any()) { return(searchResult.results.artistmatches.artist.First().mbid); } return(null); }
public override bool Supports(Entities.BaseItem item) { return(item is MusicArtist); }