public async Task <List <PandoraSong> > GetPandoraPlaylistAsync(RESTfulService service, PandoraState pandoraState, PandoraStation station) { Dictionary <string, object> data = new Dictionary <string, object>() { { "stationToken", station.Token }, { "additionalAudioUrl", "HTTP_192_MP3,HTTP_128_MP3" } }; CryptoConfig cryptoConfig = PandoraConstants.GetCryptoConfig(); HttpResponseMessage response = await DoStandardCallAsync(service, "station.getPlaylist", data, false, pandoraState, cryptoConfig); PandoraSongListDto songList = JsonConvert.DeserializeObject <PandoraSongListDto>(await response.Content.ReadAsStringAsync()); List <PandoraSong> playlist = new List <PandoraSong>(); foreach (PandoraSongDto song in songList.Result.Items) { if (song.AdToken != null) { continue; // Ignore advertisements } playlist.Add(new PandoraSong { AlbumName = song.AlbumName, ArtistName = song.ArtistName, AudioUrl = song.AudioUrlMap.HighQuality.AudioUrl ?? song.AdditionalAudioUrl, Title = song.SongName, AlbumArtUrl = song.AlbumArtUrl, TrackToken = song.TrackToken, Rating = song.SongRating }); } return(await Task.FromResult(playlist)); }
public async Task <bool> RatePandoraSongAsync(RESTfulService service, PandoraState pandoraState, PandoraStation station, PandoraSong song, bool rating) { Dictionary <string, object> data = new Dictionary <string, object>() { { "trackToken", song.TrackToken }, { "isPositive", rating } }; CryptoConfig cryptoConfig = PandoraConstants.GetCryptoConfig(); await DoStandardCallAsync(service, "station.addFeedback", data, false, pandoraState, cryptoConfig); return(await Task.FromResult(true)); }