From d68ba754572a5092d026224f6a4012e037cabb3b Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 29 Aug 2024 12:01:52 +0300 Subject: [PATCH] Improved process of giveaway messages for export to JSON. --- .../export/output/export_output_json.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/export/output/export_output_json.cpp b/Telegram/SourceFiles/export/output/export_output_json.cpp index 38d687ab1..d02e24b56 100644 --- a/Telegram/SourceFiles/export/output/export_output_json.cpp +++ b/Telegram/SourceFiles/export/output/export_output_json.cpp @@ -784,7 +784,7 @@ QByteArray SerializeMessage( { "answers", serialized } })); }, [&](const GiveawayStart &data) { - context.nesting.push_back(Context::kObject); + context.nesting.push_back(Context::kArray); const auto channels = ranges::views::all( data.channels ) | ranges::views::transform([&](ChannelId id) { @@ -793,11 +793,26 @@ QByteArray SerializeMessage( const auto serialized = SerializeArray(context, channels); context.nesting.pop_back(); - push("giveaway_information", SerializeObject(context, { + context.nesting.push_back(Context::kArray); + const auto countries = ranges::views::all( + data.countries + ) | ranges::views::transform([&](const QString &code) { + return SerializeString(code.toUtf8()); + }) | ranges::to_vector; + const auto serializedCountries = SerializeArray(context, countries); + context.nesting.pop_back(); + + const auto additionalPrize = data.additionalPrize.toUtf8(); + + pushBare("giveaway_information", SerializeObject(context, { { "quantity", NumberToString(data.quantity) }, { "months", NumberToString(data.months) }, { "until_date", SerializeDate(data.untilDate) }, { "channels", serialized }, + { "countries", serializedCountries }, + { "additional_prize", SerializeString(additionalPrize) }, + { "stars", NumberToString(data.credits) }, + { "is_only_new_subscribers", (!data.all) ? "true" : "false" }, })); }, [&](const GiveawayResults &data) { }, [&](const PaidMedia &data) {