From 60b8071eea61b36d1b6409312931ebd71024c8e1 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Thu, 10 Dec 2020 15:16:23 +0100 Subject: [PATCH] Remove lyricwiki fetcher as the site closed down --- doc/config | 2 +- src/configuration.cpp | 1 - src/lyrics_fetcher.cpp | 64 +----------------------------------------- src/lyrics_fetcher.h | 14 --------- src/settings.cpp | 2 +- 5 files changed, 3 insertions(+), 80 deletions(-) diff --git a/doc/config b/doc/config index 760226fd..18165a3e 100644 --- a/doc/config +++ b/doc/config @@ -360,7 +360,7 @@ # #lines_scrolled = 2 # -#lyrics_fetchers = lyricwiki, azlyrics, genius, sing365, lyricsmania, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, zeneszoveg, internet +#lyrics_fetchers = azlyrics, genius, sing365, lyricsmania, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, zeneszoveg, internet # #follow_now_playing_lyrics = no # diff --git a/src/configuration.cpp b/src/configuration.cpp index 0d861bd8..69b8e4b8 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -156,7 +156,6 @@ bool configure(int argc, char **argv) if (vm.count("test-lyrics-fetchers")) { std::vector> fetcher_data = { - std::make_tuple("lyricwiki", "rihanna", "umbrella"), std::make_tuple("azlyrics", "rihanna", "umbrella"), std::make_tuple("genius", "rihanna", "umbrella"), std::make_tuple("sing365", "rihanna", "umbrella"), diff --git a/src/lyrics_fetcher.cpp b/src/lyrics_fetcher.cpp index 67f162b9..76ff5f49 100644 --- a/src/lyrics_fetcher.cpp +++ b/src/lyrics_fetcher.cpp @@ -38,9 +38,7 @@ std::istream &operator>>(std::istream &is, LyricsFetcher_ &fetcher) { std::string s; is >> s; - if (s == "lyricwiki") - fetcher = std::make_unique(); - else if (s == "azlyrics") + if (s == "azlyrics") fetcher = std::make_unique(); else if (s == "genius") fetcher = std::make_unique(); @@ -146,66 +144,6 @@ void LyricsFetcher::postProcess(std::string &data) const boost::trim(data); } -/***********************************************************************/ - -LyricsFetcher::Result LyricwikiFetcher::fetch(const std::string &artist, - const std::string &title) -{ - LyricsFetcher::Result result = LyricsFetcher::fetch(artist, title); - if (result.first == true) - { - result.first = false; - - std::string data; - CURLcode code = Curl::perform(data, result.second, "", true); - - if (code != CURLE_OK) - { - result.second = curl_easy_strerror(code); - return result; - } - - auto lyrics = getContent("
(.*?)
", data); - - if (lyrics.empty()) - { - result.second = msgNotFound; - return result; - } - std::transform(lyrics.begin(), lyrics.end(), lyrics.begin(), unescapeHtmlUtf8); - bool license_restriction = std::any_of(lyrics.begin(), lyrics.end(), [](const std::string &s) { - return s.find("Unfortunately, we are not licensed to display the full lyrics for this song at the moment.") != std::string::npos; - }); - if (license_restriction) - { - result.second = "Licence restriction"; - return result; - } - - data.clear(); - for (auto it = lyrics.begin(); it != lyrics.end(); ++it) - { - stripHtmlTags(*it); - boost::trim(*it); - if (!it->empty()) - { - data += *it; - if (it != lyrics.end()-1) - data += "\n\n----------\n\n"; - } - } - - result.second = data; - result.first = true; - } - return result; -} - -bool LyricwikiFetcher::notLyrics(const std::string &data) const -{ - return data.find("action=edit") != std::string::npos; -} - /**********************************************************************/ LyricsFetcher::Result GoogleLyricsFetcher::fetch(const std::string &artist, diff --git a/src/lyrics_fetcher.h b/src/lyrics_fetcher.h index c7500b99..6a22a32e 100644 --- a/src/lyrics_fetcher.h +++ b/src/lyrics_fetcher.h @@ -55,20 +55,6 @@ std::istream &operator>>(std::istream &is, LyricsFetcher_ &fetcher); /**********************************************************************/ -struct LyricwikiFetcher : public LyricsFetcher -{ - virtual const char *name() const override { return "lyricwiki.com"; } - virtual Result fetch(const std::string &artist, const std::string &title) override; - -protected: - virtual const char *urlTemplate() const override { return "http://lyrics.wikia.com/api.php?action=lyrics&fmt=xml&func=getSong&artist=%artist%&song=%title%"; } - virtual const char *regex() const override { return "(.*?)"; } - - virtual bool notLyrics(const std::string &data) const override; -}; - -/**********************************************************************/ - struct GoogleLyricsFetcher : public LyricsFetcher { virtual Result fetch(const std::string &artist, const std::string &title); diff --git a/src/settings.cpp b/src/settings.cpp index f531063c..d6924f37 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -464,7 +464,7 @@ bool Configuration::read(const std::vector &config_paths, bool igno p.add("cyclic_scrolling", &use_cyclic_scrolling, "no", yes_no); p.add("lines_scrolled", &lines_scrolled, "2"); p.add("lyrics_fetchers", &lyrics_fetchers, - "lyricwiki, azlyrics, genius, sing365, lyricsmania, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, zeneszoveg, internet", + "azlyrics, genius, sing365, lyricsmania, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, zeneszoveg, internet", list_of); p.add("follow_now_playing_lyrics", &now_playing_lyrics, "no", yes_no); p.add("fetch_lyrics_for_current_song_in_background", &fetch_lyrics_in_background,