Update API scheme to layer 182.

This commit is contained in:
John Preston 2024-06-14 09:38:35 +04:00
parent d993386756
commit fbbcc21198
13 changed files with 123 additions and 16 deletions

View file

@ -20,6 +20,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
namespace Api { namespace Api {
namespace { namespace {
constexpr auto kTransactionsLimit = 100;
[[nodiscard]] Data::CreditsHistoryEntry HistoryFromTL( [[nodiscard]] Data::CreditsHistoryEntry HistoryFromTL(
const MTPStarsTransaction &tl, const MTPStarsTransaction &tl,
not_null<PeerData*> peer) { not_null<PeerData*> peer) {
@ -152,7 +154,8 @@ void CreditsHistory::request(
_requestId = _api.request(MTPpayments_GetStarsTransactions( _requestId = _api.request(MTPpayments_GetStarsTransactions(
MTP_flags(_flags), MTP_flags(_flags),
_peer->isSelf() ? MTP_inputPeerSelf() : _peer->input, _peer->isSelf() ? MTP_inputPeerSelf() : _peer->input,
MTP_string(token) MTP_string(token),
MTP_int(kTransactionsLimit)
)).done([=](const MTPpayments_StarsStatus &result) { )).done([=](const MTPpayments_StarsStatus &result) {
_requestId = 0; _requestId = 0;
done(StatusFromTL(result, _peer)); done(StatusFromTL(result, _peer));

View file

@ -2165,7 +2165,8 @@ void ApiWrap::saveDraftsToCloud() {
entities, entities,
Data::WebPageForMTP( Data::WebPageForMTP(
cloudDraft->webpage, cloudDraft->webpage,
textWithTags.text.isEmpty()) textWithTags.text.isEmpty()),
MTP_long(0) // effect
)).done([=](const MTPBool &result, const MTP::Response &response) { )).done([=](const MTPBool &result, const MTP::Response &response) {
const auto requestId = response.requestId; const auto requestId = response.requestId;
history->finishSavingCloudDraft( history->finishSavingCloudDraft(

View file

@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "window/window_controller.h" #include "window/window_controller.h"
#include "window/window_session_controller.h" #include "window/window_session_controller.h"
#include "window/window_session_controller_link_info.h" #include "window/window_session_controller_link_info.h"
#include "styles/style_calls.h" // groupCallBoxLabel
#include "styles/style_layers.h" #include "styles/style_layers.h"
namespace { namespace {
@ -121,7 +122,10 @@ void HiddenUrlClickHandler::Open(QString url, QVariant context) {
} else { } else {
const auto parsedUrl = QUrl::fromUserInput(url); const auto parsedUrl = QUrl::fromUserInput(url);
if (UrlRequiresConfirmation(parsedUrl) && !base::IsCtrlPressed()) { if (UrlRequiresConfirmation(parsedUrl) && !base::IsCtrlPressed()) {
Core::App().hideMediaView(); const auto my = context.value<ClickHandlerContext>();
if (!my.show) {
Core::App().hideMediaView();
}
const auto displayed = parsedUrl.isValid() const auto displayed = parsedUrl.isValid()
? parsedUrl.toDisplayString() ? parsedUrl.toDisplayString()
: url; : url;
@ -130,7 +134,6 @@ void HiddenUrlClickHandler::Open(QString url, QVariant context) {
: parsedUrl.isValid() : parsedUrl.isValid()
? QString::fromUtf8(parsedUrl.toEncoded()) ? QString::fromUtf8(parsedUrl.toEncoded())
: ShowEncoded(displayed); : ShowEncoded(displayed);
const auto my = context.value<ClickHandlerContext>();
const auto controller = my.sessionWindow.get(); const auto controller = my.sessionWindow.get();
const auto use = controller const auto use = controller
? &controller->window() ? &controller->window()
@ -140,8 +143,11 @@ void HiddenUrlClickHandler::Open(QString url, QVariant context) {
.text = (tr::lng_open_this_link(tr::now)), .text = (tr::lng_open_this_link(tr::now)),
.confirmed = [=](Fn<void()> hide) { hide(); open(); }, .confirmed = [=](Fn<void()> hide) { hide(); open(); },
.confirmText = tr::lng_open_link(), .confirmText = tr::lng_open_link(),
.labelStyle = my.dark ? &st::groupCallBoxLabel : nullptr,
}); });
const auto &st = st::boxLabel; const auto &st = my.dark
? st::groupCallBoxLabel
: st::boxLabel;
box->addSkip(st.style.lineHeight - st::boxPadding.bottom()); box->addSkip(st.style.lineHeight - st::boxPadding.bottom());
const auto url = box->addRow( const auto url = box->addRow(
object_ptr<Ui::FlatLabel>(box, displayUrl, st)); object_ptr<Ui::FlatLabel>(box, displayUrl, st));
@ -190,6 +196,7 @@ void BotGameUrlClickHandler::onClick(ClickContext context) const {
_bot->name()), _bot->name()),
.confirmed = callback, .confirmed = callback,
.confirmText = tr::lng_allow_bot(), .confirmText = tr::lng_allow_bot(),
.labelStyle = my.dark ? &st::groupCallBoxLabel : nullptr,
})); }));
} }
} }

View file

@ -47,6 +47,7 @@ struct ClickHandlerContext {
bool skipBotAutoLogin = false; bool skipBotAutoLogin = false;
bool botStartAutoSubmit = false; bool botStartAutoSubmit = false;
bool ignoreIv = false; bool ignoreIv = false;
bool dark = false;
// Is filled from peer info. // Is filled from peer info.
PeerData *peer = nullptr; PeerData *peer = nullptr;
}; };

View file

@ -82,6 +82,7 @@ using UpdateFlag = StoryUpdate::Flag;
}); });
}, [&](const MTPDmediaAreaSuggestedReaction &data) { }, [&](const MTPDmediaAreaSuggestedReaction &data) {
}, [&](const MTPDmediaAreaChannelPost &data) { }, [&](const MTPDmediaAreaChannelPost &data) {
}, [&](const MTPDmediaAreaUrl &data) {
}, [&](const MTPDinputMediaAreaChannelPost &data) { }, [&](const MTPDinputMediaAreaChannelPost &data) {
LOG(("API Error: Unexpected inputMediaAreaChannelPost from API.")); LOG(("API Error: Unexpected inputMediaAreaChannelPost from API."));
}, [&](const MTPDinputMediaAreaVenue &data) { }, [&](const MTPDinputMediaAreaVenue &data) {
@ -103,6 +104,7 @@ using UpdateFlag = StoryUpdate::Flag;
.dark = data.is_dark(), .dark = data.is_dark(),
}); });
}, [&](const MTPDmediaAreaChannelPost &data) { }, [&](const MTPDmediaAreaChannelPost &data) {
}, [&](const MTPDmediaAreaUrl &data) {
}, [&](const MTPDinputMediaAreaChannelPost &data) { }, [&](const MTPDinputMediaAreaChannelPost &data) {
LOG(("API Error: Unexpected inputMediaAreaChannelPost from API.")); LOG(("API Error: Unexpected inputMediaAreaChannelPost from API."));
}, [&](const MTPDinputMediaAreaVenue &data) { }, [&](const MTPDinputMediaAreaVenue &data) {
@ -124,6 +126,27 @@ using UpdateFlag = StoryUpdate::Flag;
peerFromChannel(data.vchannel_id()), peerFromChannel(data.vchannel_id()),
data.vmsg_id().v), data.vmsg_id().v),
}); });
}, [&](const MTPDmediaAreaUrl &data) {
}, [&](const MTPDinputMediaAreaChannelPost &data) {
LOG(("API Error: Unexpected inputMediaAreaChannelPost from API."));
}, [&](const MTPDinputMediaAreaVenue &data) {
LOG(("API Error: Unexpected inputMediaAreaVenue from API."));
});
return result;
}
[[nodiscard]] auto ParseUrlArea(const MTPMediaArea &area)
-> std::optional<UrlArea> {
auto result = std::optional<UrlArea>();
area.match([&](const MTPDmediaAreaVenue &data) {
}, [&](const MTPDmediaAreaGeoPoint &data) {
}, [&](const MTPDmediaAreaSuggestedReaction &data) {
}, [&](const MTPDmediaAreaChannelPost &data) {
}, [&](const MTPDmediaAreaUrl &data) {
result.emplace(UrlArea{
.area = ParseArea(data.vcoordinates()),
.url = qs(data.vurl()),
});
}, [&](const MTPDinputMediaAreaChannelPost &data) { }, [&](const MTPDinputMediaAreaChannelPost &data) {
LOG(("API Error: Unexpected inputMediaAreaChannelPost from API.")); LOG(("API Error: Unexpected inputMediaAreaChannelPost from API."));
}, [&](const MTPDinputMediaAreaVenue &data) { }, [&](const MTPDinputMediaAreaVenue &data) {
@ -662,6 +685,10 @@ const std::vector<ChannelPost> &Story::channelPosts() const {
return _channelPosts; return _channelPosts;
} }
const std::vector<UrlArea> &Story::urlAreas() const {
return _urlAreas;
}
void Story::applyChanges( void Story::applyChanges(
StoryMedia media, StoryMedia media,
const MTPDstoryItem &data, const MTPDstoryItem &data,
@ -765,6 +792,7 @@ void Story::applyFields(
auto locations = std::vector<StoryLocation>(); auto locations = std::vector<StoryLocation>();
auto suggestedReactions = std::vector<SuggestedReaction>(); auto suggestedReactions = std::vector<SuggestedReaction>();
auto channelPosts = std::vector<ChannelPost>(); auto channelPosts = std::vector<ChannelPost>();
auto urlAreas = std::vector<UrlArea>();
if (const auto areas = data.vmedia_areas()) { if (const auto areas = data.vmedia_areas()) {
for (const auto &area : areas->v) { for (const auto &area : areas->v) {
if (const auto location = ParseLocation(area)) { if (const auto location = ParseLocation(area)) {
@ -778,6 +806,8 @@ void Story::applyFields(
suggestedReactions.push_back(*reaction); suggestedReactions.push_back(*reaction);
} else if (auto post = ParseChannelPost(area)) { } else if (auto post = ParseChannelPost(area)) {
channelPosts.push_back(*post); channelPosts.push_back(*post);
} else if (auto url = ParseUrlArea(area)) {
urlAreas.push_back(*url);
} }
} }
} }
@ -790,6 +820,7 @@ void Story::applyFields(
const auto suggestedReactionsChanged const auto suggestedReactionsChanged
= (_suggestedReactions != suggestedReactions); = (_suggestedReactions != suggestedReactions);
const auto channelPostsChanged = (_channelPosts != channelPosts); const auto channelPostsChanged = (_channelPosts != channelPosts);
const auto urlAreasChanged = (_urlAreas != urlAreas);
const auto reactionChanged = (_sentReactionId != reaction); const auto reactionChanged = (_sentReactionId != reaction);
_out = out; _out = out;
@ -815,6 +846,9 @@ void Story::applyFields(
if (channelPostsChanged) { if (channelPostsChanged) {
_channelPosts = std::move(channelPosts); _channelPosts = std::move(channelPosts);
} }
if (urlAreasChanged) {
_urlAreas = std::move(urlAreas);
}
if (reactionChanged) { if (reactionChanged) {
_sentReactionId = reaction; _sentReactionId = reaction;
} }
@ -824,7 +858,8 @@ void Story::applyFields(
|| captionChanged || captionChanged
|| mediaChanged || mediaChanged
|| locationsChanged || locationsChanged
|| channelPostsChanged; || channelPostsChanged
|| urlAreasChanged;
const auto reactionsChanged = reactionChanged const auto reactionsChanged = reactionChanged
|| suggestedReactionsChanged; || suggestedReactionsChanged;
if (!initial && (changed || reactionsChanged)) { if (!initial && (changed || reactionsChanged)) {

View file

@ -122,6 +122,15 @@ struct ChannelPost {
const ChannelPost &) = default; const ChannelPost &) = default;
}; };
struct UrlArea {
StoryArea area;
QString url;
friend inline bool operator==(
const UrlArea &,
const UrlArea &) = default;
};
class Story final { class Story final {
public: public:
Story( Story(
@ -197,6 +206,8 @@ public:
-> const std::vector<SuggestedReaction> &; -> const std::vector<SuggestedReaction> &;
[[nodiscard]] auto channelPosts() const [[nodiscard]] auto channelPosts() const
-> const std::vector<ChannelPost> &; -> const std::vector<ChannelPost> &;
[[nodiscard]] auto urlAreas() const
-> const std::vector<UrlArea> &;
void applyChanges( void applyChanges(
StoryMedia media, StoryMedia media,
@ -247,6 +258,7 @@ private:
std::vector<StoryLocation> _locations; std::vector<StoryLocation> _locations;
std::vector<SuggestedReaction> _suggestedReactions; std::vector<SuggestedReaction> _suggestedReactions;
std::vector<ChannelPost> _channelPosts; std::vector<ChannelPost> _channelPosts;
std::vector<UrlArea> _urlAreas;
StoryViews _views; StoryViews _views;
StoryViews _channelReactions; StoryViews _channelReactions;
const TimeId _date = 0; const TimeId _date = 0;

View file

@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "boxes/peers/prepare_short_info_box.h" #include "boxes/peers/prepare_short_info_box.h"
#include "chat_helpers/compose/compose_show.h" #include "chat_helpers/compose/compose_show.h"
#include "core/application.h" #include "core/application.h"
#include "core/click_handler_types.h"
#include "core/core_settings.h" #include "core/core_settings.h"
#include "core/update_checker.h" #include "core/update_checker.h"
#include "data/data_changes.h" #include "data/data_changes.h"
@ -1046,6 +1047,9 @@ void Controller::updateAreas(Data::Story *story) {
const auto &channelPosts = story const auto &channelPosts = story
? story->channelPosts() ? story->channelPosts()
: std::vector<Data::ChannelPost>(); : std::vector<Data::ChannelPost>();
const auto &urlAreas = story
? story->urlAreas()
: std::vector<Data::UrlArea>();
if (_locations != locations) { if (_locations != locations) {
_locations = locations; _locations = locations;
_areas.clear(); _areas.clear();
@ -1054,6 +1058,10 @@ void Controller::updateAreas(Data::Story *story) {
_channelPosts = channelPosts; _channelPosts = channelPosts;
_areas.clear(); _areas.clear();
} }
if (_urlAreas != urlAreas) {
_urlAreas = urlAreas;
_areas.clear();
}
const auto reactionsCount = int(suggestedReactions.size()); const auto reactionsCount = int(suggestedReactions.size());
if (_suggestedReactions.size() == reactionsCount && !_areas.empty()) { if (_suggestedReactions.size() == reactionsCount && !_areas.empty()) {
for (auto i = 0; i != reactionsCount; ++i) { for (auto i = 0; i != reactionsCount; ++i) {
@ -1197,13 +1205,15 @@ ClickHandlerPtr Controller::lookupAreaHandler(QPoint point) const {
if (!layout if (!layout
|| (_locations.empty() || (_locations.empty()
&& _suggestedReactions.empty() && _suggestedReactions.empty()
&& _channelPosts.empty())) { && _channelPosts.empty()
&& _urlAreas.empty())) {
return nullptr; return nullptr;
} else if (_areas.empty()) { } else if (_areas.empty()) {
const auto now = story(); const auto now = story();
_areas.reserve(_locations.size() _areas.reserve(_locations.size()
+ _suggestedReactions.size() + _suggestedReactions.size()
+ _channelPosts.size()); + _channelPosts.size()
+ _urlAreas.size());
for (const auto &location : _locations) { for (const auto &location : _locations) {
_areas.push_back({ _areas.push_back({
.original = location.area.geometry, .original = location.area.geometry,
@ -1244,6 +1254,13 @@ ClickHandlerPtr Controller::lookupAreaHandler(QPoint point) const {
}); });
} }
} }
for (const auto &url : _urlAreas) {
_areas.push_back({
.original = url.area.geometry,
.rotation = url.area.rotation,
.handler = std::make_shared<HiddenUrlClickHandler>(url.url),
});
}
rebuildActiveAreas(*layout); rebuildActiveAreas(*layout);
} }

View file

@ -302,6 +302,7 @@ private:
std::vector<Data::StoryLocation> _locations; std::vector<Data::StoryLocation> _locations;
std::vector<Data::SuggestedReaction> _suggestedReactions; std::vector<Data::SuggestedReaction> _suggestedReactions;
std::vector<Data::ChannelPost> _channelPosts; std::vector<Data::ChannelPost> _channelPosts;
std::vector<Data::UrlArea> _urlAreas;
mutable std::vector<ActiveArea> _areas; mutable std::vector<ActiveArea> _areas;
std::vector<CachedSource> _cachedSourcesList; std::vector<CachedSource> _cachedSourcesList;

View file

@ -170,6 +170,10 @@ void View::showFullCaption() {
_controller->showFullCaption(); _controller->showFullCaption();
} }
std::shared_ptr<ChatHelpers::Show> View::uiShow() const {
return _controller->uiShow();
}
rpl::lifetime &View::lifetime() { rpl::lifetime &View::lifetime() {
return _controller->lifetime(); return _controller->lifetime();
} }

View file

@ -9,6 +9,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
class ClickHandlerHost; class ClickHandlerHost;
namespace ChatHelpers {
class Show;
} // namespace ChatHelpers
namespace Data { namespace Data {
class Story; class Story;
struct StoriesContext; struct StoriesContext;
@ -125,6 +129,8 @@ public:
not_null<Ui::PopupMenu*> menu, not_null<Ui::PopupMenu*> menu,
QPoint desiredPosition); QPoint desiredPosition);
[[nodiscard]] std::shared_ptr<ChatHelpers::Show> uiShow() const;
[[nodiscard]] rpl::lifetime &lifetime(); [[nodiscard]] rpl::lifetime &lifetime();
private: private:

View file

@ -5840,6 +5840,8 @@ void OverlayWidget::handleMouseRelease(
QVariant::fromValue(ClickHandlerContext{ QVariant::fromValue(ClickHandlerContext{
.itemId = _message ? _message->fullId() : FullMsgId(), .itemId = _message ? _message->fullId() : FullMsgId(),
.sessionWindow = base::make_weak(findWindow()), .sessionWindow = base::make_weak(findWindow()),
.show = _stories ? _stories->uiShow() : nullptr,
.dark = true,
}) })
}); });
return; return;

View file

@ -415,6 +415,8 @@ updateBotDeleteBusinessMessage#a02a982e connection_id:string peer:Peer messages:
updateNewStoryReaction#1824e40b story_id:int peer:Peer reaction:Reaction = Update; updateNewStoryReaction#1824e40b story_id:int peer:Peer reaction:Reaction = Update;
updateBroadcastRevenueTransactions#dfd961f5 peer:Peer balances:BroadcastRevenueBalances = Update; updateBroadcastRevenueTransactions#dfd961f5 peer:Peer balances:BroadcastRevenueBalances = Update;
updateStarsBalance#fb85198 balance:long = Update; updateStarsBalance#fb85198 balance:long = Update;
updateBusinessBotCallbackQuery#1ea2fda7 flags:# query_id:long user_id:long connection_id:string message:Message reply_to_message:flags.2?Message chat_instance:long data:flags.0?bytes = Update;
updateStarsRevenueStatus#a584b019 peer:Peer status:StarsRevenueStatus = Update;
updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
@ -792,7 +794,7 @@ contacts.topPeers#70b772a8 categories:Vector<TopPeerCategoryPeers> chats:Vector<
contacts.topPeersDisabled#b52c939d = contacts.TopPeers; contacts.topPeersDisabled#b52c939d = contacts.TopPeers;
draftMessageEmpty#1b0c841a flags:# date:flags.0?int = DraftMessage; draftMessageEmpty#1b0c841a flags:# date:flags.0?int = DraftMessage;
draftMessage#3fccf7ef flags:# no_webpage:flags.1?true invert_media:flags.6?true reply_to:flags.4?InputReplyTo message:string entities:flags.3?Vector<MessageEntity> media:flags.5?InputMedia date:int = DraftMessage; draftMessage#2d65321f flags:# no_webpage:flags.1?true invert_media:flags.6?true reply_to:flags.4?InputReplyTo message:string entities:flags.3?Vector<MessageEntity> media:flags.5?InputMedia date:int effect:flags.7?long = DraftMessage;
messages.featuredStickersNotModified#c6dc0c66 count:int = messages.FeaturedStickers; messages.featuredStickersNotModified#c6dc0c66 count:int = messages.FeaturedStickers;
messages.featuredStickers#be382906 flags:# premium:flags.0?true hash:long count:int sets:Vector<StickerSetCovered> unread:Vector<long> = messages.FeaturedStickers; messages.featuredStickers#be382906 flags:# premium:flags.0?true hash:long count:int sets:Vector<StickerSetCovered> unread:Vector<long> = messages.FeaturedStickers;
@ -1603,14 +1605,15 @@ exportedStoryLink#3fc9053b link:string = ExportedStoryLink;
storiesStealthMode#712e27fd flags:# active_until_date:flags.0?int cooldown_until_date:flags.1?int = StoriesStealthMode; storiesStealthMode#712e27fd flags:# active_until_date:flags.0?int cooldown_until_date:flags.1?int = StoriesStealthMode;
mediaAreaCoordinates#3d1ea4e x:double y:double w:double h:double rotation:double = MediaAreaCoordinates; mediaAreaCoordinates#cfc9e002 flags:# x:double y:double w:double h:double rotation:double radius:flags.0?double = MediaAreaCoordinates;
mediaAreaVenue#be82db9c coordinates:MediaAreaCoordinates geo:GeoPoint title:string address:string provider:string venue_id:string venue_type:string = MediaArea; mediaAreaVenue#be82db9c coordinates:MediaAreaCoordinates geo:GeoPoint title:string address:string provider:string venue_id:string venue_type:string = MediaArea;
inputMediaAreaVenue#b282217f coordinates:MediaAreaCoordinates query_id:long result_id:string = MediaArea; inputMediaAreaVenue#b282217f coordinates:MediaAreaCoordinates query_id:long result_id:string = MediaArea;
mediaAreaGeoPoint#df8b3b22 coordinates:MediaAreaCoordinates geo:GeoPoint = MediaArea; mediaAreaGeoPoint#cad5452d flags:# coordinates:MediaAreaCoordinates geo:GeoPoint address:flags.0?GeoPointAddress = MediaArea;
mediaAreaSuggestedReaction#14455871 flags:# dark:flags.0?true flipped:flags.1?true coordinates:MediaAreaCoordinates reaction:Reaction = MediaArea; mediaAreaSuggestedReaction#14455871 flags:# dark:flags.0?true flipped:flags.1?true coordinates:MediaAreaCoordinates reaction:Reaction = MediaArea;
mediaAreaChannelPost#770416af coordinates:MediaAreaCoordinates channel_id:long msg_id:int = MediaArea; mediaAreaChannelPost#770416af coordinates:MediaAreaCoordinates channel_id:long msg_id:int = MediaArea;
inputMediaAreaChannelPost#2271f2bf coordinates:MediaAreaCoordinates channel:InputChannel msg_id:int = MediaArea; inputMediaAreaChannelPost#2271f2bf coordinates:MediaAreaCoordinates channel:InputChannel msg_id:int = MediaArea;
mediaAreaUrl#37381085 coordinates:MediaAreaCoordinates url:string = MediaArea;
peerStories#9a35e999 flags:# peer:Peer max_read_id:flags.0?int stories:Vector<StoryItem> = PeerStories; peerStories#9a35e999 flags:# peer:Peer max_read_id:flags.0?int stories:Vector<StoryItem> = PeerStories;
@ -1803,10 +1806,22 @@ starsTransactionPeer#d80da15d peer:Peer = StarsTransactionPeer;
starsTopupOption#bd915c0 flags:# extended:flags.1?true stars:long store_product:flags.0?string currency:string amount:long = StarsTopupOption; starsTopupOption#bd915c0 flags:# extended:flags.1?true stars:long store_product:flags.0?string currency:string amount:long = StarsTopupOption;
starsTransaction#cc7079b2 flags:# refund:flags.3?true id:string stars:long date:int peer:StarsTransactionPeer title:flags.0?string description:flags.1?string photo:flags.2?WebDocument = StarsTransaction; starsTransaction#aa00c898 flags:# refund:flags.3?true pending:flags.4?true failed:flags.6?true id:string stars:long date:int peer:StarsTransactionPeer title:flags.0?string description:flags.1?string photo:flags.2?WebDocument transaction_date:flags.5?int transaction_url:flags.5?string = StarsTransaction;
payments.starsStatus#8cf4ee60 flags:# balance:long history:Vector<StarsTransaction> next_offset:flags.0?string chats:Vector<Chat> users:Vector<User> = payments.StarsStatus; payments.starsStatus#8cf4ee60 flags:# balance:long history:Vector<StarsTransaction> next_offset:flags.0?string chats:Vector<Chat> users:Vector<User> = payments.StarsStatus;
foundStory#e87acbc0 peer:Peer story:StoryItem = FoundStory;
stories.foundStories#e2de7737 flags:# count:int stories:Vector<FoundStory> next_offset:flags.0?string chats:Vector<Chat> users:Vector<User> = stories.FoundStories;
geoPointAddress#de4c5d93 flags:# country_iso2:string state:flags.0?string city:flags.1?string street:flags.2?string = GeoPointAddress;
starsRevenueStatus#79342946 flags:# withdrawal_enabled:flags.0?true current_balance:long available_balance:long overall_revenue:long next_withdrawal_at:flags.1?int = StarsRevenueStatus;
payments.starsRevenueStats#c92bb73b revenue_graph:StatsGraph status:StarsRevenueStatus usd_rate:double = payments.StarsRevenueStats;
payments.starsRevenueWithdrawalUrl#1dab80b7 url:string = payments.StarsRevenueWithdrawalUrl;
---functions--- ---functions---
invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
@ -2050,7 +2065,7 @@ messages.editInlineBotMessage#83557dba flags:# no_webpage:flags.1?true invert_me
messages.getBotCallbackAnswer#9342ca07 flags:# game:flags.1?true peer:InputPeer msg_id:int data:flags.0?bytes password:flags.2?InputCheckPasswordSRP = messages.BotCallbackAnswer; messages.getBotCallbackAnswer#9342ca07 flags:# game:flags.1?true peer:InputPeer msg_id:int data:flags.0?bytes password:flags.2?InputCheckPasswordSRP = messages.BotCallbackAnswer;
messages.setBotCallbackAnswer#d58f130a flags:# alert:flags.1?true query_id:long message:flags.0?string url:flags.2?string cache_time:int = Bool; messages.setBotCallbackAnswer#d58f130a flags:# alert:flags.1?true query_id:long message:flags.0?string url:flags.2?string cache_time:int = Bool;
messages.getPeerDialogs#e470bcfd peers:Vector<InputDialogPeer> = messages.PeerDialogs; messages.getPeerDialogs#e470bcfd peers:Vector<InputDialogPeer> = messages.PeerDialogs;
messages.saveDraft#7ff3b806 flags:# no_webpage:flags.1?true invert_media:flags.6?true reply_to:flags.4?InputReplyTo peer:InputPeer message:string entities:flags.3?Vector<MessageEntity> media:flags.5?InputMedia = Bool; messages.saveDraft#d372c5ce flags:# no_webpage:flags.1?true invert_media:flags.6?true reply_to:flags.4?InputReplyTo peer:InputPeer message:string entities:flags.3?Vector<MessageEntity> media:flags.5?InputMedia effect:flags.7?long = Bool;
messages.getAllDrafts#6a3f8d65 = Updates; messages.getAllDrafts#6a3f8d65 = Updates;
messages.getFeaturedStickers#64780b14 hash:long = messages.FeaturedStickers; messages.getFeaturedStickers#64780b14 hash:long = messages.FeaturedStickers;
messages.readFeaturedStickers#5b118126 id:Vector<long> = Bool; messages.readFeaturedStickers#5b118126 id:Vector<long> = Bool;
@ -2349,9 +2364,11 @@ payments.getGiveawayInfo#f4239425 peer:InputPeer msg_id:int = payments.GiveawayI
payments.launchPrepaidGiveaway#5ff58f20 peer:InputPeer giveaway_id:long purpose:InputStorePaymentPurpose = Updates; payments.launchPrepaidGiveaway#5ff58f20 peer:InputPeer giveaway_id:long purpose:InputStorePaymentPurpose = Updates;
payments.getStarsTopupOptions#c00ec7d3 = Vector<StarsTopupOption>; payments.getStarsTopupOptions#c00ec7d3 = Vector<StarsTopupOption>;
payments.getStarsStatus#104fcfa7 peer:InputPeer = payments.StarsStatus; payments.getStarsStatus#104fcfa7 peer:InputPeer = payments.StarsStatus;
payments.getStarsTransactions#673ac2f9 flags:# inbound:flags.0?true outbound:flags.1?true peer:InputPeer offset:string = payments.StarsStatus; payments.getStarsTransactions#97938d5a flags:# inbound:flags.0?true outbound:flags.1?true ascending:flags.2?true peer:InputPeer offset:string limit:int = payments.StarsStatus;
payments.sendStarsForm#2bb731d flags:# form_id:long invoice:InputInvoice = payments.PaymentResult; payments.sendStarsForm#2bb731d flags:# form_id:long invoice:InputInvoice = payments.PaymentResult;
payments.refundStarsCharge#25ae8f4a user_id:InputUser charge_id:string = Updates; payments.refundStarsCharge#25ae8f4a user_id:InputUser charge_id:string = Updates;
payments.getStarsRevenueStats#d91ffad6 flags:# dark:flags.0?true peer:InputPeer = payments.StarsRevenueStats;
payments.getStarsRevenueWithdrawalUrl#13bbe8b3 peer:InputPeer stars:long password:InputCheckPasswordSRP = payments.StarsRevenueWithdrawalUrl;
stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true emojis:flags.5?true text_color:flags.6?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector<InputStickerSetItem> software:flags.3?string = messages.StickerSet; stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true emojis:flags.5?true text_color:flags.6?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector<InputStickerSetItem> software:flags.3?string = messages.StickerSet;
stickers.removeStickerFromSet#f7760f51 sticker:InputDocument = messages.StickerSet; stickers.removeStickerFromSet#f7760f51 sticker:InputDocument = messages.StickerSet;
@ -2453,6 +2470,7 @@ stories.getChatsToSend#a56a8b60 = messages.Chats;
stories.togglePeerStoriesHidden#bd0415c4 peer:InputPeer hidden:Bool = Bool; stories.togglePeerStoriesHidden#bd0415c4 peer:InputPeer hidden:Bool = Bool;
stories.getStoryReactionsList#b9b2881f flags:# forwards_first:flags.2?true peer:InputPeer id:int reaction:flags.0?Reaction offset:flags.1?string limit:int = stories.StoryReactionsList; stories.getStoryReactionsList#b9b2881f flags:# forwards_first:flags.2?true peer:InputPeer id:int reaction:flags.0?Reaction offset:flags.1?string limit:int = stories.StoryReactionsList;
stories.togglePinnedToTop#b297e9b peer:InputPeer id:Vector<int> = Bool; stories.togglePinnedToTop#b297e9b peer:InputPeer id:Vector<int> = Bool;
stories.searchPosts#6cea116a flags:# hashtag:flags.0?string area:flags.1?MediaArea offset:string limit:int = stories.FoundStories;
premium.getBoostsList#60f67660 flags:# gifts:flags.0?true peer:InputPeer offset:string limit:int = premium.BoostsList; premium.getBoostsList#60f67660 flags:# gifts:flags.0?true peer:InputPeer offset:string limit:int = premium.BoostsList;
premium.getMyBoosts#be77b4a = premium.MyBoosts; premium.getMyBoosts#be77b4a = premium.MyBoosts;
@ -2470,4 +2488,4 @@ smsjobs.finishJob#4f1ebf24 flags:# job_id:string error:flags.0?string = Bool;
fragment.getCollectibleInfo#be1e85ba collectible:InputCollectible = fragment.CollectibleInfo; fragment.getCollectibleInfo#be1e85ba collectible:InputCollectible = fragment.CollectibleInfo;
// LAYER 181 // LAYER 182

View file

@ -34,7 +34,7 @@ PUBLIC
desktop-app::lib_tl desktop-app::lib_tl
) )
if (WIN32 AND NOT build_win64 AND NOT build_winarm AND QT_VERSION GREATER 6) if (WIN32 AND NOT build_win64 AND NOT build_winarm)
target_compile_options(td_scheme target_compile_options(td_scheme
PRIVATE PRIVATE
/bigobj # scheme.cpp has too many sections. /bigobj # scheme.cpp has too many sections.