mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Update API scheme on layer 186.
This commit is contained in:
parent
d34d3a796d
commit
56959398e2
6 changed files with 39 additions and 17 deletions
|
@ -140,10 +140,10 @@ constexpr auto kPaidAccumulatePeriod = 5 * crl::time(1000) + 500;
|
||||||
|
|
||||||
[[nodiscard]] bool IsMyTop(
|
[[nodiscard]] bool IsMyTop(
|
||||||
const MTPDmessageReactor &data,
|
const MTPDmessageReactor &data,
|
||||||
not_null<PeerData*> peer,
|
PeerData *peer,
|
||||||
const std::vector<MessageReactionsTopPaid> &top,
|
const std::vector<MessageReactionsTopPaid> &top,
|
||||||
bool min) {
|
bool min) {
|
||||||
if (peer->isSelf()) {
|
if (peer && peer->isSelf()) {
|
||||||
return true;
|
return true;
|
||||||
} else if (!min) {
|
} else if (!min) {
|
||||||
return data.is_my();
|
return data.is_my();
|
||||||
|
@ -1720,6 +1720,7 @@ void Reactions::sendPaidRequest(not_null<HistoryItem*> item, int count) {
|
||||||
const auto randomId = base::unixtime::mtproto_msg_id();
|
const auto randomId = base::unixtime::mtproto_msg_id();
|
||||||
auto &api = _owner->session().api();
|
auto &api = _owner->session().api();
|
||||||
const auto requestId = api.request(MTPmessages_SendPaidReaction(
|
const auto requestId = api.request(MTPmessages_SendPaidReaction(
|
||||||
|
MTP_flags(0),
|
||||||
item->history()->peer->input,
|
item->history()->peer->input,
|
||||||
MTP_int(id.msg),
|
MTP_int(id.msg),
|
||||||
MTP_int(count),
|
MTP_int(count),
|
||||||
|
@ -2048,7 +2049,10 @@ bool MessageReactions::change(
|
||||||
const auto &paindTopNow = _paid ? _paid->top : std::vector<TopPaid>();
|
const auto &paindTopNow = _paid ? _paid->top : std::vector<TopPaid>();
|
||||||
for (const auto &reactor : top) {
|
for (const auto &reactor : top) {
|
||||||
const auto &data = reactor.data();
|
const auto &data = reactor.data();
|
||||||
const auto peer = owner.peer(peerFromMTP(data.vpeer_id()));
|
const auto peerId = (data.is_anonymous() || !data.vpeer_id())
|
||||||
|
? PeerId()
|
||||||
|
: peerFromMTP(*data.vpeer_id());
|
||||||
|
const auto peer = peerId ? owner.peer(peerId).get() : nullptr;
|
||||||
paidTop.push_back({
|
paidTop.push_back({
|
||||||
.peer = peer,
|
.peer = peer,
|
||||||
.count = uint32(data.vcount().v),
|
.count = uint32(data.vcount().v),
|
||||||
|
|
|
@ -359,7 +359,7 @@ struct RecentReaction {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct MessageReactionsTopPaid {
|
struct MessageReactionsTopPaid {
|
||||||
not_null<PeerData*> peer;
|
PeerData *peer = nullptr;
|
||||||
uint32 count : 30 = 0;
|
uint32 count : 30 = 0;
|
||||||
uint32 top : 1 = 0;
|
uint32 top : 1 = 0;
|
||||||
uint32 my : 1 = 0;
|
uint32 my : 1 = 0;
|
||||||
|
|
|
@ -74,6 +74,14 @@ PeerId FakePeerIdForJustName(const QString &name) {
|
||||||
return peerFromUser(kShift + std::abs(base));
|
return peerFromUser(kShift + std::abs(base));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool UnavailableReason::sensitive() const {
|
||||||
|
return reason == u"sensitive"_q;
|
||||||
|
}
|
||||||
|
|
||||||
|
UnavailableReason UnavailableReason::Sensitive() {
|
||||||
|
return { u"sensitive"_q };
|
||||||
|
}
|
||||||
|
|
||||||
bool ApplyBotMenuButton(
|
bool ApplyBotMenuButton(
|
||||||
not_null<BotInfo*> info,
|
not_null<BotInfo*> info,
|
||||||
const MTPBotMenuButton *button) {
|
const MTPBotMenuButton *button) {
|
||||||
|
@ -505,12 +513,20 @@ QString PeerData::computeUnavailableReason() const {
|
||||||
auto &&filtered = ranges::views::all(
|
auto &&filtered = ranges::views::all(
|
||||||
list
|
list
|
||||||
) | ranges::views::filter([&](const Data::UnavailableReason &reason) {
|
) | ranges::views::filter([&](const Data::UnavailableReason &reason) {
|
||||||
return !ranges::contains(skip, reason.reason);
|
return !reason.sensitive()
|
||||||
|
&& !ranges::contains(skip, reason.reason);
|
||||||
});
|
});
|
||||||
const auto first = filtered.begin();
|
const auto first = filtered.begin();
|
||||||
return (first != filtered.end()) ? first->text : QString();
|
return (first != filtered.end()) ? first->text : QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool PeerData::isUnavailableSensitive() const {
|
||||||
|
return ranges::contains(
|
||||||
|
unavailableReasons(),
|
||||||
|
true,
|
||||||
|
&Data::UnavailableReason::sensitive);
|
||||||
|
}
|
||||||
|
|
||||||
// This is duplicated in CanPinMessagesValue().
|
// This is duplicated in CanPinMessagesValue().
|
||||||
bool PeerData::canPinMessages() const {
|
bool PeerData::canPinMessages() const {
|
||||||
if (const auto user = asUser()) {
|
if (const auto user = asUser()) {
|
||||||
|
|
|
@ -89,12 +89,12 @@ struct UnavailableReason {
|
||||||
QString reason;
|
QString reason;
|
||||||
QString text;
|
QString text;
|
||||||
|
|
||||||
bool operator==(const UnavailableReason &other) const {
|
friend inline bool operator==(
|
||||||
return (reason == other.reason) && (text == other.text);
|
const UnavailableReason &,
|
||||||
}
|
const UnavailableReason &) = default;
|
||||||
bool operator!=(const UnavailableReason &other) const {
|
|
||||||
return !(*this == other);
|
[[nodiscard]] bool sensitive() const;
|
||||||
}
|
[[nodiscard]] static UnavailableReason Sensitive();
|
||||||
};
|
};
|
||||||
|
|
||||||
bool ApplyBotMenuButton(
|
bool ApplyBotMenuButton(
|
||||||
|
@ -340,6 +340,7 @@ public:
|
||||||
// If this string is not empty we must not allow to open the
|
// If this string is not empty we must not allow to open the
|
||||||
// conversation and we must show this string instead.
|
// conversation and we must show this string instead.
|
||||||
[[nodiscard]] QString computeUnavailableReason() const;
|
[[nodiscard]] QString computeUnavailableReason() const;
|
||||||
|
[[nodiscard]] bool isUnavailableSensitive() const;
|
||||||
|
|
||||||
[[nodiscard]] ClickHandlerPtr createOpenLink();
|
[[nodiscard]] ClickHandlerPtr createOpenLink();
|
||||||
[[nodiscard]] const ClickHandlerPtr &openLink() {
|
[[nodiscard]] const ClickHandlerPtr &openLink() {
|
||||||
|
|
|
@ -133,7 +133,7 @@ std::vector<UnavailableReason> ExtractUnavailableReasons(
|
||||||
return ranges::views::all(
|
return ranges::views::all(
|
||||||
restrictions
|
restrictions
|
||||||
) | ranges::views::filter([](const MTPRestrictionReason &restriction) {
|
) | ranges::views::filter([](const MTPRestrictionReason &restriction) {
|
||||||
return restriction.match([&](const MTPDrestrictionReason &data) {
|
return restriction.match([&](const auto &data) {
|
||||||
const auto platform = qs(data.vplatform());
|
const auto platform = qs(data.vplatform());
|
||||||
return false
|
return false
|
||||||
#ifdef OS_MAC_STORE
|
#ifdef OS_MAC_STORE
|
||||||
|
|
|
@ -605,7 +605,7 @@ auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery;
|
||||||
|
|
||||||
receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage;
|
receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage;
|
||||||
|
|
||||||
chatInviteExported#93f2df18 flags:# revoked:flags.0?true permanent:flags.5?true request_needed:flags.6?true link:string admin_id:long date:int start_date:flags.4?int expire_date:flags.1?int usage_limit:flags.2?int usage:flags.3?int requested:flags.7?int title:flags.8?string subscription_pricing:flags.9?StarsSubscriptionPricing = ExportedChatInvite;
|
chatInviteExported#a22cbd96 flags:# revoked:flags.0?true permanent:flags.5?true request_needed:flags.6?true link:string admin_id:long date:int start_date:flags.4?int expire_date:flags.1?int usage_limit:flags.2?int usage:flags.3?int requested:flags.7?int subscription_expired:flags.10?int title:flags.8?string subscription_pricing:flags.9?StarsSubscriptionPricing = ExportedChatInvite;
|
||||||
chatInvitePublicJoinRequests#ed107ab7 = ExportedChatInvite;
|
chatInvitePublicJoinRequests#ed107ab7 = ExportedChatInvite;
|
||||||
|
|
||||||
chatInviteAlready#5a686d7c chat:Chat = ChatInvite;
|
chatInviteAlready#5a686d7c chat:Chat = ChatInvite;
|
||||||
|
@ -631,7 +631,7 @@ messages.stickerSetNotModified#d3f924eb = messages.StickerSet;
|
||||||
|
|
||||||
botCommand#c27ac8c7 command:string description:string = BotCommand;
|
botCommand#c27ac8c7 command:string description:string = BotCommand;
|
||||||
|
|
||||||
botInfo#8f300b57 flags:# has_preview_medias:flags.6?true user_id:flags.0?long description:flags.1?string description_photo:flags.4?Photo description_document:flags.5?Document commands:flags.2?Vector<BotCommand> menu_button:flags.3?BotMenuButton = BotInfo;
|
botInfo#82437e74 flags:# has_preview_medias:flags.6?true user_id:flags.0?long description:flags.1?string description_photo:flags.4?Photo description_document:flags.5?Document commands:flags.2?Vector<BotCommand> menu_button:flags.3?BotMenuButton privacy_policy_url:flags.7?string = BotInfo;
|
||||||
|
|
||||||
keyboardButton#a2fa4880 text:string = KeyboardButton;
|
keyboardButton#a2fa4880 text:string = KeyboardButton;
|
||||||
keyboardButtonUrl#258aff05 text:string url:string = KeyboardButton;
|
keyboardButtonUrl#258aff05 text:string url:string = KeyboardButton;
|
||||||
|
@ -1846,7 +1846,7 @@ starsSubscriptionPricing#5416d58 period:int amount:long = StarsSubscriptionPrici
|
||||||
|
|
||||||
starsSubscription#538ecf18 flags:# canceled:flags.0?true can_refulfill:flags.1?true missing_balance:flags.2?true id:string peer:Peer until_date:int pricing:StarsSubscriptionPricing chat_invite_hash:flags.3?string = StarsSubscription;
|
starsSubscription#538ecf18 flags:# canceled:flags.0?true can_refulfill:flags.1?true missing_balance:flags.2?true id:string peer:Peer until_date:int pricing:StarsSubscriptionPricing chat_invite_hash:flags.3?string = StarsSubscription;
|
||||||
|
|
||||||
messageReactor#ef00d448 flags:# top:flags.0?true my:flags.1?true peer_id:Peer count:int = MessageReactor;
|
messageReactor#4ba3a95a flags:# top:flags.0?true my:flags.1?true anonymous:flags.2?true peer_id:flags.3?Peer count:int = MessageReactor;
|
||||||
|
|
||||||
---functions---
|
---functions---
|
||||||
|
|
||||||
|
@ -2167,7 +2167,7 @@ messages.editExportedChatInvite#bdca2f75 flags:# revoked:flags.2?true peer:Input
|
||||||
messages.deleteRevokedExportedChatInvites#56987bd5 peer:InputPeer admin_id:InputUser = Bool;
|
messages.deleteRevokedExportedChatInvites#56987bd5 peer:InputPeer admin_id:InputUser = Bool;
|
||||||
messages.deleteExportedChatInvite#d464a42b peer:InputPeer link:string = Bool;
|
messages.deleteExportedChatInvite#d464a42b peer:InputPeer link:string = Bool;
|
||||||
messages.getAdminsWithInvites#3920e6ef peer:InputPeer = messages.ChatAdminsWithInvites;
|
messages.getAdminsWithInvites#3920e6ef peer:InputPeer = messages.ChatAdminsWithInvites;
|
||||||
messages.getChatInviteImporters#df04dd4e flags:# requested:flags.0?true peer:InputPeer link:flags.1?string q:flags.2?string offset_date:int offset_user:InputUser limit:int = messages.ChatInviteImporters;
|
messages.getChatInviteImporters#df04dd4e flags:# requested:flags.0?true subscription_expired:flags.3?true peer:InputPeer link:flags.1?string q:flags.2?string offset_date:int offset_user:InputUser limit:int = messages.ChatInviteImporters;
|
||||||
messages.setHistoryTTL#b80e5fe4 peer:InputPeer period:int = Updates;
|
messages.setHistoryTTL#b80e5fe4 peer:InputPeer period:int = Updates;
|
||||||
messages.checkHistoryImportPeer#5dc60f03 peer:InputPeer = messages.CheckedHistoryImportPeer;
|
messages.checkHistoryImportPeer#5dc60f03 peer:InputPeer = messages.CheckedHistoryImportPeer;
|
||||||
messages.setChatTheme#e63be13f peer:InputPeer emoticon:string = Updates;
|
messages.setChatTheme#e63be13f peer:InputPeer emoticon:string = Updates;
|
||||||
|
@ -2244,7 +2244,8 @@ messages.editFactCheck#589ee75 peer:InputPeer msg_id:int text:TextWithEntities =
|
||||||
messages.deleteFactCheck#d1da940c peer:InputPeer msg_id:int = Updates;
|
messages.deleteFactCheck#d1da940c peer:InputPeer msg_id:int = Updates;
|
||||||
messages.getFactCheck#b9cdc5ee peer:InputPeer msg_id:Vector<int> = Vector<FactCheck>;
|
messages.getFactCheck#b9cdc5ee peer:InputPeer msg_id:Vector<int> = Vector<FactCheck>;
|
||||||
messages.requestMainWebView#c9e01e7b flags:# compact:flags.7?true peer:InputPeer bot:InputUser start_param:flags.1?string theme_params:flags.0?DataJSON platform:string = WebViewResult;
|
messages.requestMainWebView#c9e01e7b flags:# compact:flags.7?true peer:InputPeer bot:InputUser start_param:flags.1?string theme_params:flags.0?DataJSON platform:string = WebViewResult;
|
||||||
messages.sendPaidReaction#1e55d333 peer:InputPeer msg_id:int count:int random_id:long = Updates;
|
messages.sendPaidReaction#25c8fe3e flags:# private:flags.0?true peer:InputPeer msg_id:int count:int random_id:long = Updates;
|
||||||
|
messages.togglePaidReactionPrivacy#849ad397 peer:InputPeer msg_id:int private:Bool = Bool;
|
||||||
|
|
||||||
updates.getState#edd4882a = updates.State;
|
updates.getState#edd4882a = updates.State;
|
||||||
updates.getDifference#19c2f763 flags:# pts:int pts_limit:flags.1?int pts_total_limit:flags.0?int date:int qts:int qts_limit:flags.2?int = updates.Difference;
|
updates.getDifference#19c2f763 flags:# pts:int pts_limit:flags.1?int pts_total_limit:flags.0?int date:int qts:int qts_limit:flags.2?int = updates.Difference;
|
||||||
|
|
Loading…
Add table
Reference in a new issue