Switch to side-by-side view

--- 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());