Add removeChatActionBar.
GitOrigin-RevId: 865c60b541cdfdc1465ab4814e1ca8c2c9ff0c49
This commit is contained in:
parent
62db4169a2
commit
825cb0dd0b
@ -3907,6 +3907,9 @@ getChatReportSpamState chat_id:int53 = ChatReportSpamState;
|
|||||||
//@description Reports to the server whether a chat is a spam chat or not. Can be used only if ChatReportSpamState.can_report_spam is true. After this request, ChatReportSpamState.can_report_spam becomes false forever @chat_id Chat identifier @is_spam_chat If true, the chat will be reported as spam; otherwise it will be marked as not spam
|
//@description Reports to the server whether a chat is a spam chat or not. Can be used only if ChatReportSpamState.can_report_spam is true. After this request, ChatReportSpamState.can_report_spam becomes false forever @chat_id Chat identifier @is_spam_chat If true, the chat will be reported as spam; otherwise it will be marked as not spam
|
||||||
changeChatReportSpamState chat_id:int53 is_spam_chat:Bool = Ok;
|
changeChatReportSpamState chat_id:int53 is_spam_chat:Bool = Ok;
|
||||||
|
|
||||||
|
//@description Removes a chat action bar without any other action @chat_id Chat identifier
|
||||||
|
removeChatActionBar chat_id:int53 = Ok;
|
||||||
|
|
||||||
//@description Reports a chat to the Telegram moderators. Supported only for supergroups, channels, or private chats with bots, since other chats can't be checked by moderators @chat_id Chat identifier @reason The reason for reporting the chat @message_ids Identifiers of reported messages, if any
|
//@description Reports a chat to the Telegram moderators. Supported only for supergroups, channels, or private chats with bots, since other chats can't be checked by moderators @chat_id Chat identifier @reason The reason for reporting the chat @message_ids Identifiers of reported messages, if any
|
||||||
reportChat chat_id:int53 reason:ChatReportReason message_ids:vector<int53> = Ok;
|
reportChat chat_id:int53 reason:ChatReportReason message_ids:vector<int53> = Ok;
|
||||||
|
|
||||||
|
Binary file not shown.
@ -3223,7 +3223,9 @@ class UpdatePeerSettingsQuery : public Td::ResultHandler {
|
|||||||
dialog_id_ = dialog_id;
|
dialog_id_ = dialog_id;
|
||||||
|
|
||||||
auto input_peer = td->messages_manager_->get_input_peer(dialog_id, AccessRights::Read);
|
auto input_peer = td->messages_manager_->get_input_peer(dialog_id, AccessRights::Read);
|
||||||
CHECK(input_peer != nullptr);
|
if (input_peer == nullptr) {
|
||||||
|
return promise_.set_value(Unit());
|
||||||
|
}
|
||||||
|
|
||||||
if (is_spam_dialog) {
|
if (is_spam_dialog) {
|
||||||
send_query(
|
send_query(
|
||||||
@ -6508,6 +6510,35 @@ void MessagesManager::change_dialog_report_spam_state(DialogId dialog_id, bool i
|
|||||||
change_dialog_report_spam_state_on_server(dialog_id, is_spam_dialog, 0, std::move(promise));
|
change_dialog_report_spam_state_on_server(dialog_id, is_spam_dialog, 0, std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MessagesManager::remove_dialog_action_bar(DialogId dialog_id, Promise<Unit> &&promise) {
|
||||||
|
Dialog *d = get_dialog_force(dialog_id);
|
||||||
|
if (d == nullptr) {
|
||||||
|
return promise.set_error(Status::Error(3, "Chat not found"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!have_input_peer(dialog_id, AccessRights::Read)) {
|
||||||
|
return promise.set_error(Status::Error(3, "Can't access the chat"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!d->know_can_report_spam) {
|
||||||
|
return promise.set_error(Status::Error(3, "Can't update chat action bar"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!d->can_report_spam && !d->can_add_contact && !d->can_block_user && !d->can_share_phone_number &&
|
||||||
|
!d->can_report_location) {
|
||||||
|
return promise.set_value(Unit());
|
||||||
|
}
|
||||||
|
|
||||||
|
d->can_report_spam = false;
|
||||||
|
d->can_add_contact = false;
|
||||||
|
d->can_block_user = false;
|
||||||
|
d->can_share_phone_number = false;
|
||||||
|
d->can_report_location = false;
|
||||||
|
on_dialog_updated(dialog_id, "remove_dialog_action_bar");
|
||||||
|
|
||||||
|
change_dialog_report_spam_state_on_server(dialog_id, false, 0, std::move(promise));
|
||||||
|
}
|
||||||
|
|
||||||
class MessagesManager::ChangeDialogReportSpamStateOnServerLogEvent {
|
class MessagesManager::ChangeDialogReportSpamStateOnServerLogEvent {
|
||||||
public:
|
public:
|
||||||
DialogId dialog_id_;
|
DialogId dialog_id_;
|
||||||
@ -6551,8 +6582,8 @@ void MessagesManager::change_dialog_report_spam_state_on_server(DialogId dialog_
|
|||||||
if (is_spam_dialog) {
|
if (is_spam_dialog) {
|
||||||
return td_->create_handler<ReportEncryptedSpamQuery>(std::move(promise))->send(dialog_id);
|
return td_->create_handler<ReportEncryptedSpamQuery>(std::move(promise))->send(dialog_id);
|
||||||
} else {
|
} else {
|
||||||
promise.set_value(Unit());
|
auto user_id = td_->contacts_manager_->get_secret_chat_user_id(dialog_id.get_secret_chat_id());
|
||||||
return;
|
return td_->create_handler<UpdatePeerSettingsQuery>(std::move(promise))->send(DialogId(user_id), false);
|
||||||
}
|
}
|
||||||
case DialogType::None:
|
case DialogType::None:
|
||||||
default:
|
default:
|
||||||
|
@ -667,6 +667,8 @@ class MessagesManager : public Actor {
|
|||||||
|
|
||||||
void change_dialog_report_spam_state(DialogId dialog_id, bool is_spam_dialog, Promise<Unit> &&promise);
|
void change_dialog_report_spam_state(DialogId dialog_id, bool is_spam_dialog, Promise<Unit> &&promise);
|
||||||
|
|
||||||
|
void remove_dialog_action_bar(DialogId dialog_id, Promise<Unit> &&promise);
|
||||||
|
|
||||||
void report_dialog(DialogId dialog_id, const tl_object_ptr<td_api::ChatReportReason> &reason,
|
void report_dialog(DialogId dialog_id, const tl_object_ptr<td_api::ChatReportReason> &reason,
|
||||||
const vector<MessageId> &message_ids, Promise<Unit> &&promise);
|
const vector<MessageId> &message_ids, Promise<Unit> &&promise);
|
||||||
|
|
||||||
|
@ -6688,6 +6688,12 @@ void Td::on_request(uint64 id, const td_api::changeChatReportSpamState &request)
|
|||||||
std::move(promise));
|
std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Td::on_request(uint64 id, const td_api::removeChatActionBar &request) {
|
||||||
|
CHECK_IS_USER();
|
||||||
|
CREATE_OK_REQUEST_PROMISE();
|
||||||
|
messages_manager_->remove_dialog_action_bar(DialogId(request.chat_id_), std::move(promise));
|
||||||
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::reportChat &request) {
|
void Td::on_request(uint64 id, td_api::reportChat &request) {
|
||||||
CHECK_IS_USER();
|
CHECK_IS_USER();
|
||||||
CREATE_OK_REQUEST_PROMISE();
|
CREATE_OK_REQUEST_PROMISE();
|
||||||
|
@ -848,6 +848,8 @@ class Td final : public NetQueryCallback {
|
|||||||
|
|
||||||
void on_request(uint64 id, const td_api::changeChatReportSpamState &request);
|
void on_request(uint64 id, const td_api::changeChatReportSpamState &request);
|
||||||
|
|
||||||
|
void on_request(uint64 id, const td_api::removeChatActionBar &request);
|
||||||
|
|
||||||
void on_request(uint64 id, td_api::reportChat &request);
|
void on_request(uint64 id, td_api::reportChat &request);
|
||||||
|
|
||||||
void on_request(uint64 id, td_api::getChatStatisticsUrl &request);
|
void on_request(uint64 id, td_api::getChatStatisticsUrl &request);
|
||||||
|
@ -3626,6 +3626,9 @@ class CliClient final : public Actor {
|
|||||||
std::tie(chat_id, is_spam_chat) = split(args);
|
std::tie(chat_id, is_spam_chat) = split(args);
|
||||||
|
|
||||||
send_request(td_api::make_object<td_api::changeChatReportSpamState>(as_chat_id(chat_id), as_bool(is_spam_chat)));
|
send_request(td_api::make_object<td_api::changeChatReportSpamState>(as_chat_id(chat_id), as_bool(is_spam_chat)));
|
||||||
|
} else if (op == "rcab") {
|
||||||
|
string chat_id = args;
|
||||||
|
send_request(td_api::make_object<td_api::removeChatActionBar>(as_chat_id(chat_id)));
|
||||||
} else if (op == "rc") {
|
} else if (op == "rc") {
|
||||||
string chat_id;
|
string chat_id;
|
||||||
string reason_str;
|
string reason_str;
|
||||||
|
Loading…
Reference in New Issue
Block a user