public async Task <DetailedAlbumInfo> GetDetailedAlbumInfo(ShortAlbumInfo info) { var cached = WimpCache.ReadDetailedAlbumInfo(info.Id); if (cached != null) { return(cached); } var parsed = await Utils.WithRetry(async() => { var html = await SeleniumRequests.GetHtml(info.Url, CancellationToken.None); return(WimpHtmlParsing.AlbumInfoFromDetailsPage(html, info)); }); WimpCache.SaveDetailedAlbumInfo(parsed); return(parsed); }
public async Task <IEnumerable <ShortBandInfo> > SearchBand( string search, CancellationToken token = default ) { var cached = WimpCache.ReadSearchBand(search); if (cached != null) { return(cached); } var results = await Utils.WithRetry(async() => { var url = WimpUris.GetArtistsSearchUrl(search); var html = await SeleniumRequests.GetHtml(url, token); return(WimpHtmlParsing.BandsInfoFromSearchResults(html).ToArray()); }, token); WimpCache.SaveSearchBand(search, results); return(results); }