diff --git a/Telegram/SourceFiles/export/data/export_data_types.cpp b/Telegram/SourceFiles/export/data/export_data_types.cpp index 0301f1ce4..544a42550 100644 --- a/Telegram/SourceFiles/export/data/export_data_types.cpp +++ b/Telegram/SourceFiles/export/data/export_data_types.cpp @@ -920,6 +920,7 @@ StoriesSlice ParseStoriesSlice( auto content = photo ? ParsePhoto(*photo, suggestedPath) : Photo(); + content.spoilered = data.is_spoiler(); media.content = content; }, [&](const MTPDmessageMediaDocument &data) { const auto document = data.vdocument(); @@ -948,6 +949,7 @@ StoriesSlice ParseStoriesSlice( date, extension); content.thumb.file.suggestedPath = path + "_thumb.jpg"; + content.spoilered = data.is_spoiler(); media.content = content; }, [&](const auto &data) { media.content = UnsupportedMedia(); @@ -1329,6 +1331,7 @@ Media ParseMedia( + "photos/" + PreparePhotoFileName(++context.photos, date)) : Photo(); + content.spoilered = data.is_spoiler(); if (const auto ttl = data.vttl_seconds()) { result.ttl = ttl->v; content.image.file = File(); @@ -1349,6 +1352,7 @@ Media ParseMedia( result.ttl = ttl->v; content.file = File(); } + content.spoilered = data.is_spoiler(); result.content = content; }, [&](const MTPDmessageMediaWebPage &data) { // Ignore web pages. diff --git a/Telegram/SourceFiles/export/data/export_data_types.h b/Telegram/SourceFiles/export/data/export_data_types.h index 72e823d21..9417fefa9 100644 --- a/Telegram/SourceFiles/export/data/export_data_types.h +++ b/Telegram/SourceFiles/export/data/export_data_types.h @@ -119,6 +119,7 @@ uint8 ContactColorIndex(const ContactInfo &data); struct Photo { uint64 id = 0; TimeId date = 0; + bool spoilered = false; Image image; }; @@ -146,6 +147,7 @@ struct Document { bool isVoiceMessage = false; bool isVideoFile = false; bool isAudioFile = false; + bool spoilered = false; }; struct SharedContact { diff --git a/Telegram/SourceFiles/export/output/export_output_json.cpp b/Telegram/SourceFiles/export/output/export_output_json.cpp index 14fe04b34..4e2faafed 100644 --- a/Telegram/SourceFiles/export/output/export_output_json.cpp +++ b/Telegram/SourceFiles/export/output/export_output_json.cpp @@ -390,6 +390,11 @@ QByteArray SerializeMessage( push("height", image.height); } }; + const auto pushSpoiler = [&](const auto &media) { + if (media.spoilered) { + push("media_spoiler", true); + } + }; v::match(message.action.content, [&](const ActionChatCreate &data) { pushActor(); @@ -404,6 +409,7 @@ QByteArray SerializeMessage( pushActor(); pushAction("edit_group_photo"); pushPhoto(data.photo.image); + pushSpoiler(data.photo); }, [&](const ActionChatDeletePhoto &data) { pushActor(); pushAction("delete_group_photo"); @@ -587,6 +593,7 @@ QByteArray SerializeMessage( pushActor(); pushAction("suggest_profile_photo"); pushPhoto(data.photo.image); + pushSpoiler(data.photo); }, [&](const ActionRequestedPeer &data) { pushActor(); pushAction("requested_peer"); @@ -684,6 +691,7 @@ QByteArray SerializeMessage( v::match(message.media.content, [&](const Photo &photo) { pushPhoto(photo.image); + pushSpoiler(photo); pushTTL(); }, [&](const Document &data) { pushPath(data.file, "file"); @@ -718,6 +726,7 @@ QByteArray SerializeMessage( push("width", data.width); push("height", data.height); } + pushSpoiler(data); pushTTL(); }, [&](const SharedContact &data) { pushBare("contact_information", SerializeObject(context, {