Rename top_erply_message_id to top_thread_message_id.
GitOrigin-RevId: 4642286bdc2dc10073b1ab418b274af16b35c122
This commit is contained in:
parent
e294921d5f
commit
fb2cfc1fe3
@ -4493,7 +4493,7 @@ void MessagesManager::Message::store(StorerT &storer) const {
|
|||||||
bool has_reply_info = !reply_info.is_empty();
|
bool has_reply_info = !reply_info.is_empty();
|
||||||
bool has_sender_dialog_id = sender_dialog_id.is_valid();
|
bool has_sender_dialog_id = sender_dialog_id.is_valid();
|
||||||
bool has_reply_in_dialog_id = is_reply && reply_in_dialog_id.is_valid();
|
bool has_reply_in_dialog_id = is_reply && reply_in_dialog_id.is_valid();
|
||||||
bool has_top_reply_message_id = top_reply_message_id.is_valid();
|
bool has_top_thread_message_id = top_thread_message_id.is_valid();
|
||||||
bool has_thread_draft_message = thread_draft_message != nullptr;
|
bool has_thread_draft_message = thread_draft_message != nullptr;
|
||||||
BEGIN_STORE_FLAGS();
|
BEGIN_STORE_FLAGS();
|
||||||
STORE_FLAG(is_channel_post);
|
STORE_FLAG(is_channel_post);
|
||||||
@ -4547,7 +4547,7 @@ void MessagesManager::Message::store(StorerT &storer) const {
|
|||||||
STORE_FLAG(has_reply_info);
|
STORE_FLAG(has_reply_info);
|
||||||
STORE_FLAG(has_sender_dialog_id);
|
STORE_FLAG(has_sender_dialog_id);
|
||||||
STORE_FLAG(has_reply_in_dialog_id);
|
STORE_FLAG(has_reply_in_dialog_id);
|
||||||
STORE_FLAG(has_top_reply_message_id);
|
STORE_FLAG(has_top_thread_message_id);
|
||||||
STORE_FLAG(has_thread_draft_message);
|
STORE_FLAG(has_thread_draft_message);
|
||||||
END_STORE_FLAGS();
|
END_STORE_FLAGS();
|
||||||
}
|
}
|
||||||
@ -4639,8 +4639,8 @@ void MessagesManager::Message::store(StorerT &storer) const {
|
|||||||
if (has_reply_in_dialog_id) {
|
if (has_reply_in_dialog_id) {
|
||||||
store(reply_in_dialog_id, storer);
|
store(reply_in_dialog_id, storer);
|
||||||
}
|
}
|
||||||
if (has_top_reply_message_id) {
|
if (has_top_thread_message_id) {
|
||||||
store(top_reply_message_id, storer);
|
store(top_thread_message_id, storer);
|
||||||
}
|
}
|
||||||
if (has_thread_draft_message) {
|
if (has_thread_draft_message) {
|
||||||
store(thread_draft_message, storer);
|
store(thread_draft_message, storer);
|
||||||
@ -4682,7 +4682,7 @@ void MessagesManager::Message::parse(ParserT &parser) {
|
|||||||
bool has_reply_info = false;
|
bool has_reply_info = false;
|
||||||
bool has_sender_dialog_id = false;
|
bool has_sender_dialog_id = false;
|
||||||
bool has_reply_in_dialog_id = false;
|
bool has_reply_in_dialog_id = false;
|
||||||
bool has_top_reply_message_id = false;
|
bool has_top_thread_message_id = false;
|
||||||
bool has_thread_draft_message = false;
|
bool has_thread_draft_message = false;
|
||||||
BEGIN_PARSE_FLAGS();
|
BEGIN_PARSE_FLAGS();
|
||||||
PARSE_FLAG(is_channel_post);
|
PARSE_FLAG(is_channel_post);
|
||||||
@ -4736,7 +4736,7 @@ void MessagesManager::Message::parse(ParserT &parser) {
|
|||||||
PARSE_FLAG(has_reply_info);
|
PARSE_FLAG(has_reply_info);
|
||||||
PARSE_FLAG(has_sender_dialog_id);
|
PARSE_FLAG(has_sender_dialog_id);
|
||||||
PARSE_FLAG(has_reply_in_dialog_id);
|
PARSE_FLAG(has_reply_in_dialog_id);
|
||||||
PARSE_FLAG(has_top_reply_message_id);
|
PARSE_FLAG(has_top_thread_message_id);
|
||||||
PARSE_FLAG(has_thread_draft_message);
|
PARSE_FLAG(has_thread_draft_message);
|
||||||
END_PARSE_FLAGS();
|
END_PARSE_FLAGS();
|
||||||
}
|
}
|
||||||
@ -4834,8 +4834,8 @@ void MessagesManager::Message::parse(ParserT &parser) {
|
|||||||
if (has_reply_in_dialog_id) {
|
if (has_reply_in_dialog_id) {
|
||||||
parse(reply_in_dialog_id, parser);
|
parse(reply_in_dialog_id, parser);
|
||||||
}
|
}
|
||||||
if (has_top_reply_message_id) {
|
if (has_top_thread_message_id) {
|
||||||
parse(top_reply_message_id, parser);
|
parse(top_thread_message_id, parser);
|
||||||
}
|
}
|
||||||
if (has_thread_draft_message) {
|
if (has_thread_draft_message) {
|
||||||
parse(thread_draft_message, parser);
|
parse(thread_draft_message, parser);
|
||||||
@ -11492,7 +11492,7 @@ void MessagesManager::on_message_ttl_expired_impl(Dialog *d, Message *m) {
|
|||||||
m->contains_mention = false;
|
m->contains_mention = false;
|
||||||
m->reply_to_message_id = MessageId();
|
m->reply_to_message_id = MessageId();
|
||||||
m->reply_in_dialog_id = DialogId();
|
m->reply_in_dialog_id = DialogId();
|
||||||
m->top_reply_message_id = MessageId();
|
m->top_thread_message_id = MessageId();
|
||||||
m->is_content_secret = false;
|
m->is_content_secret = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -12629,7 +12629,7 @@ std::pair<DialogId, unique_ptr<MessagesManager::Message>> MessagesManager::creat
|
|||||||
|
|
||||||
MessageId reply_to_message_id = message_info.reply_to_message_id;
|
MessageId reply_to_message_id = message_info.reply_to_message_id;
|
||||||
DialogId reply_in_dialog_id;
|
DialogId reply_in_dialog_id;
|
||||||
MessageId top_reply_message_id;
|
MessageId top_thread_message_id;
|
||||||
if (message_info.reply_header != nullptr) {
|
if (message_info.reply_header != nullptr) {
|
||||||
reply_to_message_id = MessageId(ServerMessageId(message_info.reply_header->reply_to_msg_id_));
|
reply_to_message_id = MessageId(ServerMessageId(message_info.reply_header->reply_to_msg_id_));
|
||||||
auto reply_to_peer_id = std::move(message_info.reply_header->reply_to_peer_id_);
|
auto reply_to_peer_id = std::move(message_info.reply_header->reply_to_peer_id_);
|
||||||
@ -12643,14 +12643,14 @@ std::pair<DialogId, unique_ptr<MessagesManager::Message>> MessagesManager::creat
|
|||||||
}
|
}
|
||||||
if (reply_to_message_id.is_valid() && !td_->auth_manager_->is_bot()) {
|
if (reply_to_message_id.is_valid() && !td_->auth_manager_->is_bot()) {
|
||||||
if ((message_info.reply_header->flags_ & telegram_api::messageReplyHeader::REPLY_TO_TOP_ID_MASK) != 0) {
|
if ((message_info.reply_header->flags_ & telegram_api::messageReplyHeader::REPLY_TO_TOP_ID_MASK) != 0) {
|
||||||
top_reply_message_id = MessageId(ServerMessageId(message_info.reply_header->reply_to_top_id_));
|
top_thread_message_id = MessageId(ServerMessageId(message_info.reply_header->reply_to_top_id_));
|
||||||
} else if (!is_broadcast_channel(dialog_id)) {
|
} else if (!is_broadcast_channel(dialog_id)) {
|
||||||
top_reply_message_id = reply_to_message_id;
|
top_thread_message_id = reply_to_message_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fix_server_reply_to_message_id(dialog_id, message_id, reply_in_dialog_id, reply_to_message_id);
|
fix_server_reply_to_message_id(dialog_id, message_id, reply_in_dialog_id, reply_to_message_id);
|
||||||
fix_server_reply_to_message_id(dialog_id, message_id, reply_in_dialog_id, top_reply_message_id);
|
fix_server_reply_to_message_id(dialog_id, message_id, reply_in_dialog_id, top_thread_message_id);
|
||||||
|
|
||||||
UserId via_bot_user_id = message_info.via_bot_user_id;
|
UserId via_bot_user_id = message_info.via_bot_user_id;
|
||||||
if (!via_bot_user_id.is_valid()) {
|
if (!via_bot_user_id.is_valid()) {
|
||||||
@ -12697,12 +12697,12 @@ std::pair<DialogId, unique_ptr<MessagesManager::Message>> MessagesManager::creat
|
|||||||
forward_count = 0;
|
forward_count = 0;
|
||||||
}
|
}
|
||||||
MessageReplyInfo reply_info(std::move(message_info.reply_info), td_->auth_manager_->is_bot());
|
MessageReplyInfo reply_info(std::move(message_info.reply_info), td_->auth_manager_->is_bot());
|
||||||
if (!top_reply_message_id.is_valid() && !is_broadcast_channel(dialog_id) &&
|
if (!top_thread_message_id.is_valid() && !is_broadcast_channel(dialog_id) &&
|
||||||
is_active_message_reply_info(dialog_id, reply_info)) {
|
is_active_message_reply_info(dialog_id, reply_info)) {
|
||||||
top_reply_message_id = message_id;
|
top_thread_message_id = message_id;
|
||||||
}
|
}
|
||||||
if (top_reply_message_id.is_valid() && dialog_type != DialogType::Channel) {
|
if (top_thread_message_id.is_valid() && dialog_type != DialogType::Channel) {
|
||||||
top_reply_message_id = MessageId();
|
top_thread_message_id = MessageId();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool has_forward_info = message_info.forward_header != nullptr;
|
bool has_forward_info = message_info.forward_header != nullptr;
|
||||||
@ -12720,7 +12720,7 @@ std::pair<DialogId, unique_ptr<MessagesManager::Message>> MessagesManager::creat
|
|||||||
message->forward_info = get_message_forward_info(std::move(message_info.forward_header));
|
message->forward_info = get_message_forward_info(std::move(message_info.forward_header));
|
||||||
message->reply_to_message_id = reply_to_message_id;
|
message->reply_to_message_id = reply_to_message_id;
|
||||||
message->reply_in_dialog_id = reply_in_dialog_id;
|
message->reply_in_dialog_id = reply_in_dialog_id;
|
||||||
message->top_reply_message_id = top_reply_message_id;
|
message->top_thread_message_id = top_thread_message_id;
|
||||||
message->via_bot_user_id = via_bot_user_id;
|
message->via_bot_user_id = via_bot_user_id;
|
||||||
message->restriction_reasons = std::move(message_info.restriction_reasons);
|
message->restriction_reasons = std::move(message_info.restriction_reasons);
|
||||||
message->author_signature = std::move(message_info.author_signature);
|
message->author_signature = std::move(message_info.author_signature);
|
||||||
@ -12755,7 +12755,7 @@ std::pair<DialogId, unique_ptr<MessagesManager::Message>> MessagesManager::creat
|
|||||||
}
|
}
|
||||||
message->reply_to_message_id = MessageId();
|
message->reply_to_message_id = MessageId();
|
||||||
message->reply_in_dialog_id = DialogId();
|
message->reply_in_dialog_id = DialogId();
|
||||||
message->top_reply_message_id = MessageId();
|
message->top_thread_message_id = MessageId();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message_info.media_album_id != 0) {
|
if (message_info.media_album_id != 0) {
|
||||||
@ -16009,11 +16009,11 @@ void MessagesManager::get_message_thread(DialogId dialog_id, MessageId message_i
|
|||||||
}
|
}
|
||||||
message_thread_channel_id = m->reply_info.channel_id;
|
message_thread_channel_id = m->reply_info.channel_id;
|
||||||
} else {
|
} else {
|
||||||
if (!m->top_reply_message_id.is_valid()) {
|
if (!m->top_thread_message_id.is_valid()) {
|
||||||
return promise.set_error(Status::Error(400, "Message has no thread"));
|
return promise.set_error(Status::Error(400, "Message has no thread"));
|
||||||
}
|
}
|
||||||
message_thread_channel_id = dialog_id.get_channel_id();
|
message_thread_channel_id = dialog_id.get_channel_id();
|
||||||
top_thread_message_id = m->top_reply_message_id;
|
top_thread_message_id = m->top_thread_message_id;
|
||||||
}
|
}
|
||||||
CHECK(message_thread_channel_id.is_valid());
|
CHECK(message_thread_channel_id.is_valid());
|
||||||
|
|
||||||
@ -16055,7 +16055,7 @@ void MessagesManager::on_get_discussion_message(DialogId dialog_id, MessageId me
|
|||||||
}
|
}
|
||||||
expected_dialog_id = DialogId(m->reply_info.channel_id);
|
expected_dialog_id = DialogId(m->reply_info.channel_id);
|
||||||
} else {
|
} else {
|
||||||
if (!m->top_reply_message_id.is_valid()) {
|
if (!m->top_thread_message_id.is_valid()) {
|
||||||
return promise.set_error(Status::Error(400, "Message has no thread"));
|
return promise.set_error(Status::Error(400, "Message has no thread"));
|
||||||
}
|
}
|
||||||
expected_dialog_id = dialog_id;
|
expected_dialog_id = dialog_id;
|
||||||
@ -16319,10 +16319,10 @@ Result<std::pair<string, bool>> MessagesManager::get_message_link(FullMessageId
|
|||||||
for_group = true; // default is true
|
for_group = true; // default is true
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m->top_reply_message_id.is_valid() || !m->top_reply_message_id.is_server()) {
|
if (!m->top_thread_message_id.is_valid() || !m->top_thread_message_id.is_server()) {
|
||||||
for_comment = false;
|
for_comment = false;
|
||||||
}
|
}
|
||||||
if (d->deleted_message_ids.count(m->top_reply_message_id) != 0) {
|
if (d->deleted_message_ids.count(m->top_thread_message_id) != 0) {
|
||||||
for_comment = false;
|
for_comment = false;
|
||||||
}
|
}
|
||||||
if (for_comment && is_broadcast_channel(dialog_id)) {
|
if (for_comment && is_broadcast_channel(dialog_id)) {
|
||||||
@ -16334,7 +16334,7 @@ Result<std::pair<string, bool>> MessagesManager::get_message_link(FullMessageId
|
|||||||
|
|
||||||
auto t_me = G()->shared_config().get_option_string("t_me_url", "https://t.me/");
|
auto t_me = G()->shared_config().get_option_string("t_me_url", "https://t.me/");
|
||||||
if (for_comment) {
|
if (for_comment) {
|
||||||
auto *top_m = get_message_force(d, m->top_reply_message_id, "get_public_message_link");
|
auto *top_m = get_message_force(d, m->top_thread_message_id, "get_public_message_link");
|
||||||
if (is_discussion_message(dialog_id, top_m) && is_active_message_reply_info(dialog_id, top_m->reply_info)) {
|
if (is_discussion_message(dialog_id, top_m) && is_active_message_reply_info(dialog_id, top_m->reply_info)) {
|
||||||
auto linked_dialog_id = top_m->forward_info->sender_dialog_id;
|
auto linked_dialog_id = top_m->forward_info->sender_dialog_id;
|
||||||
auto linked_message_id = top_m->forward_info->message_id;
|
auto linked_message_id = top_m->forward_info->message_id;
|
||||||
@ -16364,7 +16364,7 @@ Result<std::pair<string, bool>> MessagesManager::get_message_link(FullMessageId
|
|||||||
|
|
||||||
string args;
|
string args;
|
||||||
if (for_comment) {
|
if (for_comment) {
|
||||||
args = PSTRING() << "?thread=" << m->top_reply_message_id.get_server_message_id().get();
|
args = PSTRING() << "?thread=" << m->top_thread_message_id.get_server_message_id().get();
|
||||||
}
|
}
|
||||||
if (!for_group) {
|
if (!for_group) {
|
||||||
args += args.empty() ? '?' : '&';
|
args += args.empty() ? '?' : '&';
|
||||||
@ -16728,7 +16728,7 @@ td_api::object_ptr<td_api::messageLinkInfo> MessagesManager::get_message_link_in
|
|||||||
if (m != nullptr) {
|
if (m != nullptr) {
|
||||||
message = get_message_object(dialog_id, m);
|
message = get_message_object(dialog_id, m);
|
||||||
for_album = !info.is_single && m->media_album_id != 0;
|
for_album = !info.is_single && m->media_album_id != 0;
|
||||||
for_comment = (info.comment_dialog_id.is_valid() || info.for_comment) && m->top_reply_message_id.is_valid();
|
for_comment = (info.comment_dialog_id.is_valid() || info.for_comment) && m->top_thread_message_id.is_valid();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -21499,13 +21499,13 @@ tl_object_ptr<td_api::message> MessagesManager::get_message_object(DialogId dial
|
|||||||
bool can_be_forwarded = for_event_log ? false : can_forward_message(dialog_id, m);
|
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_statistics = for_event_log ? false : can_get_message_statistics(dialog_id, m);
|
||||||
bool can_get_message_thread =
|
bool can_get_message_thread =
|
||||||
for_event_log || is_scheduled ? false : !m->reply_info.is_empty() || m->top_reply_message_id.is_valid();
|
for_event_log || is_scheduled ? false : !m->reply_info.is_empty() || m->top_thread_message_id.is_valid();
|
||||||
auto via_bot_user_id = td_->contacts_manager_->get_user_id_object(m->via_bot_user_id, "via_bot_user_id");
|
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 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_to_message_id = for_event_log ? static_cast<int64>(0) : m->reply_to_message_id.get();
|
||||||
auto reply_in_dialog_id =
|
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);
|
reply_to_message_id == 0 ? DialogId() : (m->reply_in_dialog_id.is_valid() ? m->reply_in_dialog_id : dialog_id);
|
||||||
auto top_reply_message_id = for_event_log || is_scheduled ? static_cast<int64>(0) : m->top_reply_message_id.get();
|
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;
|
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 live_location_date = m->is_failed_to_send ? 0 : m->date;
|
||||||
auto date = is_scheduled ? 0 : m->date;
|
auto date = is_scheduled ? 0 : m->date;
|
||||||
@ -21516,7 +21516,7 @@ tl_object_ptr<td_api::message> MessagesManager::get_message_object(DialogId dial
|
|||||||
can_be_edited, can_be_forwarded, can_delete_for_self, can_delete_for_all_users, can_get_statistics,
|
can_be_edited, can_be_forwarded, can_delete_for_self, can_delete_for_all_users, can_get_statistics,
|
||||||
can_get_message_thread, m->is_channel_post, contains_unread_mention, date, edit_date,
|
can_get_message_thread, 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),
|
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_reply_message_id, ttl, ttl_expires_in, via_bot_user_id,
|
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),
|
m->author_signature, media_album_id, get_restriction_reason_description(m->restriction_reasons),
|
||||||
get_message_content_object(m->content.get(), td_, live_location_date, m->is_content_secret),
|
get_message_content_object(m->content.get(), td_, live_location_date, m->is_content_secret),
|
||||||
get_reply_markup_object(m->reply_markup));
|
get_reply_markup_object(m->reply_markup));
|
||||||
@ -21612,11 +21612,11 @@ MessagesManager::Message *MessagesManager::get_message_to_send(
|
|||||||
m->send_date = G()->unix_time();
|
m->send_date = G()->unix_time();
|
||||||
m->date = is_scheduled ? options.schedule_date : m->send_date;
|
m->date = is_scheduled ? options.schedule_date : m->send_date;
|
||||||
m->reply_to_message_id = reply_to_message_id;
|
m->reply_to_message_id = reply_to_message_id;
|
||||||
m->top_reply_message_id = top_thread_message_id;
|
m->top_thread_message_id = top_thread_message_id;
|
||||||
if (reply_to_message_id.is_valid()) {
|
if (reply_to_message_id.is_valid()) {
|
||||||
const Message *reply_m = get_message(d, reply_to_message_id);
|
const Message *reply_m = get_message(d, reply_to_message_id);
|
||||||
if (reply_m != nullptr && reply_m->top_reply_message_id.is_valid()) {
|
if (reply_m != nullptr && reply_m->top_thread_message_id.is_valid()) {
|
||||||
m->top_reply_message_id = reply_m->top_reply_message_id;
|
m->top_thread_message_id = reply_m->top_thread_message_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m->is_channel_post = is_channel_post;
|
m->is_channel_post = is_channel_post;
|
||||||
@ -22357,15 +22357,15 @@ Status MessagesManager::can_use_top_thread_message_id(Dialog *d, MessageId top_t
|
|||||||
}
|
}
|
||||||
if (reply_to_message_id.is_valid()) {
|
if (reply_to_message_id.is_valid()) {
|
||||||
const Message *reply_m = get_message_force(d, reply_to_message_id, "can_use_top_thread_message_id 1");
|
const Message *reply_m = get_message_force(d, reply_to_message_id, "can_use_top_thread_message_id 1");
|
||||||
if (reply_m != nullptr && top_thread_message_id != reply_m->top_reply_message_id) {
|
if (reply_m != nullptr && top_thread_message_id != reply_m->top_thread_message_id) {
|
||||||
if (reply_m->top_reply_message_id.is_valid() || reply_m->media_album_id == 0) {
|
if (reply_m->top_thread_message_id.is_valid() || reply_m->media_album_id == 0) {
|
||||||
return Status::Error(400, "The message to reply is not in the specified message thread");
|
return Status::Error(400, "The message to reply is not in the specified message thread");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the message is in an album and not in the thread, it can be in the album of top_thread_message_id
|
// if the message is in an album and not in the thread, it can be in the album of top_thread_message_id
|
||||||
const Message *top_m = get_message_force(d, top_thread_message_id, "can_use_top_thread_message_id 2");
|
const Message *top_m = get_message_force(d, top_thread_message_id, "can_use_top_thread_message_id 2");
|
||||||
if (top_m != nullptr &&
|
if (top_m != nullptr &&
|
||||||
(top_m->media_album_id != reply_m->media_album_id || top_m->top_reply_message_id != top_m->message_id)) {
|
(top_m->media_album_id != reply_m->media_album_id || top_m->top_thread_message_id != top_m->message_id)) {
|
||||||
return Status::Error(400, "The message to reply is not in the specified message thread root album");
|
return Status::Error(400, "The message to reply is not in the specified message thread root album");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -25031,8 +25031,8 @@ 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(d, message->top_reply_message_id,
|
get_message_to_send(d, message->top_thread_message_id,
|
||||||
get_reply_to_message_id(d, message->top_reply_message_id, message->reply_to_message_id),
|
get_reply_to_message_id(d, message->top_thread_message_id, message->reply_to_message_id),
|
||||||
options, std::move(new_contents[i]), &need_update_dialog_pos, nullptr, message->is_copy);
|
options, std::move(new_contents[i]), &need_update_dialog_pos, 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;
|
||||||
@ -25243,7 +25243,7 @@ Result<MessageId> MessagesManager::add_local_message(
|
|||||||
if (m->reply_to_message_id.is_valid()) {
|
if (m->reply_to_message_id.is_valid()) {
|
||||||
const Message *reply_m = get_message(d, m->reply_to_message_id);
|
const Message *reply_m = get_message(d, m->reply_to_message_id);
|
||||||
if (reply_m != nullptr) {
|
if (reply_m != nullptr) {
|
||||||
m->top_reply_message_id = reply_m->top_reply_message_id;
|
m->top_thread_message_id = reply_m->top_thread_message_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m->is_channel_post = is_channel_post;
|
m->is_channel_post = is_channel_post;
|
||||||
@ -28845,7 +28845,7 @@ void MessagesManager::on_send_dialog_action_timeout(DialogId dialog_id) {
|
|||||||
}
|
}
|
||||||
CHECK(action != nullptr);
|
CHECK(action != nullptr);
|
||||||
LOG(INFO) << "Send action in " << dialog_id << ": " << to_string(action);
|
LOG(INFO) << "Send action in " << dialog_id << ": " << to_string(action);
|
||||||
send_dialog_action(dialog_id, m->top_reply_message_id, std::move(action), Auto());
|
send_dialog_action(dialog_id, m->top_thread_message_id, std::move(action), Auto());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessagesManager::on_active_dialog_action_timeout(DialogId dialog_id) {
|
void MessagesManager::on_active_dialog_action_timeout(DialogId dialog_id) {
|
||||||
@ -30529,12 +30529,12 @@ MessagesManager::Message *MessagesManager::add_message_to_dialog(Dialog *d, uniq
|
|||||||
LOG(INFO) << "Preloaded previously pinned " << d->pinned_message_notification_message_id << " from database";
|
LOG(INFO) << "Preloaded previously pinned " << d->pinned_message_notification_message_id << " from database";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (from_update && message->top_reply_message_id.is_valid() && message->top_reply_message_id != message_id &&
|
if (from_update && message->top_thread_message_id.is_valid() && message->top_thread_message_id != message_id &&
|
||||||
message_id.is_server() &&
|
message_id.is_server() &&
|
||||||
have_message_force({dialog_id, message->top_reply_message_id}, "preload top reply message")) {
|
have_message_force({dialog_id, message->top_thread_message_id}, "preload top reply message")) {
|
||||||
LOG(INFO) << "Preloaded top reply " << message->top_reply_message_id << " from database";
|
LOG(INFO) << "Preloaded top thread " << message->top_thread_message_id << " from database";
|
||||||
|
|
||||||
Message *top_m = get_message(d, message->top_reply_message_id);
|
Message *top_m = get_message(d, message->top_thread_message_id);
|
||||||
CHECK(top_m != nullptr);
|
CHECK(top_m != nullptr);
|
||||||
if (is_active_message_reply_info(dialog_id, top_m->reply_info) && is_discussion_message(dialog_id, top_m) &&
|
if (is_active_message_reply_info(dialog_id, top_m->reply_info) && is_discussion_message(dialog_id, top_m) &&
|
||||||
have_message_force({top_m->forward_info->sender_dialog_id, top_m->forward_info->message_id},
|
have_message_force({top_m->forward_info->sender_dialog_id, top_m->forward_info->message_id},
|
||||||
@ -30891,9 +30891,9 @@ MessagesManager::Message *MessagesManager::add_message_to_dialog(Dialog *d, uniq
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!td_->auth_manager_->is_bot() && m->top_reply_message_id.is_valid() && m->top_reply_message_id != message_id &&
|
if (!td_->auth_manager_->is_bot() && m->top_thread_message_id.is_valid() &&
|
||||||
message_id.is_server()) {
|
m->top_thread_message_id != message_id && message_id.is_server()) {
|
||||||
Message *top_m = get_message(d, m->top_reply_message_id);
|
Message *top_m = get_message(d, m->top_thread_message_id);
|
||||||
if (top_m != nullptr && is_active_message_reply_info(dialog_id, top_m->reply_info)) {
|
if (top_m != nullptr && is_active_message_reply_info(dialog_id, top_m->reply_info)) {
|
||||||
auto replier_dialog_id =
|
auto replier_dialog_id =
|
||||||
has_message_sender_user_id(dialog_id, m) ? DialogId(m->sender_user_id) : m->sender_dialog_id;
|
has_message_sender_user_id(dialog_id, m) ? DialogId(m->sender_user_id) : m->sender_dialog_id;
|
||||||
@ -31613,14 +31613,15 @@ bool MessagesManager::update_message(Dialog *d, Message *old_message, unique_ptr
|
|||||||
<< new_message->content->get_type();
|
<< new_message->content->get_type();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (old_message->top_reply_message_id != new_message->top_reply_message_id) {
|
if (old_message->top_thread_message_id != new_message->top_thread_message_id) {
|
||||||
if (new_message->top_reply_message_id == MessageId() || old_message->top_reply_message_id == MessageId()) {
|
if (new_message->top_thread_message_id == MessageId() || old_message->top_thread_message_id == MessageId()) {
|
||||||
LOG(DEBUG) << "Change message top_reply_message_id";
|
LOG(DEBUG) << "Change message thread from " << old_message->top_thread_message_id << " to "
|
||||||
old_message->top_reply_message_id = new_message->top_reply_message_id;
|
<< new_message->top_thread_message_id;
|
||||||
|
old_message->top_thread_message_id = new_message->top_thread_message_id;
|
||||||
need_send_update = true;
|
need_send_update = true;
|
||||||
} else if (is_new_available) {
|
} else if (is_new_available) {
|
||||||
LOG(ERROR) << message_id << " in " << dialog_id << " has changed top message it is reply to from "
|
LOG(ERROR) << message_id << " in " << dialog_id << " has changed message thread from "
|
||||||
<< old_message->top_reply_message_id << " to " << new_message->top_reply_message_id
|
<< old_message->top_thread_message_id << " to " << new_message->top_thread_message_id
|
||||||
<< ", message content type is " << old_message->content->get_type() << '/'
|
<< ", message content type is " << old_message->content->get_type() << '/'
|
||||||
<< new_message->content->get_type();
|
<< new_message->content->get_type();
|
||||||
}
|
}
|
||||||
|
@ -1034,7 +1034,7 @@ class MessagesManager : public Actor {
|
|||||||
MessageId reply_to_message_id;
|
MessageId reply_to_message_id;
|
||||||
int64 reply_to_random_id = 0; // for send_message
|
int64 reply_to_random_id = 0; // for send_message
|
||||||
DialogId reply_in_dialog_id;
|
DialogId reply_in_dialog_id;
|
||||||
MessageId top_reply_message_id;
|
MessageId top_thread_message_id;
|
||||||
|
|
||||||
UserId via_bot_user_id;
|
UserId via_bot_user_id;
|
||||||
|
|
||||||
|
@ -1915,15 +1915,15 @@ void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateChannelUserTypi
|
|||||||
LOG(DEBUG) << "Ignore user channel typing in unknown " << dialog_id;
|
LOG(DEBUG) << "Ignore user channel typing in unknown " << dialog_id;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
MessageId top_reply_message_id;
|
MessageId top_thread_message_id;
|
||||||
if ((update->flags_ & telegram_api::updateChannelUserTyping::TOP_MSG_ID_MASK) != 0) {
|
if ((update->flags_ & telegram_api::updateChannelUserTyping::TOP_MSG_ID_MASK) != 0) {
|
||||||
top_reply_message_id = MessageId(ServerMessageId(update->top_msg_id_));
|
top_thread_message_id = MessageId(ServerMessageId(update->top_msg_id_));
|
||||||
if (!top_reply_message_id.is_valid() && top_reply_message_id != MessageId()) {
|
if (!top_thread_message_id.is_valid() && top_thread_message_id != MessageId()) {
|
||||||
LOG(ERROR) << "Ignore user channel typing in replies of " << top_reply_message_id;
|
LOG(ERROR) << "Ignore user channel typing in the message thread of " << top_thread_message_id;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
td_->messages_manager_->on_user_dialog_action(dialog_id, top_reply_message_id, user_id,
|
td_->messages_manager_->on_user_dialog_action(dialog_id, top_thread_message_id, user_id,
|
||||||
convert_send_message_action(std::move(update->action_)),
|
convert_send_message_action(std::move(update->action_)),
|
||||||
get_short_update_date());
|
get_short_update_date());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user