From 557720061d03dc81a1b43e3f059d74166f3c62fa Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Sun, 18 Mar 2018 11:07:28 +0100 Subject: [PATCH] Lyrics fetcher: fix metrolyrics.com fetchers --- NEWS | 2 +- src/lyrics_fetcher.cpp | 7 ++++++- src/lyrics_fetcher.h | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index c82b5f5d..c3a10485 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,7 @@ ncmpcpp-0.8.2 (????-??-??) * Help screen: fixed display of EoF keycode * Fixed possible integer overflow when resizing screen -* Fixed fetching lyrics from lyricsmania.com and sing365.com +* Fixed fetching lyrics from lyricsmania.com, metrolyrics.com and sing365.com ncmpcpp-0.8.1 (2017-10-11) * Setting 'colors_enabled' to 'no' no longer results in a crash. diff --git a/src/lyrics_fetcher.cpp b/src/lyrics_fetcher.cpp index 2239edce..b32230cf 100644 --- a/src/lyrics_fetcher.cpp +++ b/src/lyrics_fetcher.cpp @@ -119,7 +119,12 @@ std::vector LyricsFetcher::getContent(const char *regex_, auto first = boost::sregex_iterator(data.begin(), data.end(), rx); auto last = boost::sregex_iterator(); for (; first != last; ++first) - result.push_back(first->str(1)); + { + std::string content; + for (size_t i = 1; i < first->size(); ++i) + content += first->str(i); + result.push_back(std::move(content)); + } return result; } diff --git a/src/lyrics_fetcher.h b/src/lyrics_fetcher.h index 94850a74..ce26c9ae 100644 --- a/src/lyrics_fetcher.h +++ b/src/lyrics_fetcher.h @@ -88,7 +88,7 @@ struct MetrolyricsFetcher : public GoogleLyricsFetcher virtual const char *name() const override { return "metrolyrics.com"; } protected: - virtual const char *regex() const override { return "
(.*?)
"; } + virtual const char *regex() const override { return "
(.*?)(.*?)(.*?)
"; } virtual bool isURLOk(const std::string &url) override; };