/// <summary> /// Function to edit lyrics (incomplete) /// </summary> /// <param name="lyrics"></param> public void EditLyrics(Lyrics lyrics) { Dictionary<string, string> arguments = new Dictionary<string, string>(); arguments.Add("cs", lyrics.Checksum); arguments.Add("id", lyrics.SongID); string response = SendRequest(HttpMethod.GET, "http://lyricsfly.com/search/correction.php?", arguments); ParseResponse(response); }
private Lyrics ParseResponse(string response) { if (!string.IsNullOrEmpty(response)) { XDocument xdoc = XDocument.Parse(response); XElement xele = xdoc.Element("start"); if (xele != null) { string status = xele.GetElementValue("status"); if (!string.IsNullOrEmpty(status)) { switch (status) { case "200": // OK - Results are returned. All parameters checked ok. case "300": // TESTING LIMITED - Temporary access. Limited content. All parameters checked ok. xele = xele.Element("sg"); if (xele != null) { Lyrics lyric = new Lyrics(); lyric.Checksum = xele.GetElementValue("cs"); lyric.SongID = xele.GetElementValue("id"); lyric.ArtistName = xele.GetElementValue("ar"); lyric.Title = xele.GetElementValue("tt"); lyric.AlbumName = xele.GetElementValue("al"); lyric.Text = xele.GetElementValue("tx").Replace("[br]", string.Empty); return(lyric); } break; case "204": // NO CONTENT Errors.Add("Parameter query returned no results. All parameters checked ok."); break; case "400": // MISSING KEY Errors.Add("Parameter “i” missing. Authorization failed."); break; case "401": // UNAUTHORIZED Errors.Add("Parameter “i” invalid. Authorization failed."); break; case "402": // LIMITED TIME Errors.Add("Query request too soon. Limit query requests. Time of delay is shown in <delay> tag in milliseconds."); break; case "406": // QUERY TOO SHORT Errors.Add("Query request string is too short. All other parameters checked ok."); break; default: Errors.Add("Unknown status."); break; } } } } return(null); }
private Lyrics ParseResponse(string response) { if (!string.IsNullOrEmpty(response)) { XDocument xdoc = XDocument.Parse(response); XElement xele = xdoc.Element("start"); if (xele != null) { string status = xele.GetElementValue("status"); if (!string.IsNullOrEmpty(status)) { switch (status) { case "200": // OK - Results are returned. All parameters checked ok. case "300": // TESTING LIMITED - Temporary access. Limited content. All parameters checked ok. xele = xele.Element("sg"); if (xele != null) { Lyrics lyric = new Lyrics(); lyric.Checksum = xele.GetElementValue("cs"); lyric.SongID = xele.GetElementValue("id"); lyric.ArtistName = xele.GetElementValue("ar"); lyric.Title = xele.GetElementValue("tt"); lyric.AlbumName = xele.GetElementValue("al"); lyric.Text = xele.GetElementValue("tx").Replace("[br]", string.Empty); return lyric; } break; case "204": // NO CONTENT Errors.Add("Parameter query returned no results. All parameters checked ok."); break; case "400": // MISSING KEY Errors.Add("Parameter “i” missing. Authorization failed."); break; case "401": // UNAUTHORIZED Errors.Add("Parameter “i” invalid. Authorization failed."); break; case "402": // LIMITED TIME Errors.Add("Query request too soon. Limit query requests. Time of delay is shown in <delay> tag in milliseconds."); break; case "406": // QUERY TOO SHORT Errors.Add("Query request string is too short. All other parameters checked ok."); break; default: Errors.Add("Unknown status."); break; } } } } return null; }