--- a/notifications/audioscrobbler.cpp
+++ b/notifications/audioscrobbler.cpp
@@ -28,14 +28,13 @@
using namespace UPnPP;
-static const QString rootUrl("http://ws.audioscrobbler.com/2.0/");
+static const QString rootUrl("https://ws.audioscrobbler.com/2.0/");
// Values for upplay
static const string apiKey("48b8a81fe93a4532efb4b713c8ad8e00");
static const string apiSecret("d5bb8eb0dafce36e20ab6d14deccb264");
AudioScrobbler::AudioScrobbler(QObject *parent)
- : QObject(parent), m_curpos(0), m_starttime(0), m_sent(false),
- m_lastqfail(0), m_failcount(0), m_authed(false), m_netactive(false)
+ : QObject(parent)
{
m_netman = new QNetworkAccessManager(this);
@@ -123,6 +122,7 @@
void AudioScrobbler::openURL(const QString& url, const char *data)
{
+ //qDebug() << "AudioScrobbler::openURL:" << url << " data " << data;
if (m_netman == 0 || m_netactive) {
qDebug() << "AudioScrobbler::openURL: no netman or already active";
return;
@@ -146,9 +146,10 @@
QByteArray qdata;
if (error == QNetworkReply::NoError) {
qdata = reply->readAll();
- qDebug() << "Success: " << qdata;
+ //qDebug() << ""AudioScrobbler::replyFinished: Success: " << qdata;
} else {
- qDebug() << "Failure: error: " << reply->errorString();
+ //qDebug() << ""AudioScrobbler::replyFinished: error: " <<
+ //reply->errorString();
reply->deleteLater();
m_netactive = false;
return;
@@ -254,12 +255,11 @@
static const string amp("&");
static const string eq("=");
- for (map<string, string>::const_iterator it = vars.begin();
- it != vars.end(); it++) {
- if (it != vars.begin())
+ for (const auto& entry : vars) {
+ if (!out.empty())
out += amp;
- out += it->first + eq + it->second;
- sigdata += it->first + it->second;
+ out += entry.first + eq + entry.second;
+ sigdata += entry.first + entry.second;
}
sigdata += apiSecret;
@@ -269,7 +269,7 @@
out += "&api_sig=" + sighash;
- //qDebug() << "Message: [" << out.c_str() << "]\n";
+ //qDebug() << "Message: [" << out.c_str() << "]";
return out;
}
@@ -291,13 +291,14 @@
bool AudioScrobbler::scrobble(const MetaData& meta)
{
+ //qDebug() << "AudioScrobbler::scrobble. m_authed " << m_authed;
if(!m_authed) {
//qDebug() << "AudioScrobbler::scrobble: handshake not done yet.";
handshake();
return false;
}
- qDebug() << "AudioScrobbler:scrobble: " << meta.title << " " << meta.artist;
+ //qDebug()<<"AudioScrobbler:scrobble: " << meta.title << " " << meta.artist;
openURL(rootUrl, createScrobbleMessage(meta).c_str());
@@ -306,6 +307,13 @@
bool AudioScrobbler::nowPlaying(const MetaData& meta)
{
+ //qDebug() << "AudioScrobbler::nowPlaying. m_authed " << m_authed;
+ if(!m_authed) {
+ //qDebug() << "AudioScrobbler::scrobble: handshake not done yet.";
+ handshake();
+ return false;
+ }
+
map<string, string> vars;
vars["method"] = "track.updateNowPlaying";
vars["track"] = Helper::escapeHtml(qs2utf8s(meta.title));
@@ -321,8 +329,14 @@
bool AudioScrobbler::loveTrack(const MetaData& meta)
{
+ //qDebug() << "AudioScrobbler::loveTrack. m_authed " << m_authed;
+ if(!m_authed) {
+ //qDebug() << "AudioScrobbler::scrobble: handshake not done yet.";
+ handshake();
+ return false;
+ }
+
map<string, string> vars;
-
vars["method"] = "track.love";
vars["track"] = Helper::escapeHtml(qs2utf8s(meta.title));
vars["artist"] = Helper::escapeHtml(qs2utf8s(meta.artist));
@@ -335,19 +349,16 @@
void AudioScrobbler::handshake()
{
+ //qDebug() << "AudioScrobbler::handshake. m_authed " << m_authed;
QSettings settings;
string username = qs2utf8s(settings.value("lastfmusername").
toString().toLower());
string password = qs2utf8s(settings.value("lastfmpassword").toString());
- string digest, authtoken;
- MD5String(username + password, digest);
- MD5HexPrint(digest, authtoken);
-
map<string, string> vars;
vars["method"] = "auth.getMobileSession";
vars["username"] = username;
- vars["authToken"] = authtoken;
+ vars["password"] = password;
vars["api_key"] = apiKey;
openURL(rootUrl, LFMMessage(vars).c_str());