diff --git a/data/web/corefork.telegram.org/api/search.html b/data/web/corefork.telegram.org/api/search.html
index ce2c25fa81..b031f1a83d 100644
--- a/data/web/corefork.telegram.org/api/search.html
+++ b/data/web/corefork.telegram.org/api/search.html
@@ -105,31 +105,89 @@ For example, when displaying the chat photo gallery, we could display a ph
messages.getSearchCounters#1bbcf300 flags:# peer:InputPeer saved_peer_id:flags.2?InputPeer top_msg_id:flags.0?int filters:Vector<MessagesFilter> = Vector<messages.SearchCounter>;
Chat counters with filters can also be returned without fetching the actual messages, as seen in the schema above.
messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+The global search view should be split into multiple tabs:
+
+- Chats tab
+- Channels tab
+- Apps tab
+- Media tab
+- Downloads tab
+- Links tab
+- Files tab
+- Music tab
+- Voice messages tab
+
+Chats tab
+topPeerCategoryCorrespondents#637b7ed = TopPeerCategory;
+topPeerCategoryBotsPM#ab661b5b = TopPeerCategory;
+topPeerCategoryGroups#bd17a14a = TopPeerCategory;
+topPeerCategoryChannels#161d9628 = TopPeerCategory;
+
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
messages.messagesSlice#3a54685e flags:# inexact:flags.1?true count:int next_rate:flags.0?int offset_id_offset:flags.2?int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
messages.channelMessages#c776ba4e flags:# inexact:flags.1?true pts:int count:int offset_id_offset:flags.2?int messages:Vector<Message> topics:Vector<ForumTopic> chats:Vector<Chat> users:Vector<User> = messages.Messages;
messages.messagesNotModified#74535f21 count:int = messages.Messages;
+---functions---
+
+contacts.getTopPeers#973478b6 flags:# correspondents:flags.0?true bots_pm:flags.1?true bots_inline:flags.2?true phone_calls:flags.3?true forward_users:flags.4?true forward_chats:flags.5?true groups:flags.10?true channels:flags.15?true bots_app:flags.16?true offset:int limit:int hash:long = contacts.TopPeers;
+
+messages.searchGlobal#4bc6589a flags:# broadcasts_only:flags.1?true folder_id:flags.0?int q:string filter:MessagesFilter min_date:int max_date:int offset_rate:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages;
+Contains results from all private/secret chats, private/public groups, private/public channels, split in the following sections:
+
+Frequent contacts
: Contains avatars and names of the most frequently used users, sorted as specified here » (requested using the correspondents
flag of contacts.getTopPeers).
+Recent
: Contains avatars and names of the most frequently used peers (users+chats+channels), sorted as specified here » (requested using the correspondents
+bots_pm
+groups
+channels
flags of contacts.getTopPeers).
+
+Searching when in the "Chats" tab should invoke messages.searchGlobal, replacing the previously mentioned sections with a list of peers (avatar+name+returned message, max one row per peer).
+Channels tab
+topPeerCategoryChannels#161d9628 = TopPeerCategory;
+
messages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats;
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#3a54685e flags:# inexact:flags.1?true count:int next_rate:flags.0?int offset_id_offset:flags.2?int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.channelMessages#c776ba4e flags:# inexact:flags.1?true pts:int count:int offset_id_offset:flags.2?int messages:Vector<Message> topics:Vector<ForumTopic> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesNotModified#74535f21 count:int = messages.Messages;
+
---functions---
+contacts.getTopPeers#973478b6 flags:# correspondents:flags.0?true bots_pm:flags.1?true bots_inline:flags.2?true phone_calls:flags.3?true forward_users:flags.4?true forward_chats:flags.5?true groups:flags.10?true channels:flags.15?true bots_app:flags.16?true offset:int limit:int hash:long = contacts.TopPeers;
+
+channels.getChannelRecommendations#25a71742 flags:# channel:flags.0?InputChannel = messages.Chats;
+
messages.searchGlobal#4bc6589a flags:# broadcasts_only:flags.1?true folder_id:flags.0?int q:string filter:MessagesFilter min_date:int max_date:int offset_rate:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages;
-channels.getChannelRecommendations#25a71742 flags:# channel:flags.0?InputChannel = messages.Chats;
-The global search view should be split into two tabs, a "Chats" tab (containing results from all private/secret chats, private/public groups, private/public channels), and a "Channels" tab (containing results from private/public channels) only.
-The "Chats" is split in the following sections:
+bots.getPopularAppBots#c2510192 offset:string limit:int = bots.PopularAppBots;
+Contains results from private/public channels only, split in the following sections:
Frequent contacts
: Contains avatars and names of the most frequently used users, sorted as specified here ». Recent
: Contains avatars and names of the most frequently used peers (users+chats+channels), sorted as specified here ». Searching when in the "Chats" tab should invoke messages.searchGlobal, replacing the previously mentioned sections with a list of peers (avatar+name+returned message, max one row per peer).
-The "Channels" tab is split in the following sections:
-Channels you joined
: Contains avatars and names of the most frequently used channels, sorted as specified here ». Channels you joined
: Contains avatars and names of the most frequently used channels, sorted as specified here » (requested using the channels
flag of contacts.getTopPeers). Similar channels
: Contains avatars and names of recommended public channels, similar to the ones the current user has already joined, fetched using channels.getChannelRecommendations without setting the channel
flag, see here » for more info. Searching when in the "Channels" tab should invoke messages.searchGlobal with the broadcasts_only
flag set, replacing the previously mentioned sections with a list of peers (avatar+name+returned message, max one row per peer).
topPeerCategoryBotsApp#fd9e7bec = TopPeerCategory;
+
+bots.popularAppBots#1991b13b flags:# next_offset:flags.0?string users:Vector<User> = bots.PopularAppBots;
+
+// Parse only the `users` field of the following constructors (ignoring messages.channelMessages)
+messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesSlice#3a54685e flags:# inexact:flags.1?true count:int next_rate:flags.0?int offset_id_offset:flags.2?int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+messages.messagesNotModified#74535f21 count:int = messages.Messages;
+messages.channelMessages#c776ba4e flags:# inexact:flags.1?true pts:int count:int offset_id_offset:flags.2?int messages:Vector<Message> topics:Vector<ForumTopic> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+
+---functions---
+
+contacts.getTopPeers#973478b6 flags:# correspondents:flags.0?true bots_pm:flags.1?true bots_inline:flags.2?true phone_calls:flags.3?true forward_users:flags.4?true forward_chats:flags.5?true groups:flags.10?true channels:flags.15?true bots_app:flags.16?true offset:int limit:int hash:long = contacts.TopPeers;
+
+bots.getPopularAppBots#c2510192 offset:string limit:int = bots.PopularAppBots;
+
+messages.searchGlobal#4bc6589a flags:# broadcasts_only:flags.1?true folder_id:flags.0?int q:string filter:MessagesFilter min_date:int max_date:int offset_rate:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages;
+Only contains bots with an associated Main Mini App (i.e. those with the user.bot_has_main_app
flag set), split in the following sections:
Apps you use
: Contains avatars, names and MAU counters (from user.bot_active_users
) for Main Mini Apps of bots most frequently used by the user, sorted as specified here » (requested using the bots_app
flag of contacts.getTopPeers). Popular apps
: Contains avatars, names and MAU counters of the Main Mini Apps of the bots returned by bots.getPopularAppBots. Searching when in the "Apps" tab should invoke messages.searchGlobal, replacing the previously mentioned sections with a list of avatars, names and MAU counters (from user.bot_active_users
) for Main Mini Apps of the returned bots.
---functions---
diff --git a/data/web/corefork.telegram.org/api/top-rating.html b/data/web/corefork.telegram.org/api/top-rating.html
index e58ffd41ca..2edf2dd7c6 100644
--- a/data/web/corefork.telegram.org/api/top-rating.html
+++ b/data/web/corefork.telegram.org/api/top-rating.html
@@ -52,6 +52,7 @@
topPeerCategoryPhoneCalls#1e76a78c = TopPeerCategory;
topPeerCategoryForwardUsers#a8406ca9 = TopPeerCategory;
topPeerCategoryForwardChats#fbeec0f0 = TopPeerCategory;
+topPeerCategoryBotsApp#fd9e7bec = TopPeerCategory;
topPeer#edcdc05b peer:Peer rating:double = TopPeer;
diff --git a/data/web/corefork.telegram.org/constructor/starsTransaction.html b/data/web/corefork.telegram.org/constructor/starsTransaction.html
index 6dcdf166e7..65d550dd41 100644
--- a/data/web/corefork.telegram.org/constructor/starsTransaction.html
+++ b/data/web/corefork.telegram.org/constructor/starsTransaction.html
@@ -89,7 +89,7 @@
gift
flags.10?true
-
+This transaction was a gift from the user in peer.peer
.
id
diff --git a/data/web/fragment.com/css/auction.css b/data/web/fragment.com/css/auction.css
index 528cb14fc2..01a70f305e 100644
--- a/data/web/fragment.com/css/auction.css
+++ b/data/web/fragment.com/css/auction.css
@@ -587,8 +587,6 @@ i.icon {
right: 0;
top: 0;
z-index: 100;
- padding-left: env(safe-area-inset-left);
- padding-right: env(safe-area-inset-right);
background-color: var(--header-bg-color);
-webkit-backdrop-filter: blur(25px);
backdrop-filter: blur(25px);
@@ -939,7 +937,6 @@ a.tm-pagination-item.active:focus {
right: 0;
top: 0;
bottom: 0;
- padding-bottom: env(safe-area-inset-bottom);
background: var(--bg-color);
transition: transform var(--def-transition);
}
@@ -1138,8 +1135,6 @@ a.tm-menu-link:focus {
}
.tm-footer {
- padding-left: env(safe-area-inset-left);
- padding-right: env(safe-area-inset-right);
background-color: var(--footer-bg-color);
}
.tm-footer-links {
@@ -1310,7 +1305,7 @@ a.tm-menu-link:focus {
.tm-main {
margin: 0 auto;
- width: auto;
+ width: 100%;
max-width: 480px;
padding-bottom: 70px;
flex-grow: 1;
@@ -3821,9 +3816,6 @@ a.tm-table-action-link:hover {
.tm-main {
max-width: 720px;
- box-sizing: content-box;
- padding-left: env(safe-area-inset-left);
- padding-right: env(safe-area-inset-right);
}
.tm-main-premium {
max-width: 480px;