From 8da2eba168383cb7d552fe8920e410ff0c59cc1e Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 9 Oct 2023 19:20:53 +0300 Subject: [PATCH] Add MessageOrigin::add_user_ids/add_channel_ids. --- td/telegram/MessageOrigin.cpp | 12 ++++++++++++ td/telegram/MessageOrigin.h | 5 +++++ td/telegram/MessagesManager.cpp | 9 ++++----- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/td/telegram/MessageOrigin.cpp b/td/telegram/MessageOrigin.cpp index 146db6955..986215944 100644 --- a/td/telegram/MessageOrigin.cpp +++ b/td/telegram/MessageOrigin.cpp @@ -108,6 +108,18 @@ void MessageOrigin::add_dependencies(Dependencies &dependencies) const { dependencies.add_dialog_and_dependencies(sender_dialog_id_); } +void MessageOrigin::add_user_ids(vector &user_ids) const { + if (sender_user_id_.is_valid()) { + user_ids.push_back(sender_user_id_); + } +} + +void MessageOrigin::add_channel_ids(vector &channel_ids) const { + if (sender_dialog_id_.get_type() == DialogType::Channel) { + channel_ids.push_back(sender_dialog_id_.get_channel_id()); + } +} + bool operator==(const MessageOrigin &lhs, const MessageOrigin &rhs) { return lhs.sender_user_id_ == rhs.sender_user_id_ && lhs.sender_dialog_id_ == rhs.sender_dialog_id_ && lhs.message_id_ == rhs.message_id_ && lhs.author_signature_ == rhs.author_signature_ && diff --git a/td/telegram/MessageOrigin.h b/td/telegram/MessageOrigin.h index 8c909552e..b4055e17e 100644 --- a/td/telegram/MessageOrigin.h +++ b/td/telegram/MessageOrigin.h @@ -6,6 +6,7 @@ // #pragma once +#include "td/telegram/ChannelId.h" #include "td/telegram/DialogId.h" #include "td/telegram/MessageId.h" #include "td/telegram/td_api.h" @@ -53,6 +54,10 @@ struct MessageOrigin { void add_dependencies(Dependencies &dependencies) const; + void add_user_ids(vector &user_ids) const; + + void add_channel_ids(vector &channel_ids) const; + friend bool operator==(const MessageOrigin &lhs, const MessageOrigin &rhs); friend StringBuilder &operator<<(StringBuilder &string_builder, const MessageOrigin &origin); diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index e26206718..306bae482 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -13100,8 +13100,8 @@ vector MessagesManager::get_message_user_ids(const Message *m) const { 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->origin.sender_user_id_.is_valid()) { - user_ids.push_back(m->forward_info->origin.sender_user_id_); + if (m->forward_info != nullptr) { + m->forward_info->origin.add_user_ids(user_ids); } append(user_ids, get_message_content_min_user_ids(td_, m->content.get())); return user_ids; @@ -13112,9 +13112,8 @@ vector 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->origin.sender_dialog_id_.is_valid() && - m->forward_info->origin.sender_dialog_id_.get_type() == DialogType::Channel) { - channel_ids.push_back(m->forward_info->origin.sender_dialog_id_.get_channel_id()); + if (m->forward_info != nullptr) { + m->forward_info->origin.add_channel_ids(channel_ids); } if (m->forward_info != nullptr && m->forward_info->from_dialog_id.is_valid() && m->forward_info->from_dialog_id.get_type() == DialogType::Channel) {