mirror of
https://github.com/QuasarApp/qTbot.git
synced 2025-04-26 22:04:33 +00:00
temp changes,
This commit is contained in:
parent
16367526d3
commit
55ad2e9629
@ -50,9 +50,7 @@ void IBot::incomeNewUpdate(const QSharedPointer<iUpdate> &message) {
|
||||
}
|
||||
}
|
||||
|
||||
QFuture<QByteArray>
|
||||
IBot::sendRequest(const QSharedPointer<iRequest> &rquest) {
|
||||
|
||||
QNetworkReply* IBot::sendRquestImpl(const QSharedPointer<iRequest> &rquest) {
|
||||
if (!rquest)
|
||||
return {};
|
||||
|
||||
@ -73,10 +71,10 @@ IBot::sendRequest(const QSharedPointer<iRequest> &rquest) {
|
||||
}
|
||||
|
||||
case iRequest::Post:
|
||||
// req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
||||
// reply = m_nam.post(req, params.toByteArray());
|
||||
// req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
||||
// reply = m_nam.post(req, params.toByteArray());
|
||||
|
||||
// break;
|
||||
// break;
|
||||
case iRequest::Upload:
|
||||
QNetworkRequest netRequest(url);
|
||||
|
||||
@ -91,6 +89,14 @@ IBot::sendRequest(const QSharedPointer<iRequest> &rquest) {
|
||||
break;
|
||||
}
|
||||
|
||||
return networkReplay;
|
||||
}
|
||||
|
||||
QFuture<QByteArray>
|
||||
IBot::sendRequest(const QSharedPointer<iRequest> &rquest) {
|
||||
|
||||
|
||||
QNetworkReply* networkReplay = sendRquestImpl(rquest);
|
||||
if (!networkReplay) {
|
||||
return {};
|
||||
}
|
||||
@ -124,6 +130,49 @@ IBot::sendRequest(const QSharedPointer<iRequest> &rquest) {
|
||||
return promise->future();
|
||||
}
|
||||
|
||||
QFuture<QByteArray> IBot::sendRequest(const QSharedPointer<iRequest> &rquest, const QString &pathToResult) {
|
||||
auto&& file = QSharedPointer<QFile>::create();
|
||||
|
||||
file->open(QIODevice::WriteOnly | QIODevice::Truncate);
|
||||
|
||||
|
||||
QNetworkReply* networkReplay = sendRquestImpl(rquest);
|
||||
if (!networkReplay) {
|
||||
return {};
|
||||
}
|
||||
|
||||
|
||||
auto&& promise = QSharedPointer<QPromise<QByteArray>>::create();
|
||||
|
||||
networkReplay->connect(networkReplay, &QNetworkReply::finished, [promise, pathToResult](){
|
||||
|
||||
promise->addResult(pathToResult.toUtf8()); // wil not work with UTF 8 path names
|
||||
promise->finish();
|
||||
});
|
||||
|
||||
networkReplay->connect(networkReplay, &QNetworkReply::readyRead, [networkReplay, promise, pathToResult](){
|
||||
promise->addResult(networkReplay->readAll());
|
||||
});
|
||||
|
||||
networkReplay->connect(networkReplay, &QNetworkReply::errorOccurred, [networkReplay, promise](QNetworkReply::NetworkError ){
|
||||
promise->setException(HttpException(networkReplay->error(), networkReplay->errorString().toLatin1()));
|
||||
promise->finish();
|
||||
});
|
||||
|
||||
auto && setProggress = [promise](qint64 bytesCurrent, qint64 bytesTotal){
|
||||
|
||||
if (promise->future().progressMaximum() != bytesTotal)
|
||||
promise->setProgressRange(0, bytesTotal);
|
||||
|
||||
promise->setProgressValue(bytesCurrent);
|
||||
};
|
||||
|
||||
networkReplay->connect(networkReplay, &QNetworkReply::downloadProgress, setProggress);
|
||||
networkReplay->connect(networkReplay, &QNetworkReply::uploadProgress, setProggress);
|
||||
|
||||
return promise->future();
|
||||
}
|
||||
|
||||
void IBot::markUpdateAsProcessed(const QSharedPointer<iUpdate> &message) {
|
||||
_notProcessedUpdates.remove(message->updateId());
|
||||
}
|
||||
|
@ -164,7 +164,6 @@ protected:
|
||||
return ptr;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief makeUrl This method prepare a prefix url for http requests.
|
||||
* @param request - This is request object for that will be prepared url.
|
||||
@ -180,6 +179,16 @@ protected:
|
||||
QFuture<QByteArray>
|
||||
sendRequest(const QSharedPointer<iRequest>& rquest);
|
||||
|
||||
/**
|
||||
* @brief sendRequest This method sent custom requests to the server.
|
||||
* @param rquest This is message that will be sent to server.
|
||||
* @return future pointer to the request replay.
|
||||
* @note This is same as a default implementaion execpt save data location,
|
||||
* this method will create new file that located @a pathToResult and save all received data to this location.
|
||||
*/
|
||||
QFuture<QByteArray>
|
||||
sendRequest(const QSharedPointer<iRequest>& rquest, const QString& pathToResult);
|
||||
|
||||
/**
|
||||
* @brief setToken This is setter of the IBot::token value.
|
||||
* @param newToken This is new value of the token.
|
||||
@ -234,6 +243,7 @@ signals:
|
||||
void sigStopRequire();
|
||||
|
||||
private:
|
||||
QNetworkReply *sendRquestImpl(const QSharedPointer<iRequest> &rquest);
|
||||
|
||||
QByteArray _token;
|
||||
QString _name;
|
||||
|
Loading…
x
Reference in New Issue
Block a user