lyrics: Add 30s timeout for lyrics provider requests

This commit is contained in:
Jim Broadus 2020-05-23 23:45:08 -07:00 committed by John Maguire
parent 6675b1b63e
commit 0fc0dcdb79
2 changed files with 6 additions and 0 deletions

View File

@ -30,6 +30,7 @@ const int UltimateLyricsProvider::kRedirectLimit = 5;
UltimateLyricsProvider::UltimateLyricsProvider()
: network_(new NetworkAccessManager(this)),
timeouts_(new NetworkTimeouts(30000, this)), // 30s
relevance_(0),
redirect_count_(0),
url_hop_(false) {}
@ -57,6 +58,7 @@ void UltimateLyricsProvider::FetchInfo(int id, const Song& metadata) {
QNetworkReply* reply = network_->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished,
[=] { this->RequestFinished(reply, url_text, id); });
timeouts_->AddReply(reply);
}
void UltimateLyricsProvider::RequestFinished(QNetworkReply* reply,
@ -93,6 +95,7 @@ void UltimateLyricsProvider::RequestFinished(QNetworkReply* reply,
QNetworkReply* reply = network_->get(QNetworkRequest(target));
connect(reply, &QNetworkReply::finished,
[=] { this->RequestFinished(reply, orig_url, id); });
timeouts_->AddReply(reply);
return;
}
@ -128,6 +131,7 @@ void UltimateLyricsProvider::RequestFinished(QNetworkReply* reply,
QNetworkReply* reply = network_->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished,
[=] { this->RequestFinished(reply, orig_url, id); });
timeouts_->AddReply(reply);
return;
}

View File

@ -25,6 +25,7 @@
#include "songinfoprovider.h"
class NetworkAccessManager;
class NetworkTimeouts;
class QNetworkReply;
@ -86,6 +87,7 @@ class UltimateLyricsProvider : public SongInfoProvider {
private:
NetworkAccessManager* network_;
NetworkTimeouts* timeouts_;
QString name_;
QString title_;