diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-12-19 21:15:09 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-12-19 21:15:09 +0000 |
| commit | 1618b3a5915f15c9859ffc734af3e105ef601554 (patch) | |
| tree | 5d7923610ad1aba0db32d9d5ef98fc1350671f4e | |
| parent | fb34027a15d83e053b500bfcb3b2ed89a6aefcd6 (diff) | |
| download | qmmp-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
| -rw-r--r-- | src/plugins/General/scrobbler/scrobbler2.cpp | 45 |
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()); |
