From 5ebd363d5dc60acb08edffafc668c73527aa8813 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Tue, 21 Jul 2020 03:14:02 +0200 Subject: [PATCH] Fixes to last.fm scrobbling - Start array notation for parameters at 0 - Correctly send trackNumber --- src/scrobbler/scrobblingapi20.cpp | 127 ++++++++++++++++-------------- 1 file changed, 69 insertions(+), 58 deletions(-) diff --git a/src/scrobbler/scrobblingapi20.cpp b/src/scrobbler/scrobblingapi20.cpp index 71e28a62f..46ccfa0b9 100644 --- a/src/scrobbler/scrobblingapi20.cpp +++ b/src/scrobbler/scrobblingapi20.cpp @@ -383,7 +383,7 @@ QNetworkReply *ScrobblingAPI20::CreateRequest(const ParamList &request_params) { QNetworkReply *reply = network()->post(req, query); replies_ << reply; - //qLog(Debug) << name_ << "Sending request" << query; + //qLog(Debug) << name_ << "Sending request" << url_query.toString(QUrl::FullyDecoded); return reply; @@ -566,7 +566,7 @@ void ScrobblingAPI20::Submit() { ParamList params = ParamList() << Param("method", "track.scrobble"); - int i(0); + int i = 0; QList list; for (ScrobblerCacheItemPtr item : cache()->List()) { if (item->sent_) continue; @@ -575,7 +575,6 @@ void ScrobblingAPI20::Submit() { SendSingleScrobble(item); continue; } - i++; list << item->timestamp_; params << Param(QString("%1[%2]").arg("artist").arg(i), prefer_albumartist_ ? item->effective_albumartist() : item->artist_); params << Param(QString("%1[%2]").arg("track").arg(i), item->song_); @@ -586,7 +585,8 @@ void ScrobblingAPI20::Submit() { if (!prefer_albumartist_ && !item->albumartist_.isEmpty() && item->albumartist_.toLower() != Song::kVariousArtists) params << Param(QString("%1[%2]").arg("albumArtist").arg(i), item->albumartist_); if (item->track_ > 0) - params << Param(QString("%1[%2]").arg(i).arg("trackNumber"), QString::number(item->track_)); + params << Param(QString("%1[%2]").arg("trackNumber").arg(i), QString::number(item->track_)); + ++i; if (i >= kScrobblesPerRequest) break; } @@ -655,41 +655,55 @@ void ScrobblingAPI20::ScrobbleRequestFinished(QNetworkReply *reply, QList