mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-07-29 08:47:52 +00:00
feat: reply to deleted messages
This commit is contained in:
@@ -308,6 +308,25 @@ void SendExistingDocument(
|
||||
MessageToSend &&message,
|
||||
not_null<DocumentData*> document,
|
||||
std::optional<MsgId> localMessageId) {
|
||||
if (!document->sticker()
|
||||
&& !document->isVideoMessage()
|
||||
&& !document->isVoiceMessage()) {
|
||||
const auto clearReplyTo = prependPseudoReply(message);
|
||||
if (clearReplyTo) {
|
||||
message.action.replyTo.messageId = FullMsgId(
|
||||
message.action.replyTo.messageId.peer,
|
||||
message.action.replyTo.topicRootId);
|
||||
}
|
||||
} else if (message.action.replyTo && message.action.history) {
|
||||
if (const auto item = message.action.history->session().data().message(message.action.replyTo.messageId)) {
|
||||
if (item->isDeleted()) {
|
||||
message.action.replyTo.messageId = FullMsgId(
|
||||
message.action.replyTo.messageId.peer,
|
||||
message.action.replyTo.topicRootId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const auto inputMedia = [=] {
|
||||
return MTP_inputMediaDocument(
|
||||
MTP_flags(message.action.options.mediaSpoiler
|
||||
@@ -335,6 +354,13 @@ void SendExistingPhoto(
|
||||
MessageToSend &&message,
|
||||
not_null<PhotoData*> photo,
|
||||
std::optional<MsgId> localMessageId) {
|
||||
const auto clearReplyTo = prependPseudoReply(message);
|
||||
if (clearReplyTo) {
|
||||
message.action.replyTo.messageId = FullMsgId(
|
||||
message.action.replyTo.messageId.peer,
|
||||
message.action.replyTo.topicRootId);
|
||||
}
|
||||
|
||||
const auto inputMedia = [=] {
|
||||
return MTP_inputMediaPhoto(
|
||||
MTP_flags(0),
|
||||
@@ -558,6 +584,26 @@ void SendConfirmedFile(
|
||||
const auto history = session->data().history(file->to.peer);
|
||||
const auto peer = history->peer;
|
||||
|
||||
if (!isEditing
|
||||
&& file->type != SendMediaType::Audio
|
||||
&& file->type != SendMediaType::Round) {
|
||||
const auto clearReplyTo = prependPseudoReply(
|
||||
session, history, file->caption, file->to.replyTo);
|
||||
if (clearReplyTo) {
|
||||
file->to.replyTo.messageId = FullMsgId(
|
||||
file->to.replyTo.messageId.peer,
|
||||
file->to.replyTo.topicRootId);
|
||||
}
|
||||
} else if (!isEditing && file->to.replyTo) {
|
||||
if (const auto item = session->data().message(file->to.replyTo.messageId)) {
|
||||
if (item->isDeleted()) {
|
||||
file->to.replyTo.messageId = FullMsgId(
|
||||
file->to.replyTo.messageId.peer,
|
||||
file->to.replyTo.topicRootId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isEditing) {
|
||||
const auto histories = &session->data().histories();
|
||||
file->to.replyTo.messageId = histories->convertTopicReplyToId(
|
||||
|
||||
Reference in New Issue
Block a user