Added ping command

This commit is contained in:
Jannik 2020-11-18 07:04:03 -08:00
parent a9897e44fd
commit e247007199
2 changed files with 37 additions and 0 deletions

View File

@ -256,6 +256,8 @@ bool Client::init_methods() {
methods_.emplace("getparticipants", &Client::process_get_participants_query); methods_.emplace("getparticipants", &Client::process_get_participants_query);
methods_.emplace("deletemessages", &Client::process_delete_messages_query); methods_.emplace("deletemessages", &Client::process_delete_messages_query);
methods_.emplace("togglegroupinvites", &Client::process_toggle_group_invites_query); methods_.emplace("togglegroupinvites", &Client::process_toggle_group_invites_query);
methods_.emplace("ping", &Client::process_ping_query);
return true; return true;
} }
@ -3213,6 +3215,30 @@ class Client::TdOnSendCustomRequestCallback : public TdQueryCallback {
PromisedQueryPtr query_; PromisedQueryPtr query_;
}; };
//start custom callbacks impl
class Client::TdOnPingCallback : public TdQueryCallback {
public:
TdOnPingCallback(PromisedQueryPtr query)
: query_(std::move(query)) {
}
void on_result(object_ptr<td_api::Object> result) override {
if (result->get_id() == td_api::error::ID) {
return fail_query_with_error(std::move(query_), move_object_as<td_api::error>(result), "Server not available");
}
CHECK(result->get_id() == 959899022); // id for return type `seconds`
auto seconds_ = move_object_as<td_api::seconds>(result);
answer_query(td::VirtuallyJsonableString(std::to_string(seconds_->seconds_)), std::move(query_));
}
private:
PromisedQueryPtr query_;
};
//end custom callbacks impl
void Client::close() { void Client::close() {
need_close_ = true; need_close_ = true;
if (td_client_.empty()) { if (td_client_.empty()) {
@ -7500,6 +7526,12 @@ td::Status Client::process_toggle_group_invites_query(PromisedQueryPtr &query) {
return Status::OK(); return Status::OK();
} }
td::Status Client::process_ping_query(PromisedQueryPtr &query) {
send_request(make_object<td_api::pingProxy>(),
std::make_unique<TdOnPingCallback>(std::move(query)));
return Status::OK();
}
//end custom methods impl //end custom methods impl
void Client::do_get_file(object_ptr<td_api::file> file, PromisedQueryPtr query) { void Client::do_get_file(object_ptr<td_api::file> file, PromisedQueryPtr query) {

View File

@ -178,6 +178,10 @@ class Client : public WebhookActor::Callback {
class TdOnCancelDownloadFileCallback; class TdOnCancelDownloadFileCallback;
class TdOnSendCustomRequestCallback; class TdOnSendCustomRequestCallback;
//start custom callbacks
class TdOnPingCallback;
//end custom callbacks
void on_get_reply_message(int64 chat_id, object_ptr<td_api::message> reply_to_message); void on_get_reply_message(int64 chat_id, object_ptr<td_api::message> reply_to_message);
void on_get_edited_message(object_ptr<td_api::message> edited_message); void on_get_edited_message(object_ptr<td_api::message> edited_message);
@ -492,6 +496,7 @@ class Client : public WebhookActor::Callback {
Status process_get_participants_query(PromisedQueryPtr &query); Status process_get_participants_query(PromisedQueryPtr &query);
Status process_delete_messages_query(PromisedQueryPtr &query); Status process_delete_messages_query(PromisedQueryPtr &query);
Status process_toggle_group_invites_query(PromisedQueryPtr &query); Status process_toggle_group_invites_query(PromisedQueryPtr &query);
Status process_ping_query(PromisedQueryPtr &query);
void webhook_verified(td::string cached_ip_address) override; void webhook_verified(td::string cached_ip_address) override;