lyrics fetcher: add songlyrics.com and lyriczz.com support
This commit is contained in:
@@ -31,6 +31,8 @@
|
|||||||
LyricsFetcher *lyricsPlugins[] =
|
LyricsFetcher *lyricsPlugins[] =
|
||||||
{
|
{
|
||||||
new LyricwikiFetcher(),
|
new LyricwikiFetcher(),
|
||||||
|
new LyriczzFetcher(),
|
||||||
|
new SonglyricsFetcher(),
|
||||||
new LyricsmaniaFetcher(),
|
new LyricsmaniaFetcher(),
|
||||||
new LyricstimeFetcher(),
|
new LyricstimeFetcher(),
|
||||||
new MetrolyricsFetcher(),
|
new MetrolyricsFetcher(),
|
||||||
@@ -183,6 +185,11 @@ LyricsFetcher::Result GoogleLyricsFetcher::fetch(const std::string &artist, cons
|
|||||||
return LyricsFetcher::fetch("", "");
|
return LyricsFetcher::fetch("", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GoogleLyricsFetcher::notLyrics(const std::string &data)
|
||||||
|
{
|
||||||
|
return LyricsFetcher::notLyrics(data);
|
||||||
|
}
|
||||||
|
|
||||||
bool GoogleLyricsFetcher::isURLOk(const std::string &url)
|
bool GoogleLyricsFetcher::isURLOk(const std::string &url)
|
||||||
{
|
{
|
||||||
return url.find(getSiteKeyword()) != std::string::npos;
|
return url.find(getSiteKeyword()) != std::string::npos;
|
||||||
@@ -230,5 +237,16 @@ void LyricsmaniaFetcher::postProcess(std::string &data)
|
|||||||
LyricsFetcher::postProcess(data);
|
LyricsFetcher::postProcess(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**********************************************************************/
|
||||||
|
|
||||||
|
void SonglyricsFetcher::postProcess(std::string &data)
|
||||||
|
{
|
||||||
|
size_t i = data.find('['), j = data.find(']');
|
||||||
|
if (i != std::string::npos && i != std::string::npos)
|
||||||
|
data.replace(i, j-i+2, "");
|
||||||
|
data = unescapeHtmlUtf8(data);
|
||||||
|
LyricsFetcher::postProcess(data);
|
||||||
|
}
|
||||||
|
|
||||||
#endif // HAVE_CURL_CURL_H
|
#endif // HAVE_CURL_CURL_H
|
||||||
|
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ struct GoogleLyricsFetcher : public LyricsFetcher
|
|||||||
virtual const char *getSiteKeyword() = 0;
|
virtual const char *getSiteKeyword() = 0;
|
||||||
virtual const char *getURL() { return URL; }
|
virtual const char *getURL() { return URL; }
|
||||||
|
|
||||||
|
virtual bool notLyrics(const std::string &data);
|
||||||
virtual bool isURLOk(const std::string &url);
|
virtual bool isURLOk(const std::string &url);
|
||||||
private:
|
private:
|
||||||
const char *URL;
|
const char *URL;
|
||||||
@@ -139,6 +140,30 @@ struct LyricsmaniaFetcher : public GoogleLyricsFetcher
|
|||||||
virtual void postProcess(std::string &data);
|
virtual void postProcess(std::string &data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct SonglyricsFetcher : public GoogleLyricsFetcher
|
||||||
|
{
|
||||||
|
virtual const char *name() { return "songlyrics.com"; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual const char *getSiteKeyword() { return "songlyrics"; }
|
||||||
|
virtual const char *getOpenTag() { return "-6000px;\">"; }
|
||||||
|
virtual const char *getCloseTag() { return "</p>"; }
|
||||||
|
|
||||||
|
virtual void postProcess(std::string &data);
|
||||||
|
};
|
||||||
|
|
||||||
|
struct LyriczzFetcher : public GoogleLyricsFetcher
|
||||||
|
{
|
||||||
|
virtual const char *name() { return "lyriczz.com"; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual const char *getSiteKeyword() { return "lyriczz"; }
|
||||||
|
virtual const char *getOpenTag() { return "border=0 /></a>"; }
|
||||||
|
virtual const char *getCloseTag() { return "<a href"; }
|
||||||
|
|
||||||
|
//virtual void postProcess(std::string &data);
|
||||||
|
};
|
||||||
|
|
||||||
extern LyricsFetcher *lyricsPlugins[];
|
extern LyricsFetcher *lyricsPlugins[];
|
||||||
|
|
||||||
#endif // HAVE_CURL_CURL_H
|
#endif // HAVE_CURL_CURL_H
|
||||||
|
|||||||
Reference in New Issue
Block a user