mirror of
https://github.com/QuasarApp/qTbot.git
synced 2025-04-27 14:24:33 +00:00
added queries
This commit is contained in:
parent
ea37b442e6
commit
5390532c5d
@ -92,9 +92,55 @@ QNetworkReply* IBot::sendRquestImpl(const QSharedPointer<iRequest> &rquest) {
|
||||
return networkReplay;
|
||||
}
|
||||
|
||||
int IBot::reqestLimitPerSecond() const {
|
||||
return _reqestLimitPerSecond;
|
||||
}
|
||||
|
||||
void IBot::setReqestLimitPerSecond(int newReqestLimitPerSecond) {
|
||||
_reqestLimitPerSecond = newReqestLimitPerSecond;
|
||||
}
|
||||
|
||||
QFuture<QByteArray>
|
||||
IBot::sendRequest(const QSharedPointer<iRequest> &rquest) {
|
||||
auto&& responce = QSharedPointer<QPromise<QByteArray>>::create();
|
||||
responce->start();
|
||||
_requestQueue.push_back(RequestData{rquest, "", responce});
|
||||
|
||||
return responce->future();
|
||||
}
|
||||
|
||||
QFuture<QByteArray>
|
||||
IBot::sendRequest(const QSharedPointer<iRequest> &rquest,
|
||||
const QString &pathToResult) {
|
||||
auto&& responce = QSharedPointer<QPromise<QByteArray>>::create();
|
||||
responce->start();
|
||||
_requestQueue.push_back(RequestData{rquest, pathToResult, responce});
|
||||
|
||||
return responce->future();
|
||||
|
||||
}
|
||||
|
||||
void IBot::markUpdateAsProcessed(const QSharedPointer<iUpdate> &message) {
|
||||
_notProcessedUpdates.remove(message->updateId());
|
||||
}
|
||||
|
||||
void IBot::markUpdateAsUnprocessed(const QSharedPointer<iUpdate> &message) {
|
||||
return markUpdateAsUnprocessed(message->updateId());
|
||||
}
|
||||
|
||||
void IBot::markUpdateAsUnprocessed(unsigned long long messageID) {
|
||||
_processed.remove(messageID);
|
||||
}
|
||||
|
||||
QString IBot::defaultFileStorageLocation() const {
|
||||
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation);
|
||||
}
|
||||
|
||||
void IBot::handleIncomeNewUpdate(const QSharedPointer<iUpdate> & message) {
|
||||
emit sigReceiveUpdate(message);
|
||||
}
|
||||
|
||||
QFuture<QByteArray> IBot::sendRequestPrivate(const QSharedPointer<iRequest> &rquest) {
|
||||
|
||||
QNetworkReply* networkReplay = sendRquestImpl(rquest);
|
||||
if (!networkReplay) {
|
||||
@ -128,7 +174,8 @@ IBot::sendRequest(const QSharedPointer<iRequest> &rquest) {
|
||||
return promise->future();
|
||||
}
|
||||
|
||||
QFuture<QByteArray> IBot::sendRequest(const QSharedPointer<iRequest> &rquest, const QString &pathToResult) {
|
||||
QFuture<QByteArray> IBot::sendRequestPrivate(const QSharedPointer<iRequest> &rquest,
|
||||
const QString &pathToResult) {
|
||||
auto&& file = QSharedPointer<QFile>::create(pathToResult);
|
||||
|
||||
if (!file->open(QIODeviceBase::WriteOnly | QIODevice::Truncate)) {
|
||||
@ -176,26 +223,6 @@ QFuture<QByteArray> IBot::sendRequest(const QSharedPointer<iRequest> &rquest, co
|
||||
return promise->future();
|
||||
}
|
||||
|
||||
void IBot::markUpdateAsProcessed(const QSharedPointer<iUpdate> &message) {
|
||||
_notProcessedUpdates.remove(message->updateId());
|
||||
}
|
||||
|
||||
void IBot::markUpdateAsUnprocessed(const QSharedPointer<iUpdate> &message) {
|
||||
return markUpdateAsUnprocessed(message->updateId());
|
||||
}
|
||||
|
||||
void IBot::markUpdateAsUnprocessed(unsigned long long messageID) {
|
||||
_processed.remove(messageID);
|
||||
}
|
||||
|
||||
QString IBot::defaultFileStorageLocation() const {
|
||||
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation);
|
||||
}
|
||||
|
||||
void IBot::handleIncomeNewUpdate(const QSharedPointer<iUpdate> & message) {
|
||||
emit sigReceiveUpdate(message);
|
||||
}
|
||||
|
||||
QSet<unsigned long long> IBot::processed() const {
|
||||
return _processed;
|
||||
}
|
||||
|
@ -50,6 +50,27 @@ public:
|
||||
Local
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief The RequestData class is simple wrapper of request object with path of responce.
|
||||
* If Path of responce is empty then responce will saved in RAM.
|
||||
*/
|
||||
struct RequestData {
|
||||
/**
|
||||
* @brief request saved request object.
|
||||
*/
|
||||
QSharedPointer<iRequest> request;
|
||||
|
||||
/**
|
||||
* @brief responceFilePath path to responce.
|
||||
*/
|
||||
QString responceFilePath = "";
|
||||
|
||||
/**
|
||||
* @brief responce This is promise to responce of this requests that will sets back.
|
||||
*/
|
||||
QSharedPointer<QPromise<QByteArray>> responce;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief login This method get bae information of the bot from remote server.
|
||||
* @param token This is token value for login
|
||||
@ -145,6 +166,18 @@ public:
|
||||
*/
|
||||
virtual void setProcessed(const QSet<unsigned long long> &newProcessed);
|
||||
|
||||
/**
|
||||
* @brief reqestLimitPerSecond this is request performence limitation. by default is 20 requests per second
|
||||
* @return
|
||||
*/
|
||||
int reqestLimitPerSecond() const;
|
||||
|
||||
/**
|
||||
* @brief setReqestLimitPerSecond this method sets new limitation of bot performance.
|
||||
* @param newReqestLimitPerSecond this is a new value of performance.
|
||||
*/
|
||||
void setReqestLimitPerSecond(int newReqestLimitPerSecond);
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
@ -254,6 +287,13 @@ signals:
|
||||
void sigStopRequire();
|
||||
|
||||
private:
|
||||
QFuture<QByteArray>
|
||||
sendRequestPrivate(const QSharedPointer<iRequest>& rquest);
|
||||
|
||||
QFuture<QByteArray>
|
||||
sendRequestPrivate(const QSharedPointer<iRequest>& rquest,
|
||||
const QString& pathToResult);
|
||||
|
||||
QNetworkReply *sendRquestImpl(const QSharedPointer<iRequest> &rquest);
|
||||
|
||||
QByteArray _token;
|
||||
@ -261,6 +301,8 @@ private:
|
||||
QMap<unsigned long long, QSharedPointer<iUpdate>> _notProcessedUpdates;
|
||||
QSet<unsigned long long> _processed;
|
||||
QNetworkAccessManager *_manager = nullptr;
|
||||
int _reqestLimitPerSecond = 20;
|
||||
QList<RequestData> _requestQueue;
|
||||
|
||||
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user