public async Task <bool> PopulateEventsAsync(Artist artist) { if (artist == null) { return(true); } if (artist.UpcomingEventsUpdated.AddDays(_configSettings.DaysBeforeUpdatingArtistWebInfo) > DateTime.Now) { return(true); } var success = await _interceptor.TryMethod <bool>( _eventsService.PopulateEventsAsync(artist), false, WebServiceType.Events, GetMethodDescription(nameof(PopulateEventsAsync), artist)); if (success) { artist.UpcomingEventsUpdated = DateTime.Now; } return(success); }
public async Task <bool> IsLovedAsync(Track track) { return(await _interceptor.TryMethod( _service.IsLovedAsync(track), false, WebServiceType.LastFm, "IsLoved(Track: " + track.Title + " by " + track.Artist.Name + ")")); }
public async Task <ICollection <TrackPlay> > GetRecentTrackPlays(int limit) { return(await _interceptor.TryMethod( _service.GetRecentTrackPlays(limit), new List <TrackPlay>(), WebServiceType.LastFm, "Get Recent Tracks (Limit: " + limit + ")")); }
public async Task <string> GetLyrics(string artistName, string trackTitle) { var url = string.Format(LyricApiUrl, artistName.Replace("?", ""), trackTitle); var response = await _interceptor.TryMethod(_webHelperService.HttpGetAsync(url), null, WebServiceType.Lyrics, "Getting lyrics from " + url); JsonReaderException exception = null; if (response != null) { try { dynamic parsedResponse = JObject.Parse(response); if (parsedResponse.err == "none") { return(parsedResponse.lyric); } if (parsedResponse.err == "not found") { return(null); } } catch (JsonReaderException ex) { exception = ex; } } LogError(url, response, exception); return(null); }
public async Task <bool> PopulateArtistInfo(Artist artist, int numberOfSimilarArtists) { return(await _interceptor.TryMethod( _service.PopulateArtistInfo(artist, numberOfSimilarArtists), false, WebServiceType.LastFm, "Populate Artist Images (Artist: " + artist.Name + ")")); }
public async Task <string> GetArtworkUrl(string artistName, string albumTitle) { return(await _interceptor.TryMethod( _service.GetArtworkUrl(artistName, albumTitle), string.Empty, WebServiceType.LastFm, "Get Artwork URL (Artist: " + artistName + ", Title: " + albumTitle + ")")); }
public async Task <byte[]> GetImageBytesFromUrl(string url) { if (string.IsNullOrEmpty(url)) { return(null); } using (var webClient = new WebClient()) { return(await _interceptor.TryMethod(webClient.DownloadDataTaskAsync(new Uri(url)), null, WebServiceType.Web, "Getting image " + url)); } }
public async Task <bool> ScrobbleAsync(Track track, DateTime timePlayed) { if (!_userSettings.Scrobbling) { return(true); } var success = await _asyncMethodInterceptor.TryMethod( _scrobbler.ScrobbleAsync(track, timePlayed), false, WebServiceType.LastFm, "ScrobbleAsync (Track: " + track.Title + " by " + track.Artist.Name + ")"); if (!success) { _scrobbleCacher.Cache(track, timePlayed); } else { await ScrobbleCachedTracks(); } return(success); }