public void Handshake() { connected = false; last_handshake = DateTime.Now; decimal timestamp = Timestamp (); string auth = AuthHash (timestamp); string url = BaseUrl + "?hs=true&p=" + ProtocolVersion + "&c=" + ClientId + "&v=" + ClientVersion + "&u=" + username + "&t=" + timestamp + "&a=" + auth; FMRequest request = new FMRequest (); request.RequestCompleted += new FMRequest.RequestCompletedHandler (HandshakeRequestCompleted); request.DoRequest (url); }
public void NowPlayingNotification(Song song) { if (NowPlayingNotificationEnabled) { if (Connected) { StringBuilder post_data = new StringBuilder (); post_data.Append ("s=" + session); post_data.Append ("&a=" + Escape (song.Artist)); post_data.Append ("&t=" + Escape (song.Track)); post_data.Append ("&b=" + Escape (song.Album)); post_data.Append ("&l=" + (int) Math.Round ((double) song.Length / 1000)); post_data.Append ("&n="); post_data.Append ("&m="); FMRequest request = new FMRequest (); request.RequestCompleted += new FMRequest.RequestCompletedHandler (OnNotificationCompleted); request.DoRequest (now_playing_url, post_data.ToString ()); } } }
public void Scrobble(Song[] songs) { if (!Connected) { unsubmitted_songs.AddRange (songs); } else if (songs.Length > 0) { StringBuilder post_data = new StringBuilder (); post_data.Append ("s=" + session); int i = 0; foreach (Song song in songs) { if (song.Length > 30000) { if (i<MaxSongsPerPost) { post_data.Append ("&a["+i+"]=" + Escape (song.Artist)); post_data.Append ("&t["+i+"]=" + Escape (song.Track)); post_data.Append ("&i["+i+"]=" + Timestamp (song.StartTime)); post_data.Append ("&o["+i+"]=L" + song.TrackAuth); post_data.Append ("&r["+i+"]="); post_data.Append ("&l["+i+"]=" + (int) Math.Round ((double) song.Length / 1000)); post_data.Append ("&b["+i+"]=" + Escape (song.Album)); post_data.Append ("&n["+i+"]="); post_data.Append ("&m["+i+"]="); i++; } else { break; } } } FMRequest request = new FMRequest (); request.RequestCompleted += new FMRequest.RequestCompletedHandler (OnSubmissionCompleted); failed_submitted_songs.Add (request, songs); request.DoRequest (submission_url, post_data.ToString ()); if (i>=MaxSongsPerPost) { Song[] s = new Song[songs.Length-MaxSongsPerPost]; songs.CopyTo (s, i); Scrobble (s); } } }
public void Handshake() { string handshake_url = "http://ws.audioscrobbler.com/radio/handshake.php?version=" + "1.1.1" + "&platform=" + "linux" + "&username="******"&passwordmd5=" + password + "&language=en&session=324234"; FMRequest fmr = new FMRequest (); fmr.RequestCompleted += new FMRequest.RequestCompletedHandler (HandshakeCompleted); fmr.DoRequest (handshake_url); DoOperationStarted (); }
public void Love() { FMRequest fmr = new FMRequest (); string url = "http://" + base_url + "/" + base_path + "/control.php?session=" + session + "&command=love&debug=0"; fmr.RequestCompleted += new FMRequest.RequestCompletedHandler (LoveCompleted); fmr.DoRequest (url); DoOperationStarted (); }
public void GetMetadata() { FMRequest fmr = new FMRequest (); string url = "http://" + base_url + "/" + base_path + "/np.php?session=" + session + "&debug=1"; fmr.RequestCompleted += new FMRequest.RequestCompletedHandler (MetadataCompleted); fmr.DoRequest (url); DoOperationStarted (); }
public void ChangeStation(string station) { FMRequest fmr = new FMRequest (); string url = "http://" + base_url + "/" + base_path + "/adjust.php?session=" + session + "&url=" + station + "&lang=en&debug=1"; Console.WriteLine ("station: " + url); fmr.RequestCompleted += new FMRequest.RequestCompletedHandler (StationChangeCompleted); fmr.DoRequest (url); DoOperationStarted (); }
public void RequestInfo() { FMRequest fmr = new FMRequest (); string base_url = Driver.connection.BaseUrl; string url = "http://" + base_url + "/1.0/user/" + username + "/profile.xml"; fmr.RequestCompleted += new FMRequest.RequestCompletedHandler (GetUserCompleted); fmr.DoRequest (url); Driver.connection.DoOperationStarted (); }
private void GetNewPlaylist() { Console.WriteLine ("Playlist: New playlist requested"); if (getting_playlist) { Console.WriteLine ("Playlist: Already getting playlist"); } else { getting_playlist = true; string url = String.Format ("http://{0}{1}/xspf.php?sk={2}&discovery=0&desktop=1", connection.BaseUrl, connection.BasePath, connection.Session); FMRequest fmr = new FMRequest (); fmr.RequestCompleted += new FMRequest.RequestCompletedHandler (GetNewPlaylistCompleted); fmr.DoRequest (url); connection.DoOperationStarted (); } }
private void Search(FindStation.SearchType type, string description) { FMRequest fmr = new FMRequest (); string url, base_url; base_url = Driver.connection.BaseUrl; switch (type) { case FindStation.SearchType.SoundsLike: url = "http://" + base_url + "/1.0/get.php?resource=artist&document=similar&format=xml&artist=" + description; break; case FindStation.SearchType.TaggedAs: url = "http://" + base_url + "/1.0/tag/" + description + "/search.xml?showtop10=1"; break; case FindStation.SearchType.User: url = "http://" + base_url + "/1.0/user/" + description + "/profile.xml"; break; case FindStation.SearchType.Neighbour: url = "http://" + base_url + "/1.0/user/" + Driver.connection.Username + "/neighbours.xml"; break; case FindStation.SearchType.Group: url = "http://" + base_url + "/1.0/group/" + description + "/weeklychartlist.xml"; break; default: url = ""; break; } fmr.Closure = (object) type; fmr.RequestCompleted += new FMRequest.RequestCompletedHandler (FindStationCompleted); fmr.DoRequest (url); Driver.connection.DoOperationStarted (); }