diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-10-08 19:17:24 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-10-08 19:17:24 +0000 |
| commit | 1812e98bf5c409c58071b223700ff2296a2d030e (patch) | |
| tree | a1518622330b39ba3c5109cedd5fdd21c1a539cd /src/plugins/General/lyrics/lyricsprovider.cpp | |
| parent | 6503d9953ae296d176cba5092f5259932c4c09d7 (diff) | |
| download | qmmp-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.cpp | 53 |
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; |
