diff --git a/src/lyrics_fetcher.cpp b/src/lyrics_fetcher.cpp index 7df8922b..25540807 100644 --- a/src/lyrics_fetcher.cpp +++ b/src/lyrics_fetcher.cpp @@ -31,6 +31,7 @@ LyricsFetcher *lyricsPlugins[] = { new LyricwikiFetcher(), + new Sing365Fetcher(), new LyriczzFetcher(), new SonglyricsFetcher(), new LyricsmaniaFetcher(), @@ -181,15 +182,14 @@ LyricsFetcher::Result GoogleLyricsFetcher::fetch(const std::string &artist, cons return result; } + data = unescapeHtmlUtf8(data); + //result.second = data; + //return result; + URL = data.c_str(); return LyricsFetcher::fetch("", ""); } -bool GoogleLyricsFetcher::notLyrics(const std::string &data) -{ - return LyricsFetcher::notLyrics(data); -} - bool GoogleLyricsFetcher::isURLOk(const std::string &url) { return url.find(getSiteKeyword()) != std::string::npos; @@ -224,7 +224,7 @@ void MetrolyricsFetcher::postProcess(std::string &data) bool MetrolyricsFetcher::isURLOk(const std::string &url) { // it sometimes return link to sitemap.xml, which is huge so we need to discard it - return GoogleLyricsFetcher::isURLOk(url) && url.find("sitemap.xml") == std::string::npos; + return GoogleLyricsFetcher::isURLOk(url) && url.find("sitemap") == std::string::npos; } /**********************************************************************/ diff --git a/src/lyrics_fetcher.h b/src/lyrics_fetcher.h index 4e08cf99..c81563e7 100644 --- a/src/lyrics_fetcher.h +++ b/src/lyrics_fetcher.h @@ -41,7 +41,7 @@ struct LyricsFetcher virtual const char *getOpenTag() = 0; virtual const char *getCloseTag() = 0; - virtual bool notLyrics(GNUC_UNUSED const std::string &data) { return false; } + virtual bool notLyrics(const std::string &) { return false; } virtual void postProcess(std::string &data); bool getContent(const char *open_tag, const char *close_tag, std::string &data); @@ -94,8 +94,8 @@ struct GoogleLyricsFetcher : public LyricsFetcher virtual const char *getSiteKeyword() = 0; virtual const char *getURL() { return URL; } - virtual bool notLyrics(const std::string &data); virtual bool isURLOk(const std::string &url); + private: const char *URL; }; @@ -160,8 +160,16 @@ struct LyriczzFetcher : public GoogleLyricsFetcher virtual const char *getSiteKeyword() { return "lyriczz"; } virtual const char *getOpenTag() { return "border=0 />"; } virtual const char *getCloseTag() { return "
"; } + virtual const char *getCloseTag() { return "