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) {
if (data.has_channel_id()) {
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()) {
return UserPeerId(data.vfrom_id.v);
}
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()) {
result.signature = ParseString(data.vpost_author);
@ -893,8 +898,8 @@ Message ParseMessage(
if (data.has_media()) {
context.botId = (result.viaBotId
? result.viaBotId
: result.forwardedFromId
? result.forwardedFromId
: IsUserPeerId(result.forwardedFromId)
? BarePeerId(result.forwardedFromId)
: result.fromId);
result.media = ParseMedia(
context,

View file

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

View file

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

View file

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

View file

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