Skip to content

Commit e90c6d8

Browse files
committed
Export complete rich messages with all media.
1 parent 15c868e commit e90c6d8

5 files changed

Lines changed: 1064 additions & 221 deletions

File tree

‎Telegram/SourceFiles/export/data/export_data_types.cpp‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,7 @@ RichText ParseRichText(const MTPRichText &text) {
433433
result.type = Type::CustomEmoji;
434434
result.text = ParseString(data.valt());
435435
result.id = uint64(data.vdocument_id().v);
436+
result.customEmojiData = NumberToString(result.id);
436437
return result;
437438
}, [](const MTPDtextSpoiler &data) {
438439
return ParseRichTextWrapper(Type::Spoiler, data.vtext());
@@ -980,7 +981,7 @@ std::vector<RichBlock> ParseRichBlocks(
980981
return result;
981982
}
982983

983-
RichMessage ParseRichMessage(
984+
RichMessage ParseRichMessageRoot(
984985
ParseMediaContext &context,
985986
const MTPRichMessage &message,
986987
const QString &mediaFolder,
@@ -1014,6 +1015,14 @@ RichMessage ParseRichMessage(
10141015

10151016
} // namespace
10161017

1018+
RichMessage ParseRichMessage(
1019+
ParseMediaContext &context,
1020+
const MTPRichMessage &data,
1021+
const QString &folder,
1022+
TimeId date) {
1023+
return ParseRichMessageRoot(context, data, folder, date);
1024+
}
1025+
10171026
Utf8String Reaction::Id(const Reaction &reaction) {
10181027
auto id = Utf8String();
10191028
switch (reaction.type) {

‎Telegram/SourceFiles/export/data/export_data_types.h‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ struct RichText {
118118

119119
Utf8String text;
120120
Utf8String data;
121+
Utf8String customEmojiData;
121122
std::vector<RichText> children;
122123
std::vector<RichText> oldChildren;
123124
uint64 id = 0;
@@ -710,6 +711,12 @@ Document ParseDocument(
710711
const QString &suggestedFolder,
711712
TimeId date);
712713

714+
RichMessage ParseRichMessage(
715+
ParseMediaContext &context,
716+
const MTPRichMessage &data,
717+
const QString &folder,
718+
TimeId date);
719+
713720
Media ParseMedia(
714721
ParseMediaContext &context,
715722
const MTPMessageMedia &data,
@@ -1204,6 +1211,7 @@ struct FileOrigin {
12041211
int32 messageId = 0;
12051212
int32 storyId = 0;
12061213
uint64 customEmojiId = 0;
1214+
bool richMessage : 1 = false;
12071215
};
12081216

12091217
struct Story {

0 commit comments

Comments
 (0)