Fix forwarded names in saved messages export.

This commit is contained in:
John Preston 2018-06-28 18:25:21 +01:00
parent efb3e92525
commit b0baf75fdd
5 changed files with 19 additions and 4 deletions

View File

@ -873,13 +873,18 @@ Message ParseMessage(
[](const MTPDmessageFwdHeader &data) { [](const MTPDmessageFwdHeader &data) {
if (data.has_channel_id()) { if (data.has_channel_id()) {
return ChatPeerId(data.vchannel_id.v); return ChatPeerId(data.vchannel_id.v);
} else if (data.has_saved_from_peer()) {
return ParsePeerId(data.vsaved_from_peer);
} else if (data.has_from_id()) { } else if (data.has_from_id()) {
return UserPeerId(data.vfrom_id.v); return UserPeerId(data.vfrom_id.v);
} }
return PeerId(0); return PeerId(0);
}); });
result.savedFromChatId = data.vfwd_from.match(
[](const MTPDmessageFwdHeader &data) {
if (data.has_saved_from_peer()) {
return ParsePeerId(data.vsaved_from_peer);
}
return PeerId(0);
});
} }
if (data.has_post_author()) { if (data.has_post_author()) {
result.signature = ParseString(data.vpost_author); result.signature = ParseString(data.vpost_author);
@ -893,8 +898,8 @@ Message ParseMessage(
if (data.has_media()) { if (data.has_media()) {
context.botId = (result.viaBotId context.botId = (result.viaBotId
? result.viaBotId ? result.viaBotId
: result.forwardedFromId : IsUserPeerId(result.forwardedFromId)
? result.forwardedFromId ? BarePeerId(result.forwardedFromId)
: result.fromId); : result.fromId);
result.media = ParseMedia( result.media = ParseMedia(
context, context,

View File

@ -451,6 +451,7 @@ struct Message {
TimeId edited = 0; TimeId edited = 0;
int32 fromId = 0; int32 fromId = 0;
PeerId forwardedFromId = 0; PeerId forwardedFromId = 0;
PeerId savedFromChatId = 0;
Utf8String signature; Utf8String signature;
int32 viaBotId = 0; int32 viaBotId = 0;
int32 replyToMsgId = 0; int32 replyToMsgId = 0;

View File

@ -440,6 +440,9 @@ QByteArray SerializeMessage(
if (message.forwardedFromId) { if (message.forwardedFromId) {
push("Forwarded from", wrapPeerName(message.forwardedFromId)); push("Forwarded from", wrapPeerName(message.forwardedFromId));
} }
if (message.savedFromChatId) {
push("Saved from", wrapPeerName(message.savedFromChatId));
}
pushReplyToMsgId(); pushReplyToMsgId();
if (message.viaBotId) { if (message.viaBotId) {
push("Via", user(message.viaBotId).username); push("Via", user(message.viaBotId).username);

View File

@ -468,6 +468,9 @@ QByteArray SerializeMessage(
"forwarded_from", "forwarded_from",
wrapPeerName(message.forwardedFromId)); wrapPeerName(message.forwardedFromId));
} }
if (message.savedFromChatId) {
pushBare("saved_from", wrapPeerName(message.savedFromChatId));
}
pushReplyToMsgId(); pushReplyToMsgId();
if (message.viaBotId) { if (message.viaBotId) {
const auto username = FormatUsername( const auto username = FormatUsername(

View File

@ -340,6 +340,9 @@ QByteArray SerializeMessage(
if (message.forwardedFromId) { if (message.forwardedFromId) {
push("Forwarded from", wrapPeerName(message.forwardedFromId)); push("Forwarded from", wrapPeerName(message.forwardedFromId));
} }
if (message.savedFromChatId) {
push("Saved from", wrapPeerName(message.savedFromChatId));
}
pushReplyToMsgId(); pushReplyToMsgId();
if (message.viaBotId) { if (message.viaBotId) {
push("Via", user(message.viaBotId).username); push("Via", user(message.viaBotId).username);