Added support of service actions for premium gifts to export.

This commit is contained in:
23rd 2022-07-14 21:53:49 +03:00 committed by John Preston
parent e84f5aaa3d
commit b295a9eeb1
4 changed files with 31 additions and 2 deletions

View File

@ -1146,7 +1146,12 @@ ServiceAction ParseServiceAction(
content.text = ParseString(data.vtext());
result.content = content;
}, [&](const MTPDmessageActionGiftPremium &data) {
// #TODO gifts
auto content = ActionGiftPremium();
content.cost = Ui::FillAmountAndCurrency(
data.vamount().v,
qs(data.vcurrency())).toUtf8();
content.months = data.vmonths().v;
result.content = content;
}, [](const MTPDmessageActionEmpty &data) {});
return result;
}

View File

@ -488,6 +488,11 @@ struct ActionWebViewDataSent {
Utf8String text;
};
struct ActionGiftPremium {
Utf8String cost;
int months;
};
struct ServiceAction {
std::variant<
v::null_t,
@ -519,7 +524,8 @@ struct ServiceAction {
ActionGroupCallScheduled,
ActionSetChatTheme,
ActionChatJoinedByRequest,
ActionWebViewDataSent> content;
ActionWebViewDataSent,
ActionGiftPremium> content;
};
ServiceAction ParseServiceAction(

View File

@ -1128,6 +1128,15 @@ auto HtmlWriter::Wrap::pushMessage(
return "You have just successfully transferred data from the &laquo;"
+ SerializeString(data.text)
+ "&raquo; button to the bot";
}, [&](const ActionGiftPremium &data) {
if (!data.months || data.cost.isEmpty()) {
return (serviceFrom + " sent you a gift.");
}
return (serviceFrom
+ " sent you a gift for "
+ data.cost
+ ": Telegram Premium for "
+ QString::number(data.months).toUtf8() + " months.");
}, [](v::null_t) { return QByteArray(); });
if (!serviceText.isEmpty()) {

View File

@ -546,6 +546,15 @@ QByteArray SerializeMessage(
}, [&](const ActionWebViewDataSent &data) {
pushAction("send_webview_data");
push("text", data.text);
}, [&](const ActionGiftPremium &data) {
pushActor();
pushAction("send_premium_gift");
if (!data.cost.isEmpty()) {
push("cost", data.cost);
}
if (data.months) {
push("months", data.months);
}
}, [](v::null_t) {});
if (v::is_null(message.action.content)) {