diff --git a/src/musicbrainz/musicbrainzclient.cpp b/src/musicbrainz/musicbrainzclient.cpp index 021e115cf..4f17cd107 100644 --- a/src/musicbrainz/musicbrainzclient.cpp +++ b/src/musicbrainz/musicbrainzclient.cpp @@ -33,6 +33,7 @@ const char* MusicBrainzClient::kDiscUrl = "https://musicbrainz.org/ws/2/discid/"; const char* MusicBrainzClient::kDateRegex = "^[12]\\d{3}"; const int MusicBrainzClient::kDefaultTimeout = 5000; // msec +const int MusicBrainzClient::kMaxRequestPerTrack = 3; MusicBrainzClient::MusicBrainzClient(QObject* parent, QNetworkAccessManager* network) @@ -59,6 +60,10 @@ void MusicBrainzClient::Start(int id, const QStringList& mbid_list) { requests_.insert(id, reply); timeouts_->AddReply(reply); + + if (request_number >= kMaxRequestPerTrack) { + break; + } } } @@ -154,7 +159,6 @@ void MusicBrainzClient::RequestFinished(QNetworkReply* reply, int id, int reques "requests removed, while only one was supposed to be removed"; } - if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 200) { QXmlStreamReader reader(reply); @@ -171,6 +175,10 @@ void MusicBrainzClient::RequestFinished(QNetworkReply* reply, int id, int reques } } pending_results_[id] << PendingResults(request_number, res); + } else { + qLog(Error) << "Error:" << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() << + "http status code received"; + qLog(Error) << reply->readAll(); } // No more pending requests for this id: emit the results we have. diff --git a/src/musicbrainz/musicbrainzclient.h b/src/musicbrainz/musicbrainzclient.h index 017cdce2a..0bb20de8b 100644 --- a/src/musicbrainz/musicbrainzclient.h +++ b/src/musicbrainz/musicbrainzclient.h @@ -152,6 +152,7 @@ signals: static const char* kDiscUrl; static const char* kDateRegex; static const int kDefaultTimeout; + static const int kMaxRequestPerTrack; QNetworkAccessManager* network_; NetworkTimeouts* timeouts_;