Improve get_message_user_ids and get_message_channel_ids.
This commit is contained in:
parent
b4d6b68195
commit
e0bee7757b
@ -3291,6 +3291,15 @@ std::pair<InputGroupCallId, bool> get_message_content_group_call_info(const Mess
|
||||
return {m->input_group_call_id, m->duration >= 0};
|
||||
}
|
||||
|
||||
UserId get_message_content_contact_user_id(const MessageContent *content) {
|
||||
switch (content->get_type()) {
|
||||
case MessageContentType::Contact:
|
||||
return static_cast<const MessageContact *>(content)->contact.get_user_id();
|
||||
default:
|
||||
return UserId();
|
||||
}
|
||||
}
|
||||
|
||||
vector<UserId> get_message_content_added_user_ids(const MessageContent *content) {
|
||||
CHECK(content->get_type() == MessageContentType::ChatAddUsers);
|
||||
return static_cast<const MessageChatAddUsers *>(content)->user_ids;
|
||||
|
@ -144,6 +144,8 @@ FullMessageId get_message_content_replied_message_id(DialogId dialog_id, const M
|
||||
|
||||
std::pair<InputGroupCallId, bool> get_message_content_group_call_info(const MessageContent *content);
|
||||
|
||||
UserId get_message_content_contact_user_id(const MessageContent *content);
|
||||
|
||||
vector<UserId> get_message_content_added_user_ids(const MessageContent *content);
|
||||
|
||||
UserId get_message_content_deleted_user_id(const MessageContent *content);
|
||||
|
@ -13231,6 +13231,23 @@ vector<UserId> MessagesManager::get_message_user_ids(const Message *m) {
|
||||
if (m->sender_user_id.is_valid()) {
|
||||
user_ids.push_back(m->sender_user_id);
|
||||
}
|
||||
if (m->via_bot_user_id.is_valid()) {
|
||||
user_ids.push_back(m->via_bot_user_id);
|
||||
}
|
||||
if (m->forward_info != nullptr && m->forward_info->sender_user_id.is_valid()) {
|
||||
user_ids.push_back(m->forward_info->sender_user_id);
|
||||
}
|
||||
if (m->content->get_type() == MessageContentType::ChatAddUsers) {
|
||||
append(user_ids, get_message_content_added_user_ids(m->content.get()));
|
||||
}
|
||||
auto deleted_user_id = get_message_content_deleted_user_id(m->content.get());
|
||||
if (deleted_user_id.is_valid()) {
|
||||
user_ids.push_back(deleted_user_id);
|
||||
}
|
||||
auto contact_user_id = get_message_content_contact_user_id(m->content.get());
|
||||
if (contact_user_id.is_valid()) {
|
||||
user_ids.push_back(contact_user_id);
|
||||
}
|
||||
return user_ids;
|
||||
}
|
||||
|
||||
@ -13239,6 +13256,14 @@ vector<ChannelId> MessagesManager::get_message_channel_ids(const Message *m) {
|
||||
if (m->sender_dialog_id.is_valid() && m->sender_dialog_id.get_type() == DialogType::Channel) {
|
||||
channel_ids.push_back(m->sender_dialog_id.get_channel_id());
|
||||
}
|
||||
if (m->forward_info != nullptr && m->forward_info->sender_dialog_id.is_valid() &&
|
||||
m->forward_info->sender_dialog_id.get_type() == DialogType::Channel) {
|
||||
channel_ids.push_back(m->forward_info->sender_dialog_id.get_channel_id());
|
||||
}
|
||||
if (m->forward_info != nullptr && m->forward_info->from_dialog_id.is_valid() &&
|
||||
m->forward_info->from_dialog_id.get_type() == DialogType::Channel) {
|
||||
channel_ids.push_back(m->forward_info->from_dialog_id.get_channel_id());
|
||||
}
|
||||
return channel_ids;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user