mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Show correct topic buttons in admin log.
This commit is contained in:
parent
acfd92e2e6
commit
cdedf283ac
1 changed files with 65 additions and 21 deletions
|
@ -80,6 +80,46 @@ TextWithEntities PrepareText(
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<MTPMessageReplyHeader> PrepareLogReply(
|
||||||
|
const MTPMessageReplyHeader *header) {
|
||||||
|
if (!header) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
return header->match([&](const MTPDmessageReplyHeader &data)
|
||||||
|
-> std::optional<MTPMessageReplyHeader> {
|
||||||
|
if (data.vreply_to_peer_id()) {
|
||||||
|
return *header;
|
||||||
|
} else if (data.is_forum_topic()) {
|
||||||
|
const auto topId = data.vreply_to_top_id().value_or(
|
||||||
|
data.vreply_to_msg_id().value_or_empty());
|
||||||
|
if (topId) {
|
||||||
|
using Flag = MTPDmessageReplyHeader::Flag;
|
||||||
|
const auto removeFlags = Flag::f_reply_from
|
||||||
|
| Flag::f_reply_media
|
||||||
|
| Flag::f_reply_to_scheduled
|
||||||
|
| Flag::f_quote
|
||||||
|
| Flag::f_quote_entities
|
||||||
|
| Flag::f_quote_offset
|
||||||
|
| Flag::f_quote_text;
|
||||||
|
return MTP_messageReplyHeader(
|
||||||
|
MTP_flags((data.vflags().v & ~removeFlags)
|
||||||
|
| Flag::f_reply_to_msg_id),
|
||||||
|
MTP_int(topId),
|
||||||
|
MTPPeer(), // reply_to_peer_id
|
||||||
|
MTPMessageFwdHeader(), // reply_from
|
||||||
|
MTPMessageMedia(), // reply_media
|
||||||
|
MTP_int(topId),
|
||||||
|
MTPstring(), // quote_text
|
||||||
|
MTPVector<MTPMessageEntity>(), // quote_entities
|
||||||
|
MTPint()); // quote_offset
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {};
|
||||||
|
}, [&](const MTPDmessageReplyStoryHeader &data) {
|
||||||
|
return std::optional<MTPMessageReplyHeader>();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
MTPMessage PrepareLogMessage(const MTPMessage &message, TimeId newDate) {
|
MTPMessage PrepareLogMessage(const MTPMessage &message, TimeId newDate) {
|
||||||
return message.match([&](const MTPDmessageEmpty &data) {
|
return message.match([&](const MTPDmessageEmpty &data) {
|
||||||
return MTP_messageEmpty(
|
return MTP_messageEmpty(
|
||||||
|
@ -87,36 +127,40 @@ MTPMessage PrepareLogMessage(const MTPMessage &message, TimeId newDate) {
|
||||||
data.vid(),
|
data.vid(),
|
||||||
data.vpeer_id() ? *data.vpeer_id() : MTPPeer());
|
data.vpeer_id() ? *data.vpeer_id() : MTPPeer());
|
||||||
}, [&](const MTPDmessageService &data) {
|
}, [&](const MTPDmessageService &data) {
|
||||||
const auto removeFlags = MTPDmessageService::Flag::f_out
|
using Flag = MTPDmessageService::Flag;
|
||||||
| MTPDmessageService::Flag::f_post
|
const auto reply = PrepareLogReply(data.vreply_to());
|
||||||
| MTPDmessageService::Flag::f_reply_to
|
const auto removeFlags = Flag::f_out
|
||||||
| MTPDmessageService::Flag::f_reactions_are_possible
|
| Flag::f_post
|
||||||
| MTPDmessageService::Flag::f_reactions
|
| Flag::f_reactions_are_possible
|
||||||
| MTPDmessageService::Flag::f_ttl_period;
|
| Flag::f_reactions
|
||||||
|
| Flag::f_ttl_period
|
||||||
|
| (reply ? Flag() : Flag::f_reply_to);
|
||||||
return MTP_messageService(
|
return MTP_messageService(
|
||||||
MTP_flags(data.vflags().v & ~removeFlags),
|
MTP_flags(data.vflags().v & ~removeFlags),
|
||||||
data.vid(),
|
data.vid(),
|
||||||
data.vfrom_id() ? *data.vfrom_id() : MTPPeer(),
|
data.vfrom_id() ? *data.vfrom_id() : MTPPeer(),
|
||||||
data.vpeer_id(),
|
data.vpeer_id(),
|
||||||
MTPMessageReplyHeader(),
|
reply.value_or(MTPMessageReplyHeader()),
|
||||||
MTP_int(newDate),
|
MTP_int(newDate),
|
||||||
data.vaction(),
|
data.vaction(),
|
||||||
MTPMessageReactions(),
|
MTPMessageReactions(),
|
||||||
MTPint()); // ttl_period
|
MTPint()); // ttl_period
|
||||||
}, [&](const MTPDmessage &data) {
|
}, [&](const MTPDmessage &data) {
|
||||||
const auto removeFlags = MTPDmessage::Flag::f_out
|
using Flag = MTPDmessage::Flag;
|
||||||
| MTPDmessage::Flag::f_post
|
const auto reply = PrepareLogReply(data.vreply_to());
|
||||||
| MTPDmessage::Flag::f_reply_to
|
const auto removeFlags = Flag::f_out
|
||||||
| MTPDmessage::Flag::f_replies
|
| Flag::f_post
|
||||||
| MTPDmessage::Flag::f_edit_date
|
| (reply ? Flag() : Flag::f_reply_to)
|
||||||
| MTPDmessage::Flag::f_grouped_id
|
| Flag::f_replies
|
||||||
| MTPDmessage::Flag::f_views
|
| Flag::f_edit_date
|
||||||
| MTPDmessage::Flag::f_forwards
|
| Flag::f_grouped_id
|
||||||
//| MTPDmessage::Flag::f_reactions
|
| Flag::f_views
|
||||||
| MTPDmessage::Flag::f_restriction_reason
|
| Flag::f_forwards
|
||||||
| MTPDmessage::Flag::f_ttl_period
|
//| Flag::f_reactions
|
||||||
| MTPDmessage::Flag::f_factcheck
|
| Flag::f_restriction_reason
|
||||||
| MTPDmessage::Flag::f_report_delivery_until_date;
|
| Flag::f_ttl_period
|
||||||
|
| Flag::f_factcheck
|
||||||
|
| Flag::f_report_delivery_until_date;
|
||||||
return MTP_message(
|
return MTP_message(
|
||||||
MTP_flags(data.vflags().v & ~removeFlags),
|
MTP_flags(data.vflags().v & ~removeFlags),
|
||||||
data.vid(),
|
data.vid(),
|
||||||
|
@ -127,7 +171,7 @@ MTPMessage PrepareLogMessage(const MTPMessage &message, TimeId newDate) {
|
||||||
data.vfwd_from() ? *data.vfwd_from() : MTPMessageFwdHeader(),
|
data.vfwd_from() ? *data.vfwd_from() : MTPMessageFwdHeader(),
|
||||||
MTP_long(data.vvia_bot_id().value_or_empty()),
|
MTP_long(data.vvia_bot_id().value_or_empty()),
|
||||||
MTP_long(data.vvia_business_bot_id().value_or_empty()),
|
MTP_long(data.vvia_business_bot_id().value_or_empty()),
|
||||||
MTPMessageReplyHeader(),
|
reply.value_or(MTPMessageReplyHeader()),
|
||||||
MTP_int(newDate),
|
MTP_int(newDate),
|
||||||
data.vmessage(),
|
data.vmessage(),
|
||||||
data.vmedia() ? *data.vmedia() : MTPMessageMedia(),
|
data.vmedia() ? *data.vmedia() : MTPMessageMedia(),
|
||||||
|
|
Loading…
Add table
Reference in a new issue