LyricsFetcher::Result GoogleLyricsFetcher::fetch(const std::string &artist, const std::string &title) { Result result; result.first = false; std::string search_str = artist; search_str += "+"; search_str += title; search_str += "+%2B"; search_str += siteKeyword(); std::string google_url = "http://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q="; google_url += search_str; google_url += "&btnI=I%27m+Feeling+Lucky"; std::string data; CURLcode code = Curl::perform(data, google_url, google_url); if (code != CURLE_OK) { result.second = curl_easy_strerror(code); return result; } auto urls = getContent("<A HREF=\"(.*?)\">here</A>", data); if (urls.empty() || !isURLOk(urls[0])) { result.second = msgNotFound; return result; } data = unescapeHtmlUtf8(urls[0]); //result.second = data; //return result; URL = data.c_str(); return LyricsFetcher::fetch("", ""); }
bool GoogleLyricsFetcher::isURLOk(const std::string &url) { return url.find(siteKeyword()) != std::string::npos; }