Keep reply info only on last forwarded and first album messages.
GitOrigin-RevId: 0011332382abccd84122f88bcb2ae04ee793dd2b
This commit is contained in:
parent
978863810c
commit
881aa63014
@ -21753,8 +21753,8 @@ bool MessagesManager::is_anonymous_administrator(DialogId dialog_id, string *aut
|
|||||||
|
|
||||||
MessagesManager::Message *MessagesManager::get_message_to_send(
|
MessagesManager::Message *MessagesManager::get_message_to_send(
|
||||||
Dialog *d, MessageId top_thread_message_id, MessageId reply_to_message_id, const MessageSendOptions &options,
|
Dialog *d, MessageId top_thread_message_id, MessageId reply_to_message_id, const MessageSendOptions &options,
|
||||||
unique_ptr<MessageContent> &&content, bool *need_update_dialog_pos, unique_ptr<MessageForwardInfo> forward_info,
|
unique_ptr<MessageContent> &&content, bool *need_update_dialog_pos, bool suppress_reply_info,
|
||||||
bool is_copy) {
|
unique_ptr<MessageForwardInfo> forward_info, bool is_copy) {
|
||||||
CHECK(d != nullptr);
|
CHECK(d != nullptr);
|
||||||
CHECK(!reply_to_message_id.is_scheduled());
|
CHECK(!reply_to_message_id.is_scheduled());
|
||||||
CHECK(content != nullptr);
|
CHECK(content != nullptr);
|
||||||
@ -21800,6 +21800,9 @@ MessagesManager::Message *MessagesManager::get_message_to_send(
|
|||||||
m->view_count = is_channel_post && !is_scheduled ? 1 : 0;
|
m->view_count = is_channel_post && !is_scheduled ? 1 : 0;
|
||||||
m->forward_count = 0;
|
m->forward_count = 0;
|
||||||
if ([&] {
|
if ([&] {
|
||||||
|
if (suppress_reply_info) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (is_scheduled) {
|
if (is_scheduled) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -22367,7 +22370,7 @@ Result<MessageId> MessagesManager::send_message(DialogId dialog_id, MessageId to
|
|||||||
Message *m = get_message_to_send(d, top_thread_message_id, reply_to_message_id, message_send_options,
|
Message *m = get_message_to_send(d, top_thread_message_id, reply_to_message_id, message_send_options,
|
||||||
dup_message_content(td_, dialog_id, message_content.content.get(),
|
dup_message_content(td_, dialog_id, message_content.content.get(),
|
||||||
MessageContentDupType::Send, MessageCopyOptions()),
|
MessageContentDupType::Send, MessageCopyOptions()),
|
||||||
&need_update_dialog_pos, nullptr, message_content.via_bot_user_id.is_valid());
|
&need_update_dialog_pos, false, nullptr, message_content.via_bot_user_id.is_valid());
|
||||||
m->reply_markup = std::move(message_reply_markup);
|
m->reply_markup = std::move(message_reply_markup);
|
||||||
m->via_bot_user_id = message_content.via_bot_user_id;
|
m->via_bot_user_id = message_content.via_bot_user_id;
|
||||||
m->disable_web_page_preview = message_content.disable_web_page_preview;
|
m->disable_web_page_preview = message_content.disable_web_page_preview;
|
||||||
@ -22603,11 +22606,12 @@ Result<vector<MessageId>> MessagesManager::send_message_group(
|
|||||||
|
|
||||||
vector<MessageId> result;
|
vector<MessageId> result;
|
||||||
bool need_update_dialog_pos = false;
|
bool need_update_dialog_pos = false;
|
||||||
for (auto &message_content : message_contents) {
|
for (size_t i = 0; i < message_contents.size(); i++) {
|
||||||
|
auto &message_content = message_contents[i];
|
||||||
Message *m = get_message_to_send(d, top_thread_message_id, reply_to_message_id, message_send_options,
|
Message *m = get_message_to_send(d, top_thread_message_id, reply_to_message_id, message_send_options,
|
||||||
dup_message_content(td_, dialog_id, message_content.first.get(),
|
dup_message_content(td_, dialog_id, message_content.first.get(),
|
||||||
MessageContentDupType::Send, MessageCopyOptions()),
|
MessageContentDupType::Send, MessageCopyOptions()),
|
||||||
&need_update_dialog_pos);
|
&need_update_dialog_pos, i != 0);
|
||||||
result.push_back(m->message_id);
|
result.push_back(m->message_id);
|
||||||
auto ttl = message_content.second;
|
auto ttl = message_content.second;
|
||||||
if (ttl > 0) {
|
if (ttl > 0) {
|
||||||
@ -23399,7 +23403,7 @@ Result<MessageId> MessagesManager::send_inline_query_result_message(DialogId dia
|
|||||||
Message *m = get_message_to_send(d, top_thread_message_id, reply_to_message_id, message_send_options,
|
Message *m = get_message_to_send(d, top_thread_message_id, reply_to_message_id, message_send_options,
|
||||||
dup_message_content(td_, dialog_id, content->message_content.get(),
|
dup_message_content(td_, dialog_id, content->message_content.get(),
|
||||||
MessageContentDupType::SendViaBot, MessageCopyOptions()),
|
MessageContentDupType::SendViaBot, MessageCopyOptions()),
|
||||||
&need_update_dialog_pos, nullptr, true);
|
&need_update_dialog_pos, false, nullptr, true);
|
||||||
m->hide_via_bot = hide_via_bot;
|
m->hide_via_bot = hide_via_bot;
|
||||||
if (!hide_via_bot) {
|
if (!hide_via_bot) {
|
||||||
m->via_bot_user_id = td_->inline_queries_manager_->get_inline_bot_user_id(query_id);
|
m->via_bot_user_id = td_->inline_queries_manager_->get_inline_bot_user_id(query_id);
|
||||||
@ -25050,7 +25054,7 @@ Result<vector<MessageId>> MessagesManager::forward_messages(DialogId to_dialog_i
|
|||||||
}
|
}
|
||||||
|
|
||||||
Message *m = get_message_to_send(to_dialog, MessageId(), MessageId(), message_send_options, std::move(content),
|
Message *m = get_message_to_send(to_dialog, MessageId(), MessageId(), message_send_options, std::move(content),
|
||||||
&need_update_dialog_pos, std::move(forward_info));
|
&need_update_dialog_pos, i + 1 != message_ids.size(), std::move(forward_info));
|
||||||
m->real_forward_from_dialog_id = from_dialog_id;
|
m->real_forward_from_dialog_id = from_dialog_id;
|
||||||
m->real_forward_from_message_id = message_id;
|
m->real_forward_from_message_id = message_id;
|
||||||
m->via_bot_user_id = forwarded_message->via_bot_user_id;
|
m->via_bot_user_id = forwarded_message->via_bot_user_id;
|
||||||
@ -25127,9 +25131,9 @@ Result<vector<MessageId>> MessagesManager::forward_messages(DialogId to_dialog_i
|
|||||||
|
|
||||||
if (!copied_messages.empty()) {
|
if (!copied_messages.empty()) {
|
||||||
for (auto &copied_message : copied_messages) {
|
for (auto &copied_message : copied_messages) {
|
||||||
Message *m = get_message_to_send(to_dialog, copied_message.top_thread_message_id,
|
Message *m = get_message_to_send(
|
||||||
copied_message.reply_to_message_id, message_send_options,
|
to_dialog, copied_message.top_thread_message_id, copied_message.reply_to_message_id, message_send_options,
|
||||||
std::move(copied_message.content), &need_update_dialog_pos, nullptr, true);
|
std::move(copied_message.content), &need_update_dialog_pos, false, nullptr, true);
|
||||||
m->disable_web_page_preview = copied_message.disable_web_page_preview;
|
m->disable_web_page_preview = copied_message.disable_web_page_preview;
|
||||||
if (copied_message.media_album_id != 0) {
|
if (copied_message.media_album_id != 0) {
|
||||||
m->media_album_id = new_media_album_ids[copied_message.media_album_id].first;
|
m->media_album_id = new_media_album_ids[copied_message.media_album_id].first;
|
||||||
@ -25240,10 +25244,10 @@ Result<vector<MessageId>> MessagesManager::resend_messages(DialogId dialog_id, v
|
|||||||
|
|
||||||
MessageSendOptions options(message->disable_notification, message->from_background,
|
MessageSendOptions options(message->disable_notification, message->from_background,
|
||||||
get_message_schedule_date(message.get()));
|
get_message_schedule_date(message.get()));
|
||||||
Message *m =
|
Message *m = get_message_to_send(
|
||||||
get_message_to_send(d, message->top_thread_message_id,
|
d, message->top_thread_message_id,
|
||||||
get_reply_to_message_id(d, message->top_thread_message_id, message->reply_to_message_id),
|
get_reply_to_message_id(d, message->top_thread_message_id, message->reply_to_message_id), options,
|
||||||
options, std::move(new_contents[i]), &need_update_dialog_pos, nullptr, message->is_copy);
|
std::move(new_contents[i]), &need_update_dialog_pos, false, nullptr, message->is_copy);
|
||||||
m->reply_markup = std::move(message->reply_markup);
|
m->reply_markup = std::move(message->reply_markup);
|
||||||
m->via_bot_user_id = message->via_bot_user_id;
|
m->via_bot_user_id = message->via_bot_user_id;
|
||||||
m->disable_web_page_preview = message->disable_web_page_preview;
|
m->disable_web_page_preview = message->disable_web_page_preview;
|
||||||
|
@ -1753,8 +1753,8 @@ class MessagesManager : public Actor {
|
|||||||
|
|
||||||
Message *get_message_to_send(Dialog *d, MessageId top_thread_message_id, MessageId reply_to_message_id,
|
Message *get_message_to_send(Dialog *d, MessageId top_thread_message_id, MessageId reply_to_message_id,
|
||||||
const MessageSendOptions &options, unique_ptr<MessageContent> &&content,
|
const MessageSendOptions &options, unique_ptr<MessageContent> &&content,
|
||||||
bool *need_update_dialog_pos, unique_ptr<MessageForwardInfo> forward_info = nullptr,
|
bool *need_update_dialog_pos, bool suppress_reply_info = false,
|
||||||
bool is_copy = false);
|
unique_ptr<MessageForwardInfo> forward_info = nullptr, bool is_copy = false);
|
||||||
|
|
||||||
int64 begin_send_message(DialogId dialog_id, const Message *m);
|
int64 begin_send_message(DialogId dialog_id, const Message *m);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user