public async Task <GetTracksResponse> GetTracks(LastfmUser user, CancellationToken cancellationToken, int page = 0, int limit = 200) { var request = new GetTracksRequest { User = user.Username, ApiKey = Strings.Keys.LastfmApiKey, Method = Strings.Methods.GetTracks, Limit = limit, Page = page }; return(await Get <GetTracksRequest, GetTracksResponse>(request, cancellationToken)); }
public async Task <GetTracksResponse> GetTracks(LastfmUser user, MusicArtist artist, CancellationToken cancellationToken) { var request = new GetTracksRequest { User = user.Username, Artist = artist.Name, ApiKey = Strings.Keys.LastfmApiKey, Method = Strings.Methods.GetTracks, Limit = 1000 }; return(await Get <GetTracksRequest, GetTracksResponse>(request, cancellationToken)); }
public GetTracksResult GetTracks(GetTracksRequest request) { try { int forPlaylistId; if (string.IsNullOrEmpty(request.ForPlaylistId)) { // no playlist filtering forPlaylistId = Domain.Objects.Playlist.ALL_ID; } else { forPlaylistId = int.Parse(request.ForPlaylistId); } List <AlbumOrTrackItem> albumOrTracks; int totalCount; using (DAL.DALManager mgr = new DAL.DALManager(settings.Value.DatabasePath)) { albumOrTracks = mgr.FindTracks(request.Filter, forPlaylistId, int.Parse(request.AlbumId), request.Offset, request.Size); totalCount = mgr.FindTracksCount(request.Filter, forPlaylistId, int.Parse(request.AlbumId)); } // set the cover urls foreach (var item in albumOrTracks) { item.ArtImage = item.CoverId > 0 ? Url.Action("GetCover", new { id = item.CoverId }) : ""; } return(new GetTracksResult() { Success = true, Items = albumOrTracks.ToArray(), TotalCount = totalCount }); } catch (Exception ex) { return(GetErrorResultFromException <GetTracksResult>(ex)); } }
public string GetTracks([FromBody] GetTracksRequest request) { TracksResponse tracksResponse = new TracksResponse(); List <Track> tracks = new List <Track>(); WebClient web = new WebClient(); web.Headers.Set("Authorization", $"Bearer {request.authToken}"); JObject spotifyResponse = JObject.Parse(web.DownloadString(request.playlistUrl)); JArray items = spotifyResponse["items"].ToObject <JArray>(); foreach (JObject item in items) { Track track = new Track(); track.TrackName = item["track"]["name"].ToString(); track.ArtistName = item["track"]["artists"][0]["name"].ToString(); tracks.Add(track); } tracksResponse.nextUrl = spotifyResponse["next"].ToString(); tracksResponse.previousUrl = spotifyResponse["previous"].ToString(); tracksResponse.Tracks = tracks; return(JsonConvert.SerializeObject(tracksResponse)); }
public async Task<GetTracksResponse> GetTracks(LastfmUser user, CancellationToken cancellationToken, int page = 0, int limit = 200) { var request = new GetTracksRequest { User = user.Username, ApiKey = Strings.Keys.LastfmApiKey, Method = Strings.Methods.GetTracks, Limit = limit, Page = page }; return await Get<GetTracksRequest, GetTracksResponse>(request, cancellationToken); }
public async Task<GetTracksResponse> GetTracks(LastfmUser user, MusicArtist artist, CancellationToken cancellationToken) { var request = new GetTracksRequest { User = user.Username, Artist = artist.Name, ApiKey = Strings.Keys.LastfmApiKey, Method = Strings.Methods.GetTracks, Limit = 1000 }; return await Get<GetTracksRequest, GetTracksResponse>(request, cancellationToken); }