aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/scrobbler/scrobbler2.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-12-19 21:15:09 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-12-19 21:15:09 +0000
commit1618b3a5915f15c9859ffc734af3e105ef601554 (patch)
tree5d7923610ad1aba0db32d9d5ef98fc1350671f4e /src/plugins/General/scrobbler/scrobbler2.cpp
parentfb34027a15d83e053b500bfcb3b2ed89a6aefcd6 (diff)
downloadqmmp-1618b3a5915f15c9859ffc734af3e105ef601554.tar.gz
qmmp-1618b3a5915f15c9859ffc734af3e105ef601554.tar.bz2
qmmp-1618b3a5915f15c9859ffc734af3e105ef601554.zip
fixed problem with new scrobbler
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2014 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General/scrobbler/scrobbler2.cpp')
-rw-r--r--src/plugins/General/scrobbler/scrobbler2.cpp45
1 files changed, 28 insertions, 17 deletions
diff --git a/src/plugins/General/scrobbler/scrobbler2.cpp b/src/plugins/General/scrobbler/scrobbler2.cpp
index d542eac1a..f24f60363 100644
--- a/src/plugins/General/scrobbler/scrobbler2.cpp
+++ b/src/plugins/General/scrobbler/scrobbler2.cpp
@@ -389,6 +389,12 @@ void Scrobbler2::submit()
params.insert("method", "track.scrobble");
params.insert("sk", m_session);
+ foreach (QString key, params) //removes empty keys
+ {
+ if(params.value(key).isEmpty())
+ params.remove(key);
+ }
+
QUrl url(QString("http://") + m_server + "/");
url.setPort(80);
@@ -415,28 +421,33 @@ void Scrobbler2::sendNotification(const SongInfo &info)
if(m_session.isEmpty())
return;
qDebug("Scrobbler2[%s] sending notification", qPrintable(m_name));
+
+ QMap <QString, QString> params;
+ params.insert("track", info.metaData(Qmmp::TITLE));
+ params.insert("artist", info.metaData(Qmmp::ARTIST));
+ params.insert("album", info.metaData(Qmmp::ALBUM));
+ params.insert("trackNumber", info.metaData(Qmmp::TRACK));
+ params.insert("duration", QString("%1").arg(info.length()));
+ params.insert("api_key", API_KEY);
+ params.insert("method", "track.updateNowPlaying");
+ params.insert("sk", m_session);
+
+ foreach (QString key, params) //removes empty keys
+ {
+ if(params.value(key).isEmpty())
+ params.remove(key);
+ }
+
QUrl url(QString("http://") + m_server + "/");
url.setPort(80);
QUrl body("");
- body.addQueryItem("api_key", API_KEY);
- body.addQueryItem("method", "track.updateNowPlaying");
- body.addQueryItem("track", info.metaData(Qmmp::TITLE));
- body.addQueryItem("trackNumber", info.metaData(Qmmp::TRACK));
- body.addQueryItem("artist", info.metaData(Qmmp::ARTIST));
- body.addQueryItem("album", info.metaData(Qmmp::ALBUM));
- body.addQueryItem("duration", QString("%1").arg(info.length()));
- body.addQueryItem("sk", m_session);
-
QByteArray data;
- data.append("album"+info.metaData(Qmmp::ALBUM).toUtf8());
- data.append("api_key"API_KEY);
- data.append("artist"+info.metaData(Qmmp::ARTIST).toUtf8());
- data.append("duration"+QString("%1").arg(info.length()).toUtf8());
- data.append("methodtrack.updateNowPlaying");
- data.append("sk"+m_session.toUtf8());
- data.append("track"+info.metaData(Qmmp::TITLE).toUtf8());
- data.append("trackNumber"+info.metaData(Qmmp::TRACK).toUtf8());
+ foreach (QString key, params.keys())
+ {
+ body.addQueryItem(key, params.value(key));
+ data.append(key.toUtf8() + params.value(key).toUtf8());
+ }
data.append(SECRET);
body.addQueryItem("api_sig", QCryptographicHash::hash(data, QCryptographicHash::Md5).toHex());