Create all nested objects before td_api::message.
This commit is contained in:
parent
495082b628
commit
b25df7a808
@ -23056,40 +23056,43 @@ tl_object_ptr<td_api::message> MessagesManager::get_message_object(DialogId dial
|
||||
} else {
|
||||
ttl = 0;
|
||||
}
|
||||
auto sender = get_message_sender_object_const(m->sender_user_id, m->sender_dialog_id, source);
|
||||
auto scheduling_state = is_scheduled ? get_message_scheduling_state_object(m->date) : nullptr;
|
||||
bool can_be_edited = for_event_log ? false : can_edit_message(dialog_id, m, false, td_->auth_manager_->is_bot());
|
||||
bool can_be_forwarded = for_event_log ? false : can_forward_message(dialog_id, m);
|
||||
bool can_get_statistics = for_event_log ? false : can_get_message_statistics(dialog_id, m);
|
||||
bool can_get_message_thread = for_event_log ? false : get_top_thread_full_message_id(dialog_id, m).is_ok();
|
||||
bool can_get_viewers = for_event_log ? false : can_get_message_viewers(dialog_id, m).is_ok();
|
||||
bool can_get_media_timestamp_links = for_event_log ? false : can_get_media_timestamp_link(dialog_id, m).is_ok();
|
||||
auto forward_info = get_message_forward_info_object(m->forward_info);
|
||||
auto interaction_info = get_message_interaction_info_object(dialog_id, m);
|
||||
auto can_be_edited = for_event_log ? false : can_edit_message(dialog_id, m, false, td_->auth_manager_->is_bot());
|
||||
auto can_be_forwarded = for_event_log ? false : can_forward_message(dialog_id, m);
|
||||
auto can_get_statistics = for_event_log ? false : can_get_message_statistics(dialog_id, m);
|
||||
auto can_get_message_thread = for_event_log ? false : get_top_thread_full_message_id(dialog_id, m).is_ok();
|
||||
auto can_get_viewers = for_event_log ? false : can_get_message_viewers(dialog_id, m).is_ok();
|
||||
auto can_get_media_timestamp_links = for_event_log ? false : can_get_media_timestamp_link(dialog_id, m).is_ok();
|
||||
auto via_bot_user_id = td_->contacts_manager_->get_user_id_object(m->via_bot_user_id, "via_bot_user_id");
|
||||
auto media_album_id = for_event_log ? static_cast<int64>(0) : m->media_album_id;
|
||||
auto reply_to_message_id = for_event_log ? static_cast<int64>(0) : m->reply_to_message_id.get();
|
||||
auto reply_in_dialog_id =
|
||||
reply_to_message_id == 0 ? DialogId() : (m->reply_in_dialog_id.is_valid() ? m->reply_in_dialog_id : dialog_id);
|
||||
auto top_thread_message_id = for_event_log || is_scheduled ? static_cast<int64>(0) : m->top_thread_message_id.get();
|
||||
bool contains_unread_mention = for_event_log ? false : m->contains_unread_mention;
|
||||
auto live_location_date = m->is_failed_to_send ? 0 : m->date;
|
||||
auto contains_unread_mention = for_event_log ? false : m->contains_unread_mention;
|
||||
auto date = is_scheduled ? 0 : m->date;
|
||||
auto edit_date = m->hide_edit_date ? 0 : m->edit_date;
|
||||
auto is_pinned = for_event_log || is_scheduled ? false : m->is_pinned;
|
||||
bool skip_bot_commands = for_event_log ? true : need_skip_bot_commands(dialog_id, m);
|
||||
int32 max_media_timestamp =
|
||||
auto has_timestamped_media = for_event_log || reply_to_message_id == 0 || m->max_own_media_timestamp >= 0;
|
||||
auto reply_markup = get_reply_markup_object(m->reply_markup);
|
||||
|
||||
auto live_location_date = m->is_failed_to_send ? 0 : m->date;
|
||||
auto skip_bot_commands = for_event_log ? true : need_skip_bot_commands(dialog_id, m);
|
||||
auto max_media_timestamp =
|
||||
for_event_log ? get_message_own_max_media_timestamp(m) : get_message_max_media_timestamp(m);
|
||||
bool has_timestamped_media = for_event_log || reply_to_message_id == 0 || m->max_own_media_timestamp >= 0;
|
||||
auto content = get_message_content_object(m->content.get(), td_, dialog_id, live_location_date, m->is_content_secret,
|
||||
skip_bot_commands, max_media_timestamp);
|
||||
return make_tl_object<td_api::message>(
|
||||
m->message_id.get(), get_message_sender_object_const(m->sender_user_id, m->sender_dialog_id, source),
|
||||
dialog_id.get(), std::move(sending_state), std::move(scheduling_state), is_outgoing, is_pinned, can_be_edited,
|
||||
can_be_forwarded, can_delete_for_self, can_delete_for_all_users, can_get_statistics, can_get_message_thread,
|
||||
can_get_viewers, can_get_media_timestamp_links, has_timestamped_media, m->is_channel_post,
|
||||
contains_unread_mention, date, edit_date, get_message_forward_info_object(m->forward_info),
|
||||
get_message_interaction_info_object(dialog_id, m), reply_in_dialog_id.get(), reply_to_message_id,
|
||||
top_thread_message_id, ttl, ttl_expires_in, via_bot_user_id, m->author_signature, media_album_id,
|
||||
get_restriction_reason_description(m->restriction_reasons),
|
||||
get_message_content_object(m->content.get(), td_, dialog_id, live_location_date, m->is_content_secret,
|
||||
skip_bot_commands, max_media_timestamp),
|
||||
get_reply_markup_object(m->reply_markup));
|
||||
m->message_id.get(), std::move(sender), dialog_id.get(), std::move(sending_state), std::move(scheduling_state),
|
||||
is_outgoing, is_pinned, can_be_edited, can_be_forwarded, can_delete_for_self, can_delete_for_all_users,
|
||||
can_get_statistics, can_get_message_thread, can_get_viewers, can_get_media_timestamp_links, has_timestamped_media,
|
||||
m->is_channel_post, contains_unread_mention, date, edit_date, std::move(forward_info),
|
||||
std::move(interaction_info), reply_in_dialog_id.get(), reply_to_message_id, top_thread_message_id, ttl,
|
||||
ttl_expires_in, via_bot_user_id, m->author_signature, media_album_id,
|
||||
get_restriction_reason_description(m->restriction_reasons), std::move(content), std::move(reply_markup));
|
||||
}
|
||||
|
||||
tl_object_ptr<td_api::messages> MessagesManager::get_messages_object(int32 total_count, DialogId dialog_id,
|
||||
|
Loading…
Reference in New Issue
Block a user