Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Jannik 2020-11-19 02:47:54 -08:00
commit cc76a3d2cf
3 changed files with 56 additions and 0 deletions

View File

@ -71,6 +71,15 @@ The maximum number of messages to be deleted in a single batch is determined by
- `end` Last message id to delete - `end` Last message id to delete
##### Returns `true` ##### Returns `true`
#### Command `ping`
Send an MTProto ping message to the telegram servers.
Useful to detect the delay of the bot api server.
##### Parameters
No parameters
##### Returns `string`
Ping delay in seconds represented as string.
<!--TODO: <!--TODO:
#### Command `togglegroupinvites` #### Command `togglegroupinvites`
(todo) (todo)
@ -103,6 +112,16 @@ The `ChatMember` object now has two new fields:
- `joined_date`: integer, unix timestamp, when has the user joined - `joined_date`: integer, unix timestamp, when has the user joined
- `inviter`: `User`, the inviter - `inviter`: `User`, the inviter
#### Object `Chat`
The `Chat` object now has two new fields:
- `is_verified`: bool, optional, default false. Is the chat verified by Telegram, clients show a verified batch
- `is_scam`: bool, optional, default false. Is the chat reported for scam, clients show a warning to the user
#### Object `User`
The `User` object now has two new fields:
- `is_verified`: bool, optional, default false. Is the user verified by Telegram, clients show a verified batch
- `is_scam`: bool, optional, default false. Is the user reported for scam, clients show a warning to the user
In addition, the member list now shows the full bot list (previously only the bot that executed the query was shown) In addition, the member list now shows the full bot list (previously only the bot that executed the query was shown)
<a name="installation"></a> <a name="installation"></a>

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;
} }
@ -3231,6 +3233,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()) {
@ -7518,6 +7544,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;