Fix replies for scheduled messages.
This commit is contained in:
parent
fdee1297df
commit
95715158fe
@ -29030,14 +29030,14 @@ void MessagesManager::update_reply_to_message_id(DialogId dialog_id, MessageId o
|
||||
bool have_new_message, const char *source) {
|
||||
LOG(INFO) << "Update replies of " << MessageFullId{dialog_id, old_message_id} << " to " << new_message_id << " from "
|
||||
<< source;
|
||||
auto it = replied_yet_unsent_messages_.find({dialog_id, old_message_id});
|
||||
MessageFullId old_message_full_id(dialog_id, old_message_id);
|
||||
auto it = replied_yet_unsent_messages_.find(old_message_full_id);
|
||||
if (it == replied_yet_unsent_messages_.end()) {
|
||||
return;
|
||||
}
|
||||
CHECK(old_message_id.is_yet_unsent());
|
||||
CHECK(new_message_id == MessageId() || new_message_id.is_valid() || new_message_id.is_valid_scheduled());
|
||||
|
||||
MessageFullId old_message_full_id(dialog_id, old_message_id);
|
||||
for (auto message_full_id : it->second) {
|
||||
auto reply_d = get_dialog(message_full_id.get_dialog_id());
|
||||
CHECK(reply_d != nullptr);
|
||||
@ -29049,7 +29049,8 @@ void MessagesManager::update_reply_to_message_id(DialogId dialog_id, MessageId o
|
||||
if (new_message_id != MessageId()) {
|
||||
LOG_CHECK(replied_m->replied_message_info.get_reply_message_full_id(reply_d->dialog_id, true) ==
|
||||
old_message_full_id)
|
||||
<< old_message_full_id << ' ' << replied_m->replied_message_info << ' ' << *input_reply_to;
|
||||
<< old_message_full_id << ' ' << new_message_id << ' ' << replied_m->replied_message_info << ' '
|
||||
<< *input_reply_to;
|
||||
update_message_reply_to_message_id(reply_d, replied_m, new_message_id, true);
|
||||
} else {
|
||||
set_message_reply(reply_d, replied_m, MessageInputReplyTo(), true);
|
||||
|
@ -120,12 +120,12 @@ RepliedMessageInfo::RepliedMessageInfo(Td *td, tl_object_ptr<telegram_api::messa
|
||||
}
|
||||
|
||||
RepliedMessageInfo::RepliedMessageInfo(Td *td, const MessageInputReplyTo &input_reply_to) {
|
||||
if (!input_reply_to.message_id_.is_valid()) {
|
||||
if (!input_reply_to.message_id_.is_valid() && !input_reply_to.message_id_.is_valid_scheduled()) {
|
||||
return;
|
||||
}
|
||||
message_id_ = input_reply_to.message_id_;
|
||||
quote_ = input_reply_to.quote_.clone();
|
||||
if (input_reply_to.dialog_id_ != DialogId()) {
|
||||
if (input_reply_to.dialog_id_ != DialogId() && input_reply_to.message_id_.is_valid()) {
|
||||
auto info =
|
||||
td->messages_manager_->get_forwarded_message_info({input_reply_to.dialog_id_, input_reply_to.message_id_});
|
||||
if (info.origin_date_ == 0 || info.origin_.is_empty() || info.content_ == nullptr) {
|
||||
@ -315,7 +315,7 @@ td_api::object_ptr<td_api::messageReplyToMessage> RepliedMessageInfo::get_messag
|
||||
|
||||
MessageInputReplyTo RepliedMessageInfo::get_input_reply_to() const {
|
||||
CHECK(!is_external());
|
||||
if (message_id_.is_valid()) {
|
||||
if (message_id_.is_valid() || message_id_.is_valid_scheduled()) {
|
||||
return MessageInputReplyTo(message_id_, dialog_id_, quote_.clone(true));
|
||||
}
|
||||
return {};
|
||||
|
Loading…
x
Reference in New Issue
Block a user