Add MessagesManager::get_message_sender.

This commit is contained in:
levlam 2021-11-19 17:12:22 +03:00
parent 6941a4500a
commit 04be7955a7
2 changed files with 22 additions and 9 deletions

View File

@ -2833,16 +2833,13 @@ class BlockFromRepliesQuery final : public Td::ResultHandler {
class DeleteParticipantHistoryQuery final : public Td::ResultHandler {
Promise<AffectedHistory> promise_;
ChannelId channel_id_;
public:
explicit DeleteParticipantHistoryQuery(Promise<AffectedHistory> &&promise) : promise_(std::move(promise)) {
}
void send(ChannelId channel_id, DialogId sender_dialog_id) {
channel_id_ = channel_id;
auto input_channel = td_->contacts_manager_->get_input_channel(channel_id_);
auto input_channel = td_->contacts_manager_->get_input_channel(channel_id);
if (input_channel == nullptr) {
return promise_.set_error(Status::Error(400, "Chat is not accessible"));
}
@ -2865,7 +2862,7 @@ class DeleteParticipantHistoryQuery final : public Td::ResultHandler {
}
void on_error(Status status) final {
td_->contacts_manager_->on_get_channel_error(channel_id_, status, "DeleteParticipantHistoryQuery");
// td_->contacts_manager_->on_get_channel_error(channel_id_, status, "DeleteParticipantHistoryQuery");
promise_.set_error(std::move(status));
}
};
@ -16923,6 +16920,14 @@ void MessagesManager::on_get_blocked_dialogs(int32 offset, int32 limit, int32 to
promise.set_value(td_api::make_object<td_api::messageSenders>(total_count, std::move(senders)));
}
DialogId MessagesManager::get_message_sender(FullMessageId full_message_id) {
const auto *m = get_message_force(full_message_id, "get_message_sender");
if (m == nullptr) {
return DialogId();
}
return get_message_sender(m);
}
bool MessagesManager::have_message_force(FullMessageId full_message_id, const char *source) {
return get_message_force(full_message_id, source) != nullptr;
}
@ -25477,6 +25482,7 @@ bool MessagesManager::is_deleted_secret_chat(const Dialog *d) const {
}
int32 MessagesManager::get_message_schedule_date(const Message *m) {
CHECK(m != nullptr);
if (!m->message_id.is_scheduled()) {
return 0;
}
@ -25487,6 +25493,7 @@ int32 MessagesManager::get_message_schedule_date(const Message *m) {
}
DialogId MessagesManager::get_message_original_sender(const Message *m) {
CHECK(m != nullptr);
if (m->forward_info != nullptr) {
auto forward_info = m->forward_info.get();
if (forward_info->is_imported || is_forward_info_sender_hidden(forward_info)) {
@ -25497,10 +25504,12 @@ DialogId MessagesManager::get_message_original_sender(const Message *m) {
}
return DialogId(forward_info->sender_user_id);
}
if (m->sender_dialog_id.is_valid()) {
return m->sender_dialog_id;
}
return DialogId(m->sender_user_id);
return get_message_sender(m);
}
DialogId MessagesManager::get_message_sender(const Message *m) {
CHECK(m != nullptr);
return m->sender_dialog_id.is_valid() ? m->sender_dialog_id : DialogId(m->sender_user_id);
}
void MessagesManager::edit_message_text(FullMessageId full_message_id,

View File

@ -558,6 +558,8 @@ class MessagesManager final : public Actor {
bool can_get_message_statistics(FullMessageId full_message_id);
DialogId get_message_sender(FullMessageId full_message_id);
bool have_message_force(FullMessageId full_message_id, const char *source);
void get_message(FullMessageId full_message_id, Promise<Unit> &&promise);
@ -3160,6 +3162,8 @@ class MessagesManager final : public Actor {
static DialogId get_message_original_sender(const Message *m);
static DialogId get_message_sender(const Message *m);
RecentDialogList recently_found_dialogs_;
RecentDialogList recently_opened_dialogs_;