Exemplo n.º 1
0
 private void getLyricsURL(string Artist, string Title, LyricsCallback Callback)
 {
     if (lyrics.ContainsKey(Artist + Title))
     {
         string s = lyrics[Artist + Title];
         if (s == Net.FAILED_TOKEN)
         {
             if (StringUtil.HasParentheticalChars(Title))
             {
                 getLyricsURL(Artist, StringUtil.RemoveParentheticalChars(Title), Callback);
             }
             else
             {
                 Callback(Net.FAILED_TOKEN);
             }
         }
         else
         {
             Callback(s);
         }
     }
     else
     {
         getLyricsImpl(Artist, Title, Callback);
     }
 }
Exemplo n.º 2
0
        private void getLyricsImpl(string Artist, string Title, LyricsCallback Callback)
        {
            if (Artist.Length > 0 && Title.Length > 0)
            {
                string url = LyricWiki.URL + String.Format("{0}:{1}", HttpUtility.UrlEncode(Artist.Replace(' ', '_')), HttpUtility.UrlEncode(Title.Replace(' ', '_')));

                string result = Net.Get(url).Trim();

                if (result.Length == 0)
                {
                    result = Net.FAILED_TOKEN;
                }
                else if (result.StartsWith("not found", StringComparison.InvariantCultureIgnoreCase))
                {
                    result = Net.FAILED_TOKEN;
                }

                if (result != Net.FAILED_TOKEN)
                {
                    lyrics.Add(Artist + Title, result);
                }

                if (result == Net.FAILED_TOKEN)
                {
                    if (StringUtil.HasParentheticalChars(Title))
                    {
                        getLyricsURL(Artist, StringUtil.RemoveParentheticalChars(Title), Callback);
                    }
                    else
                    {
                        Callback(Net.FAILED_TOKEN);
                    }
                }
                else
                {
                    string s = extractLyrics(result);

                    if (s == String.Empty)
                    {
                        s = Net.FAILED_TOKEN;
                    }
                    Callback(s);
                }
            }
            else
            {
                Callback(Net.FAILED_TOKEN);
            }
        }
Exemplo n.º 3
0
 public void GetLyrics(Track Track, LyricsCallback Callback)
 {
     getLyricsURL(Track.Artist, Track.Title, Callback);
 }