public async Task<Auths> getMobileSession(string username, string password) { var parameters = new Dictionary<string, string>(); parameters.Add("username", username); parameters.Add("password", password); parameters.Add("method", "auth.getMobileSession"); parameters.Add("api_key", AuthKeys.APIkey); string sign = new Sign().Make(parameters); string url = string.Concat(AuthKeys.APIurl, "?method=auth.getMobileSession", "&format=json", "&api_key=", AuthKeys.APIkey, "&username="******"&password="******"&api_sig=", sign); try { string response = await new HttpCall().DoTask(url); JsonObject ob = JsonObject.Parse(response); if (ob.ContainsKey("session")) { Auths auth = new Auths(); auth.username = JsonObject.Parse(ob.GetNamedObject("session").ToString()).GetNamedString("name"); auth.sessionkey = JsonObject.Parse(ob.GetNamedObject("session").ToString()).GetNamedString("key"); return auth; } if (ob.ContainsKey("error")) { double error = JsonObject.Parse(ob.GetNamedObject("error").ToString()).GetNamedNumber("code"); //throw new LastFmException(error.ToString()); return null; } } catch (Exception ex) { throw new HttpException(ex.ToString()); } return null; }
public async Task<bool> ScrobbleTrack(List<TrackData> track, string sessionkey) { string url = AuthKeys.APIurl + "?method=track.scrobble" + "&api_key=" + AuthKeys.APIkey + "&sk=" + sessionkey + "&format=json"; var parameters = new Dictionary<string, string>(); parameters.Add("method", "track.scrobble"); parameters.Add("api_key", AuthKeys.APIkey); parameters.Add("sk", sessionkey); for (int i = 0; i < track.Count; i++) { parameters.Add("track[" + i + "]", track[i].track); parameters.Add("artist[" + i + "]", track[i].artist); parameters.Add("album[" + i + "]", track[i].album); parameters.Add("timestamp[" + i + "]", track[i].timestamp); url += "&track[" + i + "]=" + track[i].track; url += "&artist[" + i + "]=" + track[i].artist; url += "&album[" + i + "]=" + track[i].album; url += "×tamp[" + i + "]=" + track[i].timestamp; } string sign = new Sign().Make(parameters); url += "&api_sig=" + sign; System.Diagnostics.Debug.WriteLine(url); try { string response = await new HttpCall().DoTask(url); JsonObject ob = JsonObject.Parse(response); System.Diagnostics.Debug.WriteLine(response); if (ob.ContainsKey("scrobbles")) { return true; } if (ob.ContainsKey("error")) { double error = JsonObject.Parse(ob.GetNamedObject("error").ToString()).GetNamedNumber("code"); throw new LastFmException(error.ToString()); } } catch (Exception) { return false; } return false; }
public async Task<bool> PlayingTrack(TrackData track, string sessionkey) { string url = AuthKeys.APIurl + "?method=track.updateNowPlaying" + "&api_key=" + AuthKeys.APIkey + "&sk=" + sessionkey + "&format=json"; var parameters = new Dictionary<string, string>(); parameters.Add("method", "track.updateNowPlaying"); parameters.Add("api_key", AuthKeys.APIkey); parameters.Add("sk", sessionkey); parameters.Add("track", track.track); parameters.Add("artist", track.artist); parameters.Add("album", track.album); parameters.Add("timestamp", track.timestamp); url += "&track=" + track.track; url += "&artist=" + track.artist; url += "&album=" + track.album; url += "×tamp=" + track.timestamp; string sign = new Sign().Make(parameters); url += "&api_sig=" + sign; System.Diagnostics.Debug.WriteLine(url); try { string response = await new HttpCall().DoTask(url); JsonObject ob = JsonObject.Parse(response); System.Diagnostics.Debug.WriteLine(response); if (ob.ContainsKey("nowplaying")) { return true; } if (ob.ContainsKey("error")) { double error = JsonObject.Parse(ob.GetNamedObject("error").ToString()).GetNamedNumber("code"); throw new LastFmException(error.ToString()); } } catch (Exception) { return false; } return false; }