diff --git a/src/scrobbler/audioscrobbler.cpp b/src/scrobbler/audioscrobbler.cpp index ccbb029b..61b31330 100644 --- a/src/scrobbler/audioscrobbler.cpp +++ b/src/scrobbler/audioscrobbler.cpp @@ -151,7 +151,7 @@ void AudioScrobbler::Submit() { for (ScrobblerService *service : scrobbler_services_->List()) { if (!service->IsEnabled() || !service->IsAuthenticated() || service->IsSubmitted()) continue; int msec = 300; - if (submit_delay_ > 0) msec = (submit_delay_ * kMsecPerSec); + if (submit_delay_ != 0) msec = (submit_delay_ * kMsecPerSec); DoAfter(this, SLOT(Submit()), msec); service->Submitted(); DoInAMinuteOrSo(service, SLOT(Submit())); diff --git a/src/scrobbler/listenbrainzscrobbler.cpp b/src/scrobbler/listenbrainzscrobbler.cpp index 234dda62..0332ef03 100644 --- a/src/scrobbler/listenbrainzscrobbler.cpp +++ b/src/scrobbler/listenbrainzscrobbler.cpp @@ -333,15 +333,12 @@ void ListenBrainzScrobbler::UpdateNowPlaying(const Song &song) { if (!song.is_metadata_good()) return; - // FIXME: This does not work: BAD REQUEST (302) - return; - - QJsonObject object_listen; - object_listen.insert("listened_at", QJsonValue::fromVariant(timestamp_)); QJsonObject object_track_metadata; object_track_metadata.insert("artist_name", QJsonValue::fromVariant(song.artist())); object_track_metadata.insert("release_name", QJsonValue::fromVariant(song.album())); object_track_metadata.insert("track_name", QJsonValue::fromVariant(song.title())); + + QJsonObject object_listen; object_listen.insert("track_metadata", object_track_metadata); QJsonArray array_payload; @@ -366,9 +363,28 @@ void ListenBrainzScrobbler::UpdateNowPlayingRequestFinished(QNetworkReply *reply if (data.isEmpty()) { return; } - qLog(Debug) << data; - // TODO + QJsonObject json_obj = ExtractJsonObj(data); + if (json_obj.isEmpty()) { + return; + } + + if (json_obj.contains("error") && json_obj.contains("error_description")) { + QString error_code = json_obj["error"].toString(); + QString error_desc = json_obj["error_description"].toString(); + Error(error_desc); + return; + } + + if (!json_obj.contains("status")) { + Error("Missing status from server.", json_obj); + return; + } + + QString status = json_obj["status"].toString(); + if (status.toLower() != "ok") { + Error(status); + } }