From 36141a9df9112b649c6f40e1ae96e7cca5a35297 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 29 Aug 2024 12:12:07 +0300 Subject: [PATCH] Added support of giveaway results messages to export to JSON. --- .../export/output/export_output_json.cpp | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/Telegram/SourceFiles/export/output/export_output_json.cpp b/Telegram/SourceFiles/export/output/export_output_json.cpp index d02e24b56..05b7d232a 100644 --- a/Telegram/SourceFiles/export/output/export_output_json.cpp +++ b/Telegram/SourceFiles/export/output/export_output_json.cpp @@ -815,6 +815,32 @@ QByteArray SerializeMessage( { "is_only_new_subscribers", (!data.all) ? "true" : "false" }, })); }, [&](const GiveawayResults &data) { + context.nesting.push_back(Context::kArray); + const auto winners = ranges::views::all( + data.winners + ) | ranges::views::transform([&](PeerId id) { + return NumberToString(id.value); + }) | ranges::to_vector; + const auto serialized = SerializeArray(context, winners); + context.nesting.pop_back(); + + const auto additionalPrize = data.additionalPrize.toUtf8(); + const auto peersCount = data.additionalPeersCount; + + pushBare("giveaway_results", SerializeObject(context, { + { "channel", NumberToString(data.channel.bare) }, + { "winners", serialized }, + { "additional_prize", SerializeString(additionalPrize) }, + { "until_date", SerializeDate(data.untilDate) }, + { "launch_message_id", NumberToString(data.launchId) }, + { "additional_peers_count", NumberToString(peersCount) }, + { "winners_count", NumberToString(data.winnersCount) }, + { "unclaimed_count", NumberToString(data.unclaimedCount) }, + { "months", NumberToString(data.months) }, + { "stars", NumberToString(data.credits) }, + { "is_refunded", data.refunded ? "true" : "false" }, + { "is_only_new_subscribers", (!data.all) ? "true" : "false" }, + })); }, [&](const PaidMedia &data) { push("paid_stars_amount", data.stars); }, [](const UnsupportedMedia &data) {