diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-06-11 12:27:33 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-06-11 12:27:33 +0000 |
| commit | 7a1a4b96a066b497c7df75d02c213aca1db0f6c5 (patch) | |
| tree | aea9efed293ce2a631f79398a6676a3de0f16020 /src/plugins/General | |
| parent | 8adf8e8f61f4916257b3a98e698f725d47560170 (diff) | |
| download | qmmp-7a1a4b96a066b497c7df75d02c213aca1db0f6c5.tar.gz qmmp-7a1a4b96a066b497c7df75d02c213aca1db0f6c5.tar.bz2 qmmp-7a1a4b96a066b497c7df75d02c213aca1db0f6c5.zip | |
scorbbler plugin: fixed problem with tags that contain the & sign
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@964 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General')
| -rw-r--r-- | src/plugins/General/scrobbler/scrobbler.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/plugins/General/scrobbler/scrobbler.cpp b/src/plugins/General/scrobbler/scrobbler.cpp index 04bbeebde..e9a909f84 100644 --- a/src/plugins/General/scrobbler/scrobbler.cpp +++ b/src/plugins/General/scrobbler/scrobbler.cpp @@ -195,13 +195,16 @@ void Scrobbler::updateMetaData() && !metadata.value(Qmmp::TITLE).isEmpty() //skip empty tags && !metadata.value(Qmmp::ARTIST).isEmpty() && m_core->totalTime() //skip stream - && !metadata.value(Qmmp::ARTIST).contains("&") //skip tags with special symbols - && !metadata.value(Qmmp::TITLE).contains("&") - && !metadata.value(Qmmp::ALBUM).contains("&") - && !metadata.value(Qmmp::ARTIST).contains("=") + && !metadata.value(Qmmp::ARTIST).contains("=") //skip tags with special symbols && !metadata.value(Qmmp::TITLE).contains("=") && !metadata.value(Qmmp::ALBUM).contains("=")) { + metadata[Qmmp::ARTIST].replace("%", QUrl::toPercentEncoding("%")); //replace special symbols + metadata[Qmmp::ALBUM].replace("%", QUrl::toPercentEncoding("%")); + metadata[Qmmp::TITLE].replace("%", QUrl::toPercentEncoding("%")); + metadata[Qmmp::ARTIST].replace("&", QUrl::toPercentEncoding("&")); + metadata[Qmmp::ALBUM].replace("&", QUrl::toPercentEncoding("&")); + metadata[Qmmp::TITLE].replace("&", QUrl::toPercentEncoding("&")); m_song = SongInfo(metadata, m_core->totalTime()/1000); if (isReady() && m_notificationid == 0) sendNotification(m_song); @@ -349,11 +352,11 @@ void Scrobbler::submit() header.setValue("User-Agent","iScrobbler/1.5.1qmmp-plugins/" + Qmmp::strVersion()); header.setValue("Host",url.host()); header.setValue("Accept", "*/*"); - header.setContentLength(QUrl::toPercentEncoding(body,":/[]&=").size()); + header.setContentLength(QUrl::toPercentEncoding(body,":/[]&=%").size()); qDebug("Scrobbler[%s]: submit request header", qPrintable(m_name)); qDebug("%s",qPrintable(header.toString().trimmed())); qDebug("*****************************"); - m_submitid = m_http->request(header, QUrl::toPercentEncoding(body,":/[]&=")); + m_submitid = m_http->request(header, QUrl::toPercentEncoding(body,":/[]&=%")); } void Scrobbler::sendNotification(const SongInfo &info) @@ -373,11 +376,11 @@ void Scrobbler::sendNotification(const SongInfo &info) header.setValue("User-Agent","iScrobbler/1.5.1qmmp-plugins/" + Qmmp::strVersion()); header.setValue("Host",url.host()); header.setValue("Accept", "*/*"); - header.setContentLength(QUrl::toPercentEncoding(body,":/[]&=").size()); + header.setContentLength(QUrl::toPercentEncoding(body,":/[]&=%").size()); qDebug("Scrobbler[%s]: Now-Playing notification request header", qPrintable(m_name)); qDebug("%s",qPrintable(header.toString().trimmed())); qDebug("*****************************"); - m_notificationid = m_http->request(header, QUrl::toPercentEncoding(body,":/[]&=")); + m_notificationid = m_http->request(header, QUrl::toPercentEncoding(body,":/[]&=%")); } bool Scrobbler::isReady() |
