aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/lyrics/lyricsprovider.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-10-08 19:17:24 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-10-08 19:17:24 +0000
commit1812e98bf5c409c58071b223700ff2296a2d030e (patch)
treea1518622330b39ba3c5109cedd5fdd21c1a539cd /src/plugins/General/lyrics/lyricsprovider.cpp
parent6503d9953ae296d176cba5092f5259932c4c09d7 (diff)
downloadqmmp-1812e98bf5c409c58071b223700ff2296a2d030e.tar.gz
qmmp-1812e98bf5c409c58071b223700ff2296a2d030e.tar.bz2
qmmp-1812e98bf5c409c58071b223700ff2296a2d030e.zip
lyrics: request implementation
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9086 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General/lyrics/lyricsprovider.cpp')
-rw-r--r--src/plugins/General/lyrics/lyricsprovider.cpp53
1 files changed, 38 insertions, 15 deletions
diff --git a/src/plugins/General/lyrics/lyricsprovider.cpp b/src/plugins/General/lyrics/lyricsprovider.cpp
index 697ed0eab..6b9e2ab26 100644
--- a/src/plugins/General/lyrics/lyricsprovider.cpp
+++ b/src/plugins/General/lyrics/lyricsprovider.cpp
@@ -1,5 +1,6 @@
#include <QtDebug>
#include <QRegularExpression>
+#include <QTextCodec>
#include <qmmp/trackinfo.h>
#include "lyricsprovider.h"
@@ -20,7 +21,7 @@ void LyricsProvider::setTitle(const QString &title)
void LyricsProvider::setCharset(const QString &charset)
{
- m_charser = charset;
+ m_charset = charset;
}
void LyricsProvider::setUrl(const QString &url)
@@ -65,23 +66,23 @@ void LyricsProvider::addInvalidIndicator(const QString &indicator)
m_invalidIndicators << indicator;
}
-QString LyricsProvider::getUrl(const TrackInfo *track) const
+QString LyricsProvider::getUrl(const TrackInfo &track) const
{
QString url = m_url;
QMap<QString, QString> replaceMap = {
- { "{artist}", track->value(Qmmp::ARTIST).toLower() },
- { "{artist2}", track->value(Qmmp::ARTIST).toLower().remove(' ') },
- { "{Artist}", track->value(Qmmp::ARTIST) },
- { "{ARTIST}", track->value(Qmmp::ARTIST).toUpper() },
- { "{a}", track->value(Qmmp::ARTIST).left(1).toLower() },
- { "{album}", track->value(Qmmp::ALBUM).toLower() },
- { "{album2}", track->value(Qmmp::ALBUM).toLower().remove(' ') },
- { "{Album}", track->value(Qmmp::ALBUM) },
- { "{title}", track->value(Qmmp::TITLE).toLower() },
- { "{Title}", track->value(Qmmp::TITLE) },
- { "{Title2}", fixCase(track->value(Qmmp::TITLE)) },
- { "{track}", track->value(Qmmp::TRACK) },
- { "{year}", track->value(Qmmp::YEAR) }
+ { "{artist}", track.value(Qmmp::ARTIST).toLower() },
+ { "{artist2}", track.value(Qmmp::ARTIST).toLower().remove(' ') },
+ { "{Artist}", track.value(Qmmp::ARTIST) },
+ { "{ARTIST}", track.value(Qmmp::ARTIST).toUpper() },
+ { "{a}", track.value(Qmmp::ARTIST).left(1).toLower() },
+ { "{album}", track.value(Qmmp::ALBUM).toLower() },
+ { "{album2}", track.value(Qmmp::ALBUM).toLower().remove(' ') },
+ { "{Album}", track.value(Qmmp::ALBUM) },
+ { "{title}", track.value(Qmmp::TITLE).toLower() },
+ { "{Title}", track.value(Qmmp::TITLE) },
+ { "{Title2}", fixCase(track.value(Qmmp::TITLE)) },
+ { "{track}", track.value(Qmmp::TRACK) },
+ { "{year}", track.value(Qmmp::YEAR) }
};
QMap<QString, QString>::const_iterator it = replaceMap.constBegin();
@@ -100,6 +101,28 @@ QString LyricsProvider::getUrl(const TrackInfo *track) const
return url;
}
+QString LyricsProvider::format(const QByteArray &data) const
+{
+ QTextCodec *codec = QTextCodec::codecForName(m_charset.toLatin1().constData());
+ if(!codec)
+ codec = QTextCodec::codecForName("UTF-8");
+
+ QString content = codec->toUnicode(data);
+
+ for(const QString &indicator : qAsConst(m_invalidIndicators))
+ {
+ if(content.contains(indicator))
+ return QString();
+ }
+
+ return content;
+}
+
+const QString &LyricsProvider::name() const
+{
+ return m_name;
+}
+
QString LyricsProvider::fixCase(const QString &title) const
{
QString out;