diff --git a/data/corefork.telegram.org/api/animated-emojis.html b/data/corefork.telegram.org/api/animated-emojis.html index f4c1402574..cfdb362df5 100644 --- a/data/corefork.telegram.org/api/animated-emojis.html +++ b/data/corefork.telegram.org/api/animated-emojis.html @@ -46,7 +46,7 @@ ---functions--- -messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet; +messages.getStickerSet#c8a0ec74 stickerset:InputStickerSet hash:int = messages.StickerSet;
On startup, clients should fetch the animated emoji stickerset by calling the messages.getStickerSet method, providing inputStickerSetAnimatedEmoji to the stickerset
field.
The returned stickerset will contain a set of animated stickers, one for each of the supported emojis.
Clients should substitute messages containing only one instance of one of the allowed emojis with the respective animated sticker.
@@ -88,7 +88,7 @@ For supported emojis, clients on both sides of pr ---functions--- -messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet; +messages.getStickerSet#c8a0ec74 stickerset:InputStickerSet hash:int = messages.StickerSet; messages.setTyping#58943ee2 flags:# peer:InputPeer top_msg_id:flags.0?int action:SendMessageAction = Bool;On startup, clients should fetch the animated reaction emoji stickerset by calling the messages.getStickerSet method, providing inputStickerSetAnimatedEmojiAnimations to the stickerset
field.
diff --git a/data/corefork.telegram.org/api/auth.html b/data/corefork.telegram.org/api/auth.html
index aee36a6995..8a75ad1624 100644
--- a/data/corefork.telegram.org/api/auth.html
+++ b/data/corefork.telegram.org/api/auth.html
@@ -42,56 +42,64 @@
Authorization is associated with a client’s encryption key identifier: auth_key_id. No additional parameters need to be passed into methods following authorization.
-To log in as a bot, follow these instructions ».
-To log in as a bot, follow these instructions ».
+Example implementations: telegram for android, tdlib.
-To show a nicely formatted and validated phone number field, the help.countriesList constructor can be obtained using the help.getCountriesList method.
The help.countriesList config is then used as described here ».
Authorization requires that a text message containing an authorization code first be sent to the user’s phone.
This may be done using the auth.sendCode method.
The system will automatically choose how to send the authorization code; there are four possible ways the code can arrive:
To show a nicely formatted and validated phone number field, the help.countriesList constructor can be obtained using the help.getCountriesList method.
+The help.countriesList config is then used as described here ».
Authorization requires that a text message containing an authorization code first be sent to the user’s phone.
+This may be done using the auth.sendCode method.
+The system will automatically choose how to send the authorization code; there are four possible ways the code can arrive:
The auth.sendCode method also has parameters for enabling/disabling use of flash calls, and allows passing an SMS token that will be included in the sent SMS.
For example, the latter is required in newer versions of android, to use the android SMS receiver APIs.
The auth.sendCode method also has parameters for enabling/disabling use of flash calls, and allows passing an SMS token that will be included in the sent SMS. +For example, the latter is required in newer versions of android, to use the android SMS receiver APIs.
The returned auth.SentCode object will contain multiple parameters:
flags | -# | +# | Flags, see TL conditional fields |
type | -auth.SentCodeType | +auth.SentCodeType | Phone code type |
phone_code_hash | -string | +string | Phone code hash, to be stored and later re-used with auth.signIn |
next_type | -flags.1?auth.CodeType | +flags.1?auth.CodeType | Phone code type that will be sent next, if the phone code is not received within timeout seconds: to send it use auth.resendCode |
timeout | -flags.2?int | +flags.2?int | Timeout for reception of the phone code |
If the message takes too long (timeout
seconds) to arrive at the phone, the auth.resendCode method may be invoked to resend a code of type next_type
.
If the same happens again, you can use auth.resendCode with the next_type
returned by the previous call to auth.resendCode.
To cancel the verification code use auth.cancelCode.
If the message takes too long (timeout
seconds) to arrive at the phone, the auth.resendCode method may be invoked to resend a code of type next_type
.
+If the same happens again, you can use auth.resendCode with the next_type
returned by the previous call to auth.resendCode.
+To cancel the verification code use auth.cancelCode.
When user enters verification code, the auth.signIn method must be used to validate it and possibly sign user in.
-If the code was entered correctly, but the method returns auth.authorizationSignUpRequired, it means that account with this phone number doesn't exist yet: user needs to provide basic information, accept terms of service and then the new user registration method (auth.signUp) must be invoked.
-When trying to sign in using auth.signIn, an error 400 SESSION_PASSWORD_NEEDED may be returned, if the user has two-factor authentication enabled.
In this case, instructions for SRP 2FA authentication must be followed.
If the code was entered correctly, but the method returns auth.authorizationSignUpRequired, it means that account with this phone number doesn't exist yet: user needs to provide basic information, accept terms of service and then the new user registration method (auth.signUp) must be invoked.
+When trying to sign in using auth.signIn, an error 400 SESSION_PASSWORD_NEEDED may be returned, if the user has two-factor authentication enabled. +In this case, instructions for SRP 2FA authentication must be followed.
To set up two-factor authorization on an already authorized account, follow the SRP 2FA authentication docs.
-Each phone number is limited to only a certain amount of logins per day (e.g. 5, but this is subject to change) after which the API will return a FLOOD error until the next day. This might not be enough for testing the implementation of User Authorization flows in client applications.
There are several reserved phone number prefixes for testing that your application handles redirects between DCs, sign up, sign in and 2FA flows correctly. These numbers are only available on Test DCs (their IP addresses for TCP transport are availble in API development tools panel after api_id was obtained, URI format for HTTPS/Websocket transport).
If you wish to emulate an application of a user associated with DC number X, it is sufficient to specify the phone number as 99966XYYYY
, where YYYY are random numbers, when registering the user. A user like this would always get XXXXX as the login confirmation code (the DC number, repeated five times). Note that the value of X must be in the range of 1-3 because there are only 3 Test DCs. When the flood limit is reached for any particular test number, just choose another number (changing the YYYY random part).
-To help you with working on production DCs, logins with the same phone number with which the
api_id
was registered have more generous flood limits.
As a result of authorization, the client key, auth_key_id, becomes associated with the user, and each subsequent API call with this key will be executed with that user’s identity. The authorization method itself returns the relevant user. It is best to immediately store the User ID locally in a binding with the key.
Only a small portion of the API methods are available to unauthorized users:
Other methods will result in an error: 401 UNAUTHORIZED.
-Other methods will result in an error: 401 UNAUTHORIZED.
diff --git a/data/corefork.telegram.org/api/bots/buttons.html b/data/corefork.telegram.org/api/bots/buttons.html index f96e195248..04e277f869 100644 --- a/data/corefork.telegram.org/api/bots/buttons.html +++ b/data/corefork.telegram.org/api/bots/buttons.html @@ -64,11 +64,11 @@ This article describes the full button flow, using the MTProto API. replyKeyboardMarkup#85dd99d1 flags:# resize:flags.0?true single_use:flags.1?true selective:flags.2?true rows:Vector<KeyboardButtonRow> placeholder:flags.3?string = ReplyMarkup; replyInlineMarkup#48a30254 rows:Vector<KeyboardButtonRow> = ReplyMarkup; -message#85d6cbe2 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message; +message#38116ee0 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message; ---functions--- -messages.sendMessage#520c3870 flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int = Updates; +messages.sendMessage#d9d75a4 flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;Bots can attach a ReplyMarkup constructor to outgoing messages, to attach an inline keyboard or a custom reply keyboard:
The botInfo constructors contained in the userFull, chatFull, channelFull contain a list of commands, and for groups, the ID and a description of each bot.
diff --git a/data/corefork.telegram.org/api/bots/games.html b/data/corefork.telegram.org/api/bots/games.html index cbda184569..25b254547e 100644 --- a/data/corefork.telegram.org/api/bots/games.html +++ b/data/corefork.telegram.org/api/bots/games.html @@ -55,7 +55,7 @@ ---functions--- -messages.sendMedia#3491eba9 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int = Updates; +messages.sendMedia#e25ff8e0 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;Bots can directly send a game using messages.sendMedia, providing:
inputGameShortName.short_name
The user client should display the results
obtained during querying in a list, making sure to handle eventual bot timeouts in the form of a BOT_RESPONSE_TIMEOUT
RPC error, by simply not displaying anything.
If the user then chooses a specific BotInlineResult
, the messages.sendInlineBotResult method should be invoked, passing:
messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-channelFull#e9b27a17 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string = ChatFull;
+channelFull#e13c3d20 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?Vector<string> = ChatFull;
---functions---
diff --git a/data/corefork.telegram.org/api/datacenter.html b/data/corefork.telegram.org/api/datacenter.html
index b6e3c15dbb..4d350cca10 100644
--- a/data/corefork.telegram.org/api/datacenter.html
+++ b/data/corefork.telegram.org/api/datacenter.html
@@ -39,40 +39,44 @@
Working with Different Data Centers
- The servers are divided into several data centers (hereinafter “DCs”) in different parts of the world.
A complete list of proxy access points for these DCs may be obtained using help.getConfig:
-dcOption#18b7a10d flags:# ipv6:flags.0?true media_only:flags.1?true tcpo_only:flags.2?true cdn:flags.3?true static:flags.4?true id:int ip_address:string port:int secret:flags.10?bytes = DcOption;
-config#330b4067 flags:# phonecalls_enabled:flags.1?true default_p2p_contacts:flags.3?true preload_featured_stickers:flags.4?true ignore_phone_entities:flags.5?true revoke_pm_inbox:flags.6?true blocked_mode:flags.8?true pfs_enabled:flags.13?true date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> dc_txt_domain_name:string chat_size_max:int megagroup_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int push_chat_period_ms:int push_chat_limit:int saved_gifs_limit:int edit_time_limit:int revoke_time_limit:int revoke_pm_time_limit:int rating_e_decay:int stickers_recent_limit:int stickers_faved_limit:int channels_read_media_period:int tmp_sessions:flags.0?int pinned_dialogs_count_max:int pinned_infolder_count_max:int call_receive_timeout_ms:int call_ring_timeout_ms:int call_connect_timeout_ms:int call_packet_timeout_ms:int me_url_prefix:string autoupdate_url_prefix:flags.7?string gif_search_username:flags.9?string venue_search_username:flags.10?string img_search_username:flags.11?string static_maps_provider:flags.12?string caption_length_max:int message_length_max:int webfile_dc_id:int suggested_lang_code:flags.2?string lang_pack_version:flags.2?int base_lang_pack_version:flags.2?int = Config;
+ The servers are divided into several data centers (hereinafter “DCs”) in different parts of the world.
+A complete list of proxy access points for these DCs may be obtained using help.getConfig:
+dcOption#18b7a10d flags:# ipv6:flags.0?true media_only:flags.1?true tcpo_only:flags.2?true cdn:flags.3?true static:flags.4?true id:int ip_address:string port:int secret:flags.10?bytes = DcOption;
+config#330b4067 flags:# phonecalls_enabled:flags.1?true default_p2p_contacts:flags.3?true preload_featured_stickers:flags.4?true ignore_phone_entities:flags.5?true revoke_pm_inbox:flags.6?true blocked_mode:flags.8?true pfs_enabled:flags.13?true date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> dc_txt_domain_name:string chat_size_max:int megagroup_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int push_chat_period_ms:int push_chat_limit:int saved_gifs_limit:int edit_time_limit:int revoke_time_limit:int revoke_pm_time_limit:int rating_e_decay:int stickers_recent_limit:int stickers_faved_limit:int channels_read_media_period:int tmp_sessions:flags.0?int pinned_dialogs_count_max:int pinned_infolder_count_max:int call_receive_timeout_ms:int call_ring_timeout_ms:int call_connect_timeout_ms:int call_packet_timeout_ms:int me_url_prefix:string autoupdate_url_prefix:flags.7?string gif_search_username:flags.9?string venue_search_username:flags.10?string img_search_username:flags.11?string static_maps_provider:flags.12?string caption_length_max:int message_length_max:int webfile_dc_id:int suggested_lang_code:flags.2?string lang_pack_version:flags.2?int base_lang_pack_version:flags.2?int = Config;
---functions---
-help.getConfig#c4f9186b = Config;
-In this context, this_dc is the number of the current DC, dc_options is a list of all DCs available at the moment, each of which has an id, ip, and port for establishing a connection. Please note that ip and port may change frequently, based on proxy server load and the user's current location.
Typically, each DC has at least one IPv4 and one IPv6 endpoint available.
+help.getConfig#c4f9186b = Config;
+In this context, this_dc is the number of the current DC, dc_options is a list of all DCs available at the moment, each of which has an id, ip, and port for establishing a connection. Please note that ip and port may change frequently, based on proxy server load and the user's current location.
+Typically, each DC has at least one IPv4 and one IPv6 endpoint available.
To optimize client communication with the API, each client must use the connection to the closest access point for its main queries (sending messages, getting contacts, etc.). Therefore, knowing how to select a DC is required before communicating with the API.
-Registration/Authorization
+Registration/Authorization
The auth.sendCode method is the basic entry point when registering a new user or authorizing an existing user. 95% of all redirection cases to a different DC will occur when invoking this method.
-The client does not yet know which DC it will be associated with; therefore, it establishes an encrypted connection to a random address and sends its query to that address.
Having received a phone_number from a client, we can find out whether or not it is registered in the system. If it is, then, if necessary, instead of sending a text message, we request that it establish a connection with a different DC first (PHONE_MIGRATE_X error).
If we do not yet have a user with this number, we examine its IP-address. We can use it to identify the closest DC. Again, if necessary, we redirect the user to a different DC (NETWORK_MIGRATE_X error).
-Testing Redirects
+The client does not yet know which DC it will be associated with; therefore, it establishes an encrypted connection to a random address and sends its query to that address.
+Having received a phone_number from a client, we can find out whether or not it is registered in the system. If it is, then, if necessary, instead of sending a text message, we request that it establish a connection with a different DC first (PHONE_MIGRATE_X error).
+If we do not yet have a user with this number, we examine its IP-address. We can use it to identify the closest DC. Again, if necessary, we redirect the user to a different DC (NETWORK_MIGRATE_X error).
+Testing Redirects
There are reserved phone number prefixes to test the correctness of the application’s handling of redirects between DCs. Read more in User Authorization article.
-File Access
+File Access
A file saved by a user with upload.saveFilePart will be available for direct download only from the DC where the query was executed. That is why each file has a dc_id parameter:
-document#1e87342b flags:# id:long access_hash:long file_reference:bytes date:int mime_type:string size:int thumbs:flags.0?Vector<PhotoSize> video_thumbs:flags.1?Vector<VideoSize> dc_id:int attributes:Vector<DocumentAttribute> = Document;
-photo#fb197a65 flags:# has_stickers:flags.0?true id:long access_hash:long file_reference:bytes date:int sizes:Vector<PhotoSize> video_sizes:flags.1?Vector<VideoSize> dc_id:int = Photo;
+document#1e87342b flags:# id:long access_hash:long file_reference:bytes date:int mime_type:string size:int thumbs:flags.0?Vector<PhotoSize> video_thumbs:flags.1?Vector<VideoSize> dc_id:int attributes:Vector<DocumentAttribute> = Document;
+photo#fb197a65 flags:# has_stickers:flags.0?true id:long access_hash:long file_reference:bytes date:int sizes:Vector<PhotoSize> video_sizes:flags.1?Vector<VideoSize> dc_id:int = Photo;
-encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-userProfilePhoto#82d1f706 flags:# has_video:flags.0?true photo_id:long stripped_thumb:flags.1?bytes dc_id:int = UserProfilePhoto;
-chatPhoto#1c6e1c11 flags:# has_video:flags.0?true photo_id:long stripped_thumb:flags.1?bytes dc_id:int = ChatPhoto;
-To download the file, an encrypted connection to DC dc_id must be established and used to execute the upload.getFile query.
If an attempt is made to download the file over a wrong connection, the FILE_MIGRATE_X error will be returned.
+userProfilePhoto#82d1f706 flags:# has_video:flags.0?true photo_id:long stripped_thumb:flags.1?bytes dc_id:int = UserProfilePhoto;
+chatPhoto#1c6e1c11 flags:# has_video:flags.0?true photo_id:long stripped_thumb:flags.1?bytes dc_id:int = ChatPhoto;
+To download the file, an encrypted connection to DC dc_id must be established and used to execute the upload.getFile query.
+If an attempt is made to download the file over a wrong connection, the FILE_MIGRATE_X error will be returned.
Please note that encryption keys are not copied between DCs; therefore, the process of establishing an encrypted connection is started from the very beginning for each new DC. An issued auth_key can be associated with the current authorized user by using an authorization transfer.
-User Migration
+User Migration
During the process of working with the API, user information is accumulated in the DC with which the user is associated. This is the reason a user cannot be associated with a different DC by means of the client. However, in the future, during prolonged communication from an unusual location, we may decide that the user’s data must be moved to a different DC. After some time, the data will be copied and the association will be updated. Once this happens, when executing any query transmitted to the old DC, the API will return the USER_MIGRATE_X error. The client will then have to establish a connection with the new DC and repeat the query.
-Authorization Transfer
+Authorization Transfer
The following methods can be used to eliminate the need for users to enter the code from a text message every time:
-auth.exportedAuthorization#b434e2b8 id:long bytes:bytes = auth.ExportedAuthorization;
-auth.authorization#cd050916 flags:# tmp_sessions:flags.0?int user:User = auth.Authorization;
+auth.exportedAuthorization#b434e2b8 id:long bytes:bytes = auth.ExportedAuthorization;
+auth.authorization#33fb7bb8 flags:# setup_password_required:flags.1?true otherwise_relogin_days:flags.1?int tmp_sessions:flags.0?int user:User = auth.Authorization;
---functions---
-auth.importAuthorization#a57a7dad id:long bytes:bytes = auth.Authorization;
-auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
-auth.exportAuthorization must be executed in the current DC (the DC with which a connection has already been established), passing in dc_id as the value for the new DC. The method should return the user identifier and a long string of random data. An import operation can be performed at the new DC by sending it what was received. Queries requiring authorization can then be successfully executed in the new DC.
-
+auth.importAuthorization#a57a7dad id:long bytes:bytes = auth.Authorization;
+auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;
+auth.exportAuthorization must be executed in the current DC (the DC with which a connection has already been established), passing in dc_id as the value for the new DC. The method should return the user identifier and a long string of random data. An import operation can be performed at the new DC by sending it what was received. Queries requiring authorization can then be successfully executed in the new DC.
diff --git a/data/corefork.telegram.org/api/dice.html b/data/corefork.telegram.org/api/dice.html
index 89db5f5186..711da3316a 100644
--- a/data/corefork.telegram.org/api/dice.html
+++ b/data/corefork.telegram.org/api/dice.html
@@ -50,9 +50,9 @@ This is implemented by using the dice constructors:
---functions---
-messages.sendMedia#3491eba9 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int = Updates;
+messages.sendMedia#e25ff8e0 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
-messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet;
+messages.getStickerSet#c8a0ec74 stickerset:InputStickerSet hash:int = messages.StickerSet;
help.getAppConfig#98914110 = JSONValue;
On startup, clients should fetch app configuration using help.getAppConfig.
diff --git a/data/corefork.telegram.org/api/discussion.html b/data/corefork.telegram.org/api/discussion.html
index 70271a7f45..8b3b27ed0b 100644
--- a/data/corefork.telegram.org/api/discussion.html
+++ b/data/corefork.telegram.org/api/discussion.html
@@ -45,7 +45,7 @@
boolFalse#bc799737 = Bool;
boolTrue#997275b5 = Bool;
-channelFull#e9b27a17 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string = ChatFull;
+channelFull#e13c3d20 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?Vector<string> = ChatFull;
messages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats;
diff --git a/data/corefork.telegram.org/api/files.html b/data/corefork.telegram.org/api/files.html
index 5cb328b3b2..6282ab0f8c 100644
--- a/data/corefork.telegram.org/api/files.html
+++ b/data/corefork.telegram.org/api/files.html
@@ -62,7 +62,7 @@
---functions---
-messages.sendMedia#3491eba9 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int = Updates;
+messages.sendMedia#e25ff8e0 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
messages.uploadMedia#519bc2b1 peer:InputPeer media:InputMedia = MessageMedia;
messages.sendEncryptedFile#5559481d flags:# silent:flags.0?true peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
@@ -110,7 +110,7 @@ After the entire file is successfully saved, the final method may be called and
---functions---
-messages.sendMultiMedia#cc0110cb flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int multi_media:Vector<InputSingleMedia> schedule_date:flags.10?int = Updates;
+messages.sendMultiMedia#f803138f flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int multi_media:Vector<InputSingleMedia> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
Telegram allows grouping photos into albums and generic files (audio, docuemnts) into media groups.
To do this, messages.sendMultiMedia is used, wrapping each InputMedia constructor (uploaded or pre-existing, maximum 10 per media group) into an inputSingleMedia constructor, optionally providing a custom per-file caption in message
.
For photo albums, clients should display an album caption only if exactly one photo in the group has a caption, otherwise no album caption should be displayed, and only when viewing in detail a specific photo of the group the caption should be shown. Use messages.uploadImportedMedia to upload media files eventually associated with the chat export. Below you will find information on schema changes. For more details on the use of layers, see Invoking API methods. Group message receipts, animated emoji reactions » and switch to 64-bit identifiers for users, groups, supergroups and channels. Over 160 constructors and methods were changed, changing parameter types from int to long, including user, chat and channel: the full changelog is elided for space reasons. Over 160 constructors and methods were changed, changing parameter types from int to long, including user, chat and channel: the full changelog is elided for space reasons. Also note that the hashing algorithm for pagination was also changed to account for 64-bit IDs. Chat themes and sponsored messages, save video recordings of group calls and livestreams. 2FA password reset for logged-in accounts, add a method to check the validity of the e-mail recovery code before use. Custom placeholder for bot reply keyboards. Group call screen sharing, short name suggestions for stickerpacks, scoped bot commands, imported stickers, wallpaper and group call improvements. Deprecate legacy profile picture locations, group call improvements. Deprecate legacy profile picture locations, group call improvements. Scheduled group calls, payments in channels, payment tips, stripped profile picture thumbnails. Ban channels in chats. Voice chats in channels. Expiring invite links, self-destruction settings for all messages in a chat, gigagroups, chat import improvements. Import messages from foreign chat apps, delete history for both users upon deletion of a secret chat, delete phone call history, group call improvements. Group calls. Added SVG path previews for animated stickers. Added message statistics, and a method to unpin all pinned messages in a chat. Added message threads and comment sections in channel posts.
diff --git a/data/corefork.telegram.org/api/import.html b/data/corefork.telegram.org/api/import.html
index 8ebb0f6140..bb6e294831 100644
--- a/data/corefork.telegram.org/api/import.html
+++ b/data/corefork.telegram.org/api/import.html
@@ -85,7 +85,7 @@ Upon final user confirmation, the import proc
import_id
is the id
contained in the messages.historyImport constructor, returned by messages.initHistoryImport in the previous step. 5. Finalize the import
-
+message#85d6cbe2 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
+
+message#38116ee0 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
messageFwdHeader#5f777dce flags:# imported:flags.7?true from_id:flags.0?Peer from_name:flags.5?string date:int channel_post:flags.2?int post_author:flags.3?string saved_from_peer:flags.4?Peer saved_from_msg_id:flags.4?int psa_type:flags.6?string = MessageFwdHeader;
diff --git a/data/corefork.telegram.org/api/layers.html b/data/corefork.telegram.org/api/layers.html
index 8f2254a383..47d3c7351d 100644
--- a/data/corefork.telegram.org/api/layers.html
+++ b/data/corefork.telegram.org/api/layers.html
@@ -44,11 +44,298 @@ Layer…">
Layer 133
+Layer 138
+Schema changes
+New Methods
+
+
+New Constructors
+
+
+Changed Constructors
+
+
+Deleted Constructors
+
+
+Schema
+dialog#a8edd0f5 flags:# pinned:flags.2?true unread_mark:flags.3?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int = Dialog;
+messageReactions#4f2b9479 flags:# min:flags.0?true can_see_list:flags.2?true results:Vector<ReactionCount> recent_reactions:flags.1?Vector<MessagePeerReaction> = MessageReactions;
+messages.messageReactionsList#31bd492d flags:# count:int reactions:Vector<MessagePeerReaction> chats:Vector<Chat> users:Vector<User> next_offset:flags.0?string = messages.MessageReactionsList;
+messagePeerReaction#51b67eff flags:# big:flags.0?true unread:flags.1?true peer_id:Peer reaction:string = MessagePeerReaction;
+---functions---
+messages.getUnreadReactions#e85bae1a peer:InputPeer offset_id:int add_offset:int limit:int max_id:int min_id:int = messages.Messages;
+messages.readReactions#82e251d7 peer:InputPeer = messages.AffectedHistory;Layer 137
+Schema changes
+New Methods
+
+
+New Constructors
+
+
+Changed Constructors
+
+
+Schema
+availableReaction#c077ec01 flags:# inactive:flags.0?true reaction:string title:string static_icon:Document appear_animation:Document select_animation:Document activate_animation:Document effect_animation:Document around_animation:flags.1?Document center_icon:flags.1?Document = AvailableReaction;
+messages.translateNoResult#67ca4737 = messages.TranslatedText;
+messages.translateResultText#a214f7d0 text:string = messages.TranslatedText;
+---functions---
+messages.translateText#24ce6dee flags:# peer:flags.0?InputPeer msg_id:flags.0?int text:flags.1?string from_lang:flags.2?string to_lang:string = messages.TranslatedText;Layer 136
+Schema changes
+New Methods
+
+
+New Constructors
+
+
+Changed Constructors
+
+
+Schema
+chatFull#d18ee226 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:long about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string requests_pending:flags.17?int recent_requesters:flags.17?Vector<long> available_reactions:flags.18?Vector<string> = ChatFull;
+message#38116ee0 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
+channelFull#e13c3d20 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?Vector<string> = ChatFull;
+sponsoredMessage#3a836df8 flags:# random_id:bytes from_id:flags.3?Peer chat_invite:flags.4?ChatInvite chat_invite_hash:flags.4?string channel_post:flags.2?int start_param:flags.0?string message:string entities:flags.1?Vector<MessageEntity> = SponsoredMessage;
+updateMessageReactions#154798c3 peer:Peer msg_id:int reactions:MessageReactions = Update;
+reactionCount#6fb250d1 flags:# chosen:flags.0?true reaction:string count:int = ReactionCount;
+messageReactions#087b6e36 flags:# min:flags.0?true can_see_list:flags.2?true results:Vector<ReactionCount> recent_reactons:flags.1?Vector<MessageUserReaction> = MessageReactions;
+messageUserReaction#932844fa user_id:long reaction:string = MessageUserReaction;
+messages.messageReactionsList#a366923c flags:# count:int reactions:Vector<MessageUserReaction> users:Vector<User> next_offset:flags.0?string = messages.MessageReactionsList;
+availableReaction#021d7c4b flags:# inactive:flags.0?true reaction:string title:string static_icon:Document appear_animation:Document select_animation:Document activate_animation:Document effect_animation:Document = AvailableReaction;
+messages.availableReactionsNotModified#9f071957 = messages.AvailableReactions;
+messages.availableReactions#768e3aad hash:int reactions:Vector<AvailableReaction> = messages.AvailableReactions;
+messageEntitySpoiler#32ca960f offset:int length:int = MessageEntity;
+channelAdminLogEventActionChangeAvailableReactions#9cf7f76a prev_value:Vector<string> new_value:Vector<string> = ChannelAdminLogEventAction;
+---functions---
+messages.sendReaction#25690ce4 flags:# big:flags.1?true peer:InputPeer msg_id:int reaction:flags.0?string = Updates;
+messages.getMessagesReactions#8bba90e6 peer:InputPeer id:Vector<int> = Updates;
+messages.getMessageReactionsList#e0ee6b77 flags:# peer:InputPeer id:int reaction:flags.0?string offset:flags.1?string limit:int = messages.MessageReactionsList;
+messages.setChatAvailableReactions#14050ea6 peer:InputPeer available_reactions:Vector<string> = Updates;
+messages.getAvailableReactions#18dea0ac hash:int = messages.AvailableReactions;
+messages.setDefaultReaction#d960c4d4 reaction:string = Bool;Layer 135
+Schema changes
+New Methods
+
+
+Changed Methods
+
+
+Deleted Methods
+
+
+New Constructors
+
+
+Changed Constructors
+
+
+Schema
+auth.authorization#33fb7bb8 flags:# setup_password_required:flags.1?true otherwise_relogin_days:flags.1?int tmp_sessions:flags.0?int user:User = auth.Authorization;
+peerSettings#a518110d flags:# report_spam:flags.0?true add_contact:flags.1?true block_contact:flags.2?true share_contact:flags.3?true need_contacts_exception:flags.4?true report_geo:flags.5?true autoarchived:flags.7?true invite_members:flags.8?true request_chat_broadcast:flags.10?true geo_distance:flags.6?int request_chat_title:flags.9?string request_chat_date:flags.9?int = PeerSettings;
+userFull#cf366521 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true id:long about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string = UserFull;
+account.authorizations#4bff8ea0 authorization_ttl_days:int authorizations:Vector<Authorization> = account.Authorizations;
+channelFull#56662e2e flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer = ChatFull;
+codeSettings#8a6469c2 flags:# allow_flashcall:flags.0?true current_number:flags.1?true allow_app_hash:flags.4?true allow_missed_call:flags.5?true logout_tokens:flags.6?Vector<bytes> = CodeSettings;
+inputKeyboardButtonUserProfile#e988037b text:string user_id:InputUser = KeyboardButton;
+keyboardButtonUserProfile#308660c1 text:string user_id:long = KeyboardButton;
+channels.sendAsPeers#8356cda9 peers:Vector<Peer> chats:Vector<Chat> users:Vector<User> = channels.SendAsPeers;
+channelAdminLogEventActionToggleNoForwards#cb2ac766 new_value:Bool = ChannelAdminLogEventAction;
+messages.stickerSetNotModified#d3f924eb = messages.StickerSet;
+users.userFull#3b6d152e full_user:UserFull chats:Vector<Chat> users:Vector<User> = users.UserFull;
+messages.peerSettings#6880b94d settings:PeerSettings chats:Vector<Chat> users:Vector<User> = messages.PeerSettings;
+channelAdminLogEventActionSendMessage#278f2868 message:Message = ChannelAdminLogEventAction;
+auth.codeTypeMissedCall#d61ad6ee = auth.CodeType;
+auth.sentCodeTypeMissedCall#82006484 prefix:string length:int = auth.SentCodeType;
+auth.loggedOut#c3a2835f flags:# future_auth_token:flags.0?bytes = auth.LoggedOut;
+---functions---
+auth.logOut#3e72ba19 = auth.LoggedOut;
+users.getFullUser#b60f5918 id:InputUser = users.UserFull;
+messages.sendMessage#0d9d75a4 flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
+messages.sendMedia#e25ff8e0 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
+messages.forwardMessages#cc30290b flags:# silent:flags.5?true background:flags.6?true with_my_score:flags.8?true drop_author:flags.11?true drop_media_captions:flags.12?true noforwards:flags.14?true from_peer:InputPeer id:Vector<int> random_id:Vector<long> to_peer:InputPeer schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
+messages.getPeerSettings#efd9a6a2 peer:InputPeer = messages.PeerSettings;
+messages.getStickerSet#c8a0ec74 stickerset:InputStickerSet hash:int = messages.StickerSet;
+channels.reportSpam#f44a8315 channel:InputChannel participant:InputPeer id:Vector<int> = Bool;
+messages.sendInlineBotResult#7aa11297 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true hide_via:flags.11?true peer:InputPeer reply_to_msg_id:flags.0?int random_id:long query_id:long id:string schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
+messages.sendMultiMedia#f803138f flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int multi_media:Vector<InputSingleMedia> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
+messages.hideAllChatJoinRequests#e085f4ea flags:# approved:flags.0?true peer:InputPeer link:flags.1?string = Updates;
+messages.toggleNoForwards#b11eafa2 peer:InputPeer enabled:Bool = Updates;
+messages.saveDefaultSendAs#ccfddf96 peer:InputPeer send_as:InputPeer = Bool;
+channels.getSendAs#0dc770ee peer:InputPeer = channels.SendAsPeers;
+account.setAuthorizationTTL#bf899aa0 authorization_ttl_days:int = Bool;
+account.changeAuthorizationSettings#40f48462 flags:# hash:long encrypted_requests_disabled:flags.0?Bool call_requests_disabled:flags.1?Bool = Bool;
+channels.deleteParticipantHistory#367544db channel:InputChannel participant:InputPeer = messages.AffectedHistory;Layer 134
+Schema changes
+New Methods
+
+
+Changed Methods
+
+
+New Constructors
+
+
+Changed Constructors
+
+
+Deleted Constructors
+
+
+Schema
+chat#41cbf256 flags:# creator:flags.0?true kicked:flags.1?true left:flags.2?true deactivated:flags.5?true call_active:flags.23?true call_not_empty:flags.24?true noforwards:flags.25?true id:long title:string photo:ChatPhoto participants_count:int date:int version:int migrated_to:flags.6?InputChannel admin_rights:flags.14?ChatAdminRights default_banned_rights:flags.18?ChatBannedRights = Chat;
+chatFull#46a6ffb4 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:long about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string requests_pending:flags.17?int recent_requesters:flags.17?Vector<long> = ChatFull;
+message#85d6cbe2 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
+authorization#ad01d61d flags:# current:flags.0?true official_app:flags.1?true password_pending:flags.2?true encrypted_requests_disabled:flags.3?true call_requests_disabled:flags.4?true hash:long device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
+chatInviteExported#0ab4a819 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 = ExportedChatInvite;
+chatInvite#300c44c1 flags:# channel:flags.0?true broadcast:flags.1?true public:flags.2?true megagroup:flags.3?true request_needed:flags.6?true title:string about:flags.5?string photo:Photo participants_count:int participants:flags.4?Vector<User> = ChatInvite;
+stickerSet#d7df217a flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true videos:flags.6?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int thumb_version:flags.4?int count:int hash:int = StickerSet;
+channel#8261ac61 flags:# creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true slowmode_enabled:flags.22?true call_active:flags.23?true call_not_empty:flags.24?true fake:flags.25?true gigagroup:flags.26?true noforwards:flags.27?true id:long access_hash:flags.13?long title:string username:flags.6?string photo:ChatPhoto date:int restriction_reason:flags.9?Vector<RestrictionReason> admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int = Chat;
+channelFull#59cff963 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> = ChatFull;
+channelParticipantSelf#35a8bfa7 flags:# via_request:flags.0?true user_id:long inviter_id:long date:int = ChannelParticipant;
+channelAdminLogEventsFilter#ea107ae4 flags:# join:flags.0?true leave:flags.1?true invite:flags.2?true ban:flags.3?true unban:flags.4?true kick:flags.5?true unkick:flags.6?true promote:flags.7?true demote:flags.8?true info:flags.9?true settings:flags.10?true pinned:flags.11?true edit:flags.12?true delete:flags.13?true group_call:flags.14?true invites:flags.15?true send:flags.16?true = ChannelAdminLogEventsFilter;
+theme#a00e67d6 flags:# creator:flags.0?true default:flags.1?true for_chat:flags.5?true id:long access_hash:long slug:string title:string document:flags.2?Document settings:flags.3?Vector<ThemeSettings> emoticon:flags.6?string installs_count:flags.4?int = Theme;
+groupCall#d597650c flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true join_date_asc:flags.6?true schedule_start_subscribed:flags.8?true can_start_video:flags.9?true record_video_active:flags.11?true rtmp_stream:flags.12?true id:long access_hash:long participants_count:int title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int schedule_date:flags.7?int unmuted_video_count:flags.10?int unmuted_video_limit:int version:int = GroupCall;
+chatInviteImporter#8c5adfd9 flags:# requested:flags.0?true user_id:long date:int about:flags.2?string approved_by:flags.1?long = ChatInviteImporter;
+sponsoredMessage#d151e19a flags:# random_id:bytes from_id:Peer channel_post:flags.2?int start_param:flags.0?string message:string entities:flags.1?Vector<MessageEntity> = SponsoredMessage;
+searchResultsCalendarPeriod#c9b0539f date:int min_msg_id:int max_msg_id:int count:int = SearchResultsCalendarPeriod;
+messages.searchResultsCalendar#147ee23c flags:# inexact:flags.0?true count:int min_date:int min_msg_id:int offset_id_offset:flags.1?int periods:Vector<SearchResultsCalendarPeriod> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.SearchResultsCalendar;
+searchResultPosition#7f648b67 msg_id:int date:int offset:int = SearchResultsPosition;
+messages.searchResultsPositions#53b22baf count:int positions:Vector<SearchResultsPosition> = messages.SearchResultsPositions;
+messageActionChatJoinedByRequest#ebbca3cb = MessageAction;
+updatePendingJoinRequests#7063c3db peer:Peer requests_pending:int recent_requesters:Vector<long> = Update;
+updateBotChatInviteRequester#11dfa986 peer:Peer date:int user_id:long about:string invite:ExportedChatInvite qts:int = Update;
+channelAdminLogEventActionParticipantJoinByRequest#afb6144a invite:ExportedChatInvite approved_by:long = ChannelAdminLogEventAction;
+---functions---
+messages.deleteHistory#b08f922a flags:# just_clear:flags.0?true revoke:flags.1?true peer:InputPeer max_id:int min_date:flags.2?int max_date:flags.3?int = messages.AffectedHistory;
+messages.exportChatInvite#a02ce5d5 flags:# legacy_revoke_permanent:flags.2?true request_needed:flags.3?true peer:InputPeer expire_date:flags.0?int usage_limit:flags.1?int title:flags.4?string = ExportedChatInvite;
+stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true animated:flags.1?true videos:flags.4?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector<InputStickerSetItem> software:flags.3?string = messages.StickerSet;
+account.createTheme#652e4400 flags:# slug:string title:string document:flags.2?InputDocument settings:flags.3?Vector<InputThemeSettings> = Theme;
+account.updateTheme#2bf40ccc flags:# format:string theme:InputTheme slug:flags.0?string title:flags.1?string document:flags.2?InputDocument settings:flags.3?Vector<InputThemeSettings> = Theme;
+account.installTheme#c727bb3b flags:# dark:flags.0?true theme:flags.1?InputTheme format:flags.2?string base_theme:flags.3?BaseTheme = Bool;
+phone.createGroupCall#48cdc6d8 flags:# rtmp_stream:flags.2?true peer:InputPeer random_id:int title:flags.0?string schedule_date:flags.1?int = Updates;
+messages.editExportedChatInvite#bdca2f75 flags:# revoked:flags.2?true peer:InputPeer link:string expire_date:flags.0?int usage_limit:flags.1?int request_needed:flags.3?Bool title:flags.4?string = messages.ExportedChatInvite;
+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;
+account.getChatThemes#d638de89 hash:long = account.Themes;
+messages.getSearchResultsCalendar#49f0bde9 peer:InputPeer filter:MessagesFilter offset_id:int offset_date:int = messages.SearchResultsCalendar;
+messages.getSearchResultsPositions#6e9583a3 peer:InputPeer filter:MessagesFilter offset_id:int limit:int = messages.SearchResultsPositions;
+messages.hideChatJoinRequest#7fe7e815 flags:# approved:flags.0?true peer:InputPeer user_id:InputUser = Updates;Layer 133
You can visit the schema for an updated list of constructors.
+You can visit the schema for an updated list of constructors.Changes
+Changes
-Layer 132
+Layer 132
Schema changes
-New Methods
+Schema changes
+New Methods
-Changed Methods
+Changed Methods
-New Constructors
+New Constructors
-Changed Constructors
+Changed Constructors
-Schema
-chatFull#49a0a5d9 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:int about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string = ChatFull;\
-
-userFull#d697ff05 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true user:User about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string = UserFull;\
-
-channelFull#2f532f3c flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string = ChatFull;\
-
-theme#e802b8dc flags:# creator:flags.0?true default:flags.1?true for_chat:flags.5?true id:long access_hash:long slug:string title:string document:flags.2?Document settings:flags.3?ThemeSettings installs_count:flags.4?int = Theme;\
-
-inputThemeSettings#ff38f912 flags:# message_colors_animated:flags.2?true base_theme:BaseTheme accent_color:int message_colors:flags.0?Vector<int> wallpaper:flags.1?InputWallPaper wallpaper_settings:flags.1?WallPaperSettings = InputThemeSettings;\
-
-themeSettings#8db4e76c flags:# message_colors_animated:flags.2?true base_theme:BaseTheme accent_color:int message_colors:flags.0?Vector<int> wallpaper:flags.1?WallPaper = ThemeSettings;\
-
-messages.discussionMessage#a6341782 flags:# messages:Vector<Message> max_id:flags.0?int read_inbox_max_id:flags.1?int read_outbox_max_id:flags.2?int unread_count:int chats:Vector<Chat> users:Vector<User> = messages.DiscussionMessage;\
-
-inputGroupCallStream#0598a92a flags:# call:InputGroupCall time_ms:long scale:int video_channel:flags.0?int video_quality:flags.0?int = InputFileLocation;\
-
-chatTheme#ed0b5c33 emoticon:string theme:Theme dark_theme:Theme = ChatTheme;\
-
+
Schema
+chatFull#49a0a5d9 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:int about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string = ChatFull;
+userFull#d697ff05 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true user:User about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string = UserFull;
+channelFull#2f532f3c flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string = ChatFull;
+theme#e802b8dc flags:# creator:flags.0?true default:flags.1?true for_chat:flags.5?true id:long access_hash:long slug:string title:string document:flags.2?Document settings:flags.3?ThemeSettings installs_count:flags.4?int = Theme;
+inputThemeSettings#ff38f912 flags:# message_colors_animated:flags.2?true base_theme:BaseTheme accent_color:int message_colors:flags.0?Vector<int> wallpaper:flags.1?InputWallPaper wallpaper_settings:flags.1?WallPaperSettings = InputThemeSettings;
+themeSettings#8db4e76c flags:# message_colors_animated:flags.2?true base_theme:BaseTheme accent_color:int message_colors:flags.0?Vector<int> wallpaper:flags.1?WallPaper = ThemeSettings;
+messages.discussionMessage#a6341782 flags:# messages:Vector<Message> max_id:flags.0?int read_inbox_max_id:flags.1?int read_outbox_max_id:flags.2?int unread_count:int chats:Vector<Chat> users:Vector<User> = messages.DiscussionMessage;
+inputGroupCallStream#0598a92a flags:# call:InputGroupCall time_ms:long scale:int video_channel:flags.0?int video_quality:flags.0?int = InputFileLocation;
+chatTheme#ed0b5c33 emoticon:string theme:Theme dark_theme:Theme = ChatTheme;
account.chatThemesNotModified#e011e1c4 = account.ChatThemes;
-account.chatThemes#fe4cbebd hash:int themes:Vector<ChatTheme> = account.ChatThemes;\
-
-messageActionSetChatTheme#aa786345 emoticon:string = MessageAction;\
-
+account.chatThemes#fe4cbebd hash:int themes:Vector<ChatTheme> = account.ChatThemes;
+messageActionSetChatTheme#aa786345 emoticon:string = MessageAction;
sendMessageChooseStickerAction#b05ac6b1 = SendMessageAction;
-sponsoredMessage#2a3c381f flags:# random_id:bytes from_id:Peer start_param:flags.0?string message:string entities:flags.1?Vector<MessageEntity> = SponsoredMessage;\
-
-messages.sponsoredMessages#65a4c7d5 messages:Vector<SponsoredMessage> chats:Vector<Chat> users:Vector<User> = messages.SponsoredMessages;\
-
----functions---\
-
-phone.toggleGroupCallRecord#f128c708 flags:# start:flags.0?true video:flags.2?true call:InputGroupCall title:flags.1?string video_portrait:flags.2?Bool = Updates;\
-
-account.getChatThemes#d6d71d7b hash:int = account.ChatThemes;\
-
-messages.setChatTheme#e63be13f peer:InputPeer emoticon:string = Updates;\
-
+sponsoredMessage#2a3c381f flags:# random_id:bytes from_id:Peer start_param:flags.0?string message:string entities:flags.1?Vector<MessageEntity> = SponsoredMessage;
+messages.sponsoredMessages#65a4c7d5 messages:Vector<SponsoredMessage> chats:Vector<Chat> users:Vector<User> = messages.SponsoredMessages;
+---functions---
+phone.toggleGroupCallRecord#f128c708 flags:# start:flags.0?true video:flags.2?true call:InputGroupCall title:flags.1?string video_portrait:flags.2?Bool = Updates;
+account.getChatThemes#d6d71d7b hash:int = account.ChatThemes;
+messages.setChatTheme#e63be13f peer:InputPeer emoticon:string = Updates;
channels.viewSponsoredMessage#beaedb94 channel:InputChannel random_id:bytes = Bool;
-channels.getSponsoredMessages#ec210fbf channel:InputChannel = messages.SponsoredMessages;\
-Layer 131
+channels.getSponsoredMessages#ec210fbf channel:InputChannel = messages.SponsoredMessages;Layer 131
Schema changes
-New Methods
+Schema changes
+New Methods
-Changed Methods
+Changed Methods
-New Constructors
+New Constructors
-Changed Constructors
+Changed Constructors
-Schema
-account.password#185b184f flags:# has_recovery:flags.0?true has_secure_values:flags.1?true has_password:flags.2?true current_algo:flags.2?PasswordKdfAlgo srp_B:flags.2?bytes srp_id:flags.2?long hint:flags.3?string email_unconfirmed_pattern:flags.4?string new_algo:PasswordKdfAlgo new_secure_algo:SecurePasswordKdfAlgo secure_random:bytes pending_reset_date:flags.5?int = account.Password;\
-
+
Schema
+account.password#185b184f flags:# has_recovery:flags.0?true has_secure_values:flags.1?true has_password:flags.2?true current_algo:flags.2?PasswordKdfAlgo srp_B:flags.2?bytes srp_id:flags.2?long hint:flags.3?string email_unconfirmed_pattern:flags.4?string new_algo:PasswordKdfAlgo new_secure_algo:SecurePasswordKdfAlgo secure_random:bytes pending_reset_date:flags.5?int = account.Password;
groupCall#d597650c flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true join_date_asc:flags.6?true schedule_start_subscribed:flags.8?true can_start_video:flags.9?true record_video_active:flags.11?true id:long access_hash:long participants_count:int title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int schedule_date:flags.7?int unmuted_video_count:flags.10?int unmuted_video_limit:int version:int = GroupCall;
-groupCallParticipantVideo#67753ac8 flags:# paused:flags.0?true endpoint:string source_groups:Vector<GroupCallParticipantVideoSourceGroup> audio_source:flags.1?int = GroupCallParticipantVideo;\
-
+groupCallParticipantVideo#67753ac8 flags:# paused:flags.0?true endpoint:string source_groups:Vector<GroupCallParticipantVideoSourceGroup> audio_source:flags.1?int = GroupCallParticipantVideo;
account.resetPasswordFailedWait#e3779861 retry_date:int = account.ResetPasswordResult;
account.resetPasswordRequestedWait#e9effc7d until_date:int = account.ResetPasswordResult;
-account.resetPasswordOk#e926d63e = account.ResetPasswordResult;\
-
-updateBotCommands#cf7e0873 peer:Peer bot_id:int commands:Vector<BotCommand> = Update;\
-
----functions---\
-
-auth.recoverPassword#37096c70 flags:# code:string new_settings:flags.0?account.PasswordInputSettings = auth.Authorization;\
-
-phone.getGroupCall#041845db call:InputGroupCall limit:int = phone.GroupCall;\
-
+account.resetPasswordOk#e926d63e = account.ResetPasswordResult;
+updateBotCommands#cf7e0873 peer:Peer bot_id:int commands:Vector<BotCommand> = Update;
+---functions---
+auth.recoverPassword#37096c70 flags:# code:string new_settings:flags.0?account.PasswordInputSettings = auth.Authorization;
+phone.getGroupCall#041845db call:InputGroupCall limit:int = phone.GroupCall;
account.resetPassword#9308ce1b = account.ResetPasswordResult;
account.declinePasswordReset#4c9409f6 = Bool;
-auth.checkRecoveryPassword#0d36bf79 code:string = Bool;\
-Layer 130
+auth.checkRecoveryPassword#0d36bf79 code:string = Bool;Layer 130
Schema changes
-Changed Constructors
+Schema changes
+Changed Constructors
-Schema
+Schema
replyKeyboardForceReply#86b40b08 flags:# single_use:flags.1?true selective:flags.2?true placeholder:flags.3?string = ReplyMarkup;
-replyKeyboardMarkup#85dd99d1 flags:# resize:flags.0?true single_use:flags.1?true selective:flags.2?true rows:Vector<KeyboardButtonRow> placeholder:flags.3?string = ReplyMarkup;\
-
Layer 129
+replyKeyboardMarkup#85dd99d1 flags:# resize:flags.0?true single_use:flags.1?true selective:flags.2?true rows:Vector<KeyboardButtonRow> placeholder:flags.3?string = ReplyMarkup;Layer 129
Schema changes
-New Methods
+Schema changes
+New Methods
-Changed Methods
+Changed Methods
-New Constructors
+New Constructors
-Changed Constructors
+Changed Constructors
-Schema
-help.appUpdate#ccbbce30 flags:# can_not_skip:flags.0?true id:int version:string text:string entities:Vector<MessageEntity> document:flags.1?Document url:flags.2?string sticker:flags.3?Document = help.AppUpdate;\
-
-wallPaperSettings#1dc1bca4 flags:# blur:flags.1?true motion:flags.2?true background_color:flags.0?int second_background_color:flags.4?int third_background_color:flags.5?int fourth_background_color:flags.6?int intensity:flags.3?int rotation:flags.4?int = WallPaperSettings;\
-
-inputWallPaperNoFile#967a462e id:long = InputWallPaper;\
-
-wallPaperNoFile#e0804116 id:long flags:# default:flags.1?true dark:flags.4?true settings:flags.2?WallPaperSettings = WallPaper;\
-
-updateMessagePollVote#37f69f0b poll_id:long user_id:int options:Vector<bytes> qts:int = Update;\
-
+
Schema
+help.appUpdate#ccbbce30 flags:# can_not_skip:flags.0?true id:int version:string text:string entities:Vector<MessageEntity> document:flags.1?Document url:flags.2?string sticker:flags.3?Document = help.AppUpdate;
+wallPaperSettings#1dc1bca4 flags:# blur:flags.1?true motion:flags.2?true background_color:flags.0?int second_background_color:flags.4?int third_background_color:flags.5?int fourth_background_color:flags.6?int intensity:flags.3?int rotation:flags.4?int = WallPaperSettings;
+inputWallPaperNoFile#967a462e id:long = InputWallPaper;
+wallPaperNoFile#e0804116 id:long flags:# default:flags.1?true dark:flags.4?true settings:flags.2?WallPaperSettings = WallPaper;
+updateMessagePollVote#37f69f0b poll_id:long user_id:int options:Vector<bytes> qts:int = Update;
groupCall#653dbaad flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true join_date_asc:flags.6?true schedule_start_subscribed:flags.8?true can_start_video:flags.9?true id:long access_hash:long participants_count:int title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int schedule_date:flags.7?int version:int = GroupCall;
groupCallParticipant#eba636fe flags:# muted:flags.0?true left:flags.1?true can_self_unmute:flags.2?true just_joined:flags.4?true versioned:flags.5?true min:flags.8?true muted_by_you:flags.9?true volume_by_admin:flags.10?true self:flags.12?true video_joined:flags.15?true peer:Peer date:int active_date:flags.3?int source:int volume:flags.7?int about:flags.11?string raise_hand_rating:flags.13?long video:flags.6?GroupCallParticipantVideo presentation:flags.14?GroupCallParticipantVideo = GroupCallParticipant;
groupCallParticipantVideoSourceGroup#dcb118b7 semantics:string sources:Vector<int> = GroupCallParticipantVideoSourceGroup;
-groupCallParticipantVideo#78e41663 flags:# paused:flags.0?true endpoint:string source_groups:Vector<GroupCallParticipantVideoSourceGroup> = GroupCallParticipantVideo;\
-
-updateGroupCallConnection#0b783982 flags:# presentation:flags.0?true params:DataJSON = Update;\
-
-stickers.suggestedShortName#85fea03f short_name:string = stickers.SuggestedShortName;\
-
+groupCallParticipantVideo#78e41663 flags:# paused:flags.0?true endpoint:string source_groups:Vector<GroupCallParticipantVideoSourceGroup> = GroupCallParticipantVideo;
+updateGroupCallConnection#0b783982 flags:# presentation:flags.0?true params:DataJSON = Update;
+stickers.suggestedShortName#85fea03f short_name:string = stickers.SuggestedShortName;
botCommandScopeDefault#2f6cb2ab = BotCommandScope;
botCommandScopeUsers#3c4f04d8 = BotCommandScope;
botCommandScopeChats#6fe1a881 = BotCommandScope;
botCommandScopeChatAdmins#b9aa606a = BotCommandScope;
botCommandScopePeer#db9d897d peer:InputPeer = BotCommandScope;
botCommandScopePeerAdmins#3fd863d1 peer:InputPeer = BotCommandScope;
-botCommandScopePeerUser#0a1321f3 peer:InputPeer user_id:InputUser = BotCommandScope;\
-
----functions---\
-
-stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true animated:flags.1?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector<InputStickerSetItem> software:flags.3?string = messages.StickerSet;\
-
-bots.setBotCommands#0517165a scope:BotCommandScope lang_code:string commands:Vector<BotCommand> = Bool;\
-
+botCommandScopePeerUser#0a1321f3 peer:InputPeer user_id:InputUser = BotCommandScope;
+---functions---
+stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true animated:flags.1?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector<InputStickerSetItem> software:flags.3?string = messages.StickerSet;
+bots.setBotCommands#0517165a scope:BotCommandScope lang_code:string commands:Vector<BotCommand> = Bool;
phone.checkGroupCall#b59cf977 call:InputGroupCall sources:Vector<int> = Vector<int>;
phone.editGroupCallParticipant#a5273abf flags:# call:InputGroupCall participant:InputPeer muted:flags.0?Bool volume:flags.1?int raise_hand:flags.2?Bool video_stopped:flags.3?Bool video_paused:flags.4?Bool presentation_paused:flags.5?Bool = Updates;
phone.joinGroupCallPresentation#cbea6bc4 call:InputGroupCall params:DataJSON = Updates;
-phone.leaveGroupCallPresentation#1c50d144 call:InputGroupCall = Updates;\
-
+phone.leaveGroupCallPresentation#1c50d144 call:InputGroupCall = Updates;
stickers.checkShortName#284b3639 short_name:string = Bool;
-stickers.suggestShortName#4dafc503 title:string = stickers.SuggestedShortName;\
-
+stickers.suggestShortName#4dafc503 title:string = stickers.SuggestedShortName;
bots.resetBotCommands#3d8de0f9 scope:BotCommandScope lang_code:string = Bool;
-bots.getBotCommands#e34c0dd6 scope:BotCommandScope lang_code:string = Vector<BotCommand>;\
-Layer 128
-
See the file documentation article for more info on the new file constructors ».Schema changes
-Changed Methods
+bots.getBotCommands#e34c0dd6 scope:BotCommandScope lang_code:string = Vector<BotCommand>;Layer 128
+
+See the file documentation article for more info on the new file constructors ».Schema changes
+Changed Methods
-Changed Constructors
+Changed Constructors
-Deleted Constructors
+Deleted Constructors
-Schema
-userProfilePhoto#82d1f706 flags:# has_video:flags.0?true photo_id:long stripped_thumb:flags.1?bytes dc_id:int = UserProfilePhoto;\
-
-chatPhoto#1c6e1c11 flags:# has_video:flags.0?true photo_id:long stripped_thumb:flags.1?bytes dc_id:int = ChatPhoto;\
-
+
Schema
+userProfilePhoto#82d1f706 flags:# has_video:flags.0?true photo_id:long stripped_thumb:flags.1?bytes dc_id:int = UserProfilePhoto;
+chatPhoto#1c6e1c11 flags:# has_video:flags.0?true photo_id:long stripped_thumb:flags.1?bytes dc_id:int = ChatPhoto;
photoSize#75c78e60 type:string w:int h:int size:int = PhotoSize;
-photoCachedSize#021e1ad6 type:string w:int h:int bytes:bytes = PhotoSize;\
-
+photoCachedSize#021e1ad6 type:string w:int h:int bytes:bytes = PhotoSize;
inputPeerPhotoFileLocation#37257e99 flags:# big:flags.0?true peer:InputPeer photo_id:long = InputFileLocation;
-inputStickerSetThumb#9d84f3db stickerset:InputStickerSet thumb_version:int = InputFileLocation;\
-
-videoSize#de33b094 flags:# type:string w:int h:int size:int video_start_ts:flags.0?double = VideoSize;\
-
-photoSizeProgressive#fa3efb95 type:string w:int h:int sizes:Vector<int> = PhotoSize;\
-
----functions---\
-
-phone.editGroupCallParticipant#aec610e4 flags:# call:InputGroupCall participant:InputPeer muted:flags.0?Bool volume:flags.1?int raise_hand:flags.2?Bool video_muted:flags.3?Bool = Updates;\
-Layer 127
+inputStickerSetThumb#9d84f3db stickerset:InputStickerSet thumb_version:int = InputFileLocation;
+videoSize#de33b094 flags:# type:string w:int h:int size:int video_start_ts:flags.0?double = VideoSize;
+photoSizeProgressive#fa3efb95 type:string w:int h:int sizes:Vector<int> = PhotoSize;
+---functions---
+phone.editGroupCallParticipant#aec610e4 flags:# call:InputGroupCall participant:InputPeer muted:flags.0?Bool volume:flags.1?int raise_hand:flags.2?Bool video_muted:flags.3?Bool = Updates;Layer 127
Schema changes
-New Methods
+Schema changes
+New Methods
-Changed Methods
+Changed Methods
-New Constructors
+New Constructors
-Changed Constructors
+Changed Constructors
-Schema
-userProfilePhoto#cc656077 flags:# has_video:flags.0?true photo_id:long photo_small:FileLocation photo_big:FileLocation stripped_thumb:flags.1?bytes dc_id:int = UserProfilePhoto;\
-
-chatPhoto#4790ee05 flags:# has_video:flags.0?true photo_small:FileLocation photo_big:FileLocation stripped_thumb:flags.1?bytes dc_id:int = ChatPhoto;\
-
-stickerSet#d7df217a flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int thumb_version:flags.4?int count:int hash:int = StickerSet;\
-
+
Schema
+userProfilePhoto#cc656077 flags:# has_video:flags.0?true photo_id:long photo_small:FileLocation photo_big:FileLocation stripped_thumb:flags.1?bytes dc_id:int = UserProfilePhoto;
+chatPhoto#4790ee05 flags:# has_video:flags.0?true photo_small:FileLocation photo_big:FileLocation stripped_thumb:flags.1?bytes dc_id:int = ChatPhoto;
+stickerSet#d7df217a flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int thumb_version:flags.4?int count:int hash:int = StickerSet;
invoice#0cd886e0 flags:# test:flags.0?true name_requested:flags.1?true phone_requested:flags.2?true email_requested:flags.3?true shipping_address_requested:flags.4?true flexible:flags.5?true phone_to_provider:flags.6?true email_to_provider:flags.7?true currency:string prices:Vector<LabeledPrice> max_tip_amount:flags.8?long suggested_tip_amounts:flags.8?Vector<long> = Invoice;
-inputMediaInvoice#d9799874 flags:# title:string description:string photo:flags.0?InputWebDocument invoice:Invoice payload:bytes provider:string provider_data:DataJSON start_param:flags.1?string = InputMedia;\
-
+inputMediaInvoice#d9799874 flags:# title:string description:string photo:flags.0?InputWebDocument invoice:Invoice payload:bytes provider:string provider_data:DataJSON start_param:flags.1?string = InputMedia;
payments.paymentForm#8d0b2415 flags:# can_save_credentials:flags.2?true password_missing:flags.3?true form_id:long bot_id:int invoice:Invoice provider_id:int url:string native_provider:flags.4?string native_params:flags.4?DataJSON saved_info:flags.0?PaymentRequestedInfo saved_credentials:flags.1?PaymentSavedCredentials users:Vector<User> = payments.PaymentForm;
-payments.paymentReceipt#10b555d0 flags:# date:int bot_id:int provider_id:int title:string description:string photo:flags.2?WebDocument invoice:Invoice info:flags.0?PaymentRequestedInfo shipping:flags.1?ShippingOption tip_amount:flags.3?long currency:string total_amount:long credentials_title:string users:Vector<User> = payments.PaymentReceipt;\
-
+payments.paymentReceipt#10b555d0 flags:# date:int bot_id:int provider_id:int title:string description:string photo:flags.2?WebDocument invoice:Invoice info:flags.0?PaymentRequestedInfo shipping:flags.1?ShippingOption tip_amount:flags.3?long currency:string total_amount:long credentials_title:string users:Vector<User> = payments.PaymentReceipt;
groupCall#c95c6654 flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true join_date_asc:flags.6?true schedule_start_subscribed:flags.8?true id:long access_hash:long participants_count:int params:flags.0?DataJSON title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int schedule_date:flags.7?int version:int = GroupCall;
-groupCallParticipant#b96b25ee flags:# muted:flags.0?true left:flags.1?true can_self_unmute:flags.2?true just_joined:flags.4?true versioned:flags.5?true min:flags.8?true muted_by_you:flags.9?true volume_by_admin:flags.10?true self:flags.12?true peer:Peer date:int active_date:flags.3?int source:int volume:flags.7?int about:flags.11?string raise_hand_rating:flags.13?long params:flags.6?DataJSON = GroupCallParticipant;\
-
-inputBotInlineMessageMediaInvoice#d7e78225 flags:# title:string description:string photo:flags.0?InputWebDocument invoice:Invoice payload:bytes provider:string provider_data:DataJSON reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;\
-
-botInlineMessageMediaInvoice#354a9b09 flags:# shipping_address_requested:flags.1?true test:flags.3?true title:string description:string photo:flags.0?WebDocument currency:string total_amount:long reply_markup:flags.2?ReplyMarkup = BotInlineMessage;\
-
-messageActionGroupCallScheduled#b3a07661 call:InputGroupCall schedule_date:int = MessageAction;\
-
----functions---\
-
+groupCallParticipant#b96b25ee flags:# muted:flags.0?true left:flags.1?true can_self_unmute:flags.2?true just_joined:flags.4?true versioned:flags.5?true min:flags.8?true muted_by_you:flags.9?true volume_by_admin:flags.10?true self:flags.12?true peer:Peer date:int active_date:flags.3?int source:int volume:flags.7?int about:flags.11?string raise_hand_rating:flags.13?long params:flags.6?DataJSON = GroupCallParticipant;
+inputBotInlineMessageMediaInvoice#d7e78225 flags:# title:string description:string photo:flags.0?InputWebDocument invoice:Invoice payload:bytes provider:string provider_data:DataJSON reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;
+botInlineMessageMediaInvoice#354a9b09 flags:# shipping_address_requested:flags.1?true test:flags.3?true title:string description:string photo:flags.0?WebDocument currency:string total_amount:long reply_markup:flags.2?ReplyMarkup = BotInlineMessage;
+messageActionGroupCallScheduled#b3a07661 call:InputGroupCall schedule_date:int = MessageAction;
+---functions---
payments.getPaymentForm#8a333c8d flags:# peer:InputPeer msg_id:int theme_params:flags.0?DataJSON = payments.PaymentForm;
payments.getPaymentReceipt#2478d1cc peer:InputPeer msg_id:int = payments.PaymentReceipt;
payments.validateRequestedInfo#db103170 flags:# save:flags.0?true peer:InputPeer msg_id:int info:PaymentRequestedInfo = payments.ValidatedRequestedInfo;
@@ -403,44 +616,34 @@ Layer…">
phone.createGroupCall#48cdc6d8 flags:# peer:InputPeer random_id:int title:flags.0?string schedule_date:flags.1?int = Updates;
phone.toggleGroupCallStartSubscription#219c34e6 call:InputGroupCall subscribed:Bool = Updates;
phone.startScheduledGroupCall#5680e342 call:InputGroupCall = Updates;
-phone.saveDefaultGroupCallJoinAs#575e1f8c peer:InputPeer join_as:InputPeer = Bool;\
-Layer 126
+phone.saveDefaultGroupCallJoinAs#575e1f8c peer:InputPeer join_as:InputPeer = Bool;Layer 126
Schema changes
-Changed Methods
+Schema changes
+Changed Methods
-Changed Constructors
+Changed Constructors
-Schema
+Schema
channels.channelParticipants#9ab0feaf count:int participants:Vector<ChannelParticipant> chats:Vector<Chat> users:Vector<User> = channels.ChannelParticipants;
channels.channelParticipant#dfb80317 participant:ChannelParticipant chats:Vector<Chat> users:Vector<User> = channels.ChannelParticipant;
channelParticipantBanned#50a1dfd6 flags:# left:flags.0?true peer:Peer kicked_by:int date:int banned_rights:ChatBannedRights = ChannelParticipant;
-channelParticipantLeft#1b03f006 peer:Peer = ChannelParticipant;\
-
----functions---\
-
+channelParticipantLeft#1b03f006 peer:Peer = ChannelParticipant;
+---functions---
channels.getParticipant#a0ab6cc6 channel:InputChannel participant:InputPeer = channels.ChannelParticipant;
-channels.editBanned#96e6cd81 channel:InputChannel participant:InputPeer banned_rights:ChatBannedRights = Updates;\
-Layer 125
+channels.editBanned#96e6cd81 channel:InputChannel participant:InputPeer banned_rights:ChatBannedRights = Updates;Layer 125
Schema changes
-New Methods
+Schema changes
+New Methods
-Saved messages
(the chat with ourselves).Changed Methods
+Changed Methods
-Deleted Methods
+Deleted Methods
-New Constructors
+New Constructors
-Changed Constructors
+Changed Constructors
-Schema
-chatFull#8a1e2983 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:int about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer = ChatFull;\
-
-updateChatUserTyping#86cadb6c chat_id:int from_id:Peer action:SendMessageAction = Update;\
-
-channelFull#548c3f93 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer = ChatFull;\
-
-updateChannelUserTyping#6b171718 flags:# channel_id:int top_msg_id:flags.0?int from_id:Peer action:SendMessageAction = Update;\
-
+
Schema
+chatFull#8a1e2983 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:int about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer = ChatFull;
+updateChatUserTyping#86cadb6c chat_id:int from_id:Peer action:SendMessageAction = Update;
+channelFull#548c3f93 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer = ChatFull;
+updateChannelUserTyping#6b171718 flags:# channel_id:int top_msg_id:flags.0?int from_id:Peer action:SendMessageAction = Update;
groupCall#c0c2052e flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true join_date_asc:flags.6?true id:long access_hash:long participants_count:int params:flags.0?DataJSON title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int version:int = GroupCall;
-groupCallParticipant#19adba89 flags:# muted:flags.0?true left:flags.1?true can_self_unmute:flags.2?true just_joined:flags.4?true versioned:flags.5?true min:flags.8?true muted_by_you:flags.9?true volume_by_admin:flags.10?true self:flags.12?true peer:Peer date:int active_date:flags.3?int source:int volume:flags.7?int about:flags.11?string raise_hand_rating:flags.13?long = GroupCallParticipant;\
-
+groupCallParticipant#19adba89 flags:# muted:flags.0?true left:flags.1?true can_self_unmute:flags.2?true just_joined:flags.4?true versioned:flags.5?true min:flags.8?true muted_by_you:flags.9?true volume_by_admin:flags.10?true self:flags.12?true peer:Peer date:int active_date:flags.3?int source:int volume:flags.7?int about:flags.11?string raise_hand_rating:flags.13?long = GroupCallParticipant;
phone.groupCall#9e727aad call:GroupCall participants:Vector<GroupCallParticipant> participants_next_offset:string chats:Vector<Chat> users:Vector<User> = phone.GroupCall;
-phone.groupParticipants#f47751b6 count:int participants:Vector<GroupCallParticipant> next_offset:string chats:Vector<Chat> users:Vector<User> version:int = phone.GroupParticipants;\
-
-inputGroupCallStream#bba51639 call:InputGroupCall time_ms:long scale:int = InputFileLocation;\
-
+phone.groupParticipants#f47751b6 count:int participants:Vector<GroupCallParticipant> next_offset:string chats:Vector<Chat> users:Vector<User> version:int = phone.GroupParticipants;
+inputGroupCallStream#bba51639 call:InputGroupCall time_ms:long scale:int = InputFileLocation;
phone.joinAsPeers#afe5623f peers:Vector<Peer> chats:Vector<Chat> users:Vector<User> = phone.JoinAsPeers;
-phone.exportedGroupCallInvite#204bd158 link:string = phone.ExportedGroupCallInvite;\
-
----functions---\
-
+phone.exportedGroupCallInvite#204bd158 link:string = phone.ExportedGroupCallInvite;
+---functions---
messages.requestUrlAuth#198fb446 flags:# peer:flags.1?InputPeer msg_id:flags.1?int button_id:flags.1?int url:flags.2?string = UrlAuthResult;
-messages.acceptUrlAuth#b12c7125 flags:# write_allowed:flags.0?true peer:flags.1?InputPeer msg_id:flags.1?int button_id:flags.1?int url:flags.2?string = UrlAuthResult;\
-
+messages.acceptUrlAuth#b12c7125 flags:# write_allowed:flags.0?true peer:flags.1?InputPeer msg_id:flags.1?int button_id:flags.1?int url:flags.2?string = UrlAuthResult;
phone.joinGroupCall#b132ff7b flags:# muted:flags.0?true video_stopped:flags.2?true call:InputGroupCall join_as:InputPeer invite_hash:flags.1?string params:DataJSON = Updates;
phone.toggleGroupCallSettings#74bbb43d flags:# reset_invite_hash:flags.1?true call:InputGroupCall join_muted:flags.0?Bool = Updates;
phone.getGroupParticipants#c558d8ab call:InputGroupCall ids:Vector<InputPeer> sources:Vector<int> offset:string limit:int = phone.GroupParticipants;
@@ -509,15 +702,11 @@ Layer…">
phone.editGroupCallParticipant#d975eb80 flags:# muted:flags.0?true call:InputGroupCall participant:InputPeer volume:flags.1?int raise_hand:flags.2?Bool = Updates;
phone.editGroupCallTitle#1ca6ac0a call:InputGroupCall title:string = Updates;
phone.getGroupCallJoinAs#ef7c213a peer:InputPeer = phone.JoinAsPeers;
-phone.exportGroupCallInvite#e6aa647f flags:# can_self_unmute:flags.0?true call:InputGroupCall = phone.ExportedGroupCallInvite;\
-Layer 124
+phone.exportGroupCallInvite#e6aa647f flags:# can_self_unmute:flags.0?true call:InputGroupCall = phone.ExportedGroupCallInvite;Layer 124
Schema changes
-New Methods
+Schema changes
+New Methods
-Changed Methods
+Changed Methods
-New Constructors
+New Constructors
-Changed Constructors
+Changed Constructors
-Schema
-chatFull#f06c4018 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:int about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int = ChatFull;\
-
+
Schema
+chatFull#f06c4018 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:int about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int = ChatFull;
message#bce383d2 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
-messageService#2b085862 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true legacy:flags.19?true id:int from_id:flags.8?Peer peer_id:Peer reply_to:flags.3?MessageReplyHeader date:int action:MessageAction ttl_period:flags.25?int = Message;\
-
-inputReportReasonOther#c1e4a2b1 = ReportReason;\
-
+messageService#2b085862 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true legacy:flags.19?true id:int from_id:flags.8?Peer peer_id:Peer reply_to:flags.3?MessageReplyHeader date:int action:MessageAction ttl_period:flags.25?int = Message;
+inputReportReasonOther#c1e4a2b1 = ReportReason;
userFull#139a9a77 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true user:User about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int = UserFull;
updateShortMessage#faeff833 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int user_id:int message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
updateShortChatMessage#1157b858 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
-updateShortSentMessage#9015e101 flags:# out:flags.1?true id:int pts:int pts_count:int date:int media:flags.9?MessageMedia entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;\
-
-channelFull#2548c037 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> = ChatFull;\
-
-messageActionSetMessagesTTL#aa1afbfd period:int = MessageAction;\
-
+updateShortSentMessage#9015e101 flags:# out:flags.1?true id:int pts:int pts_count:int date:int media:flags.9?MessageMedia entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
+channelFull#2548c037 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> = ChatFull;
+messageActionSetMessagesTTL#aa1afbfd period:int = MessageAction;
updatePeerHistoryTTL#bb9bb9a5 flags:# peer:Peer ttl_period:flags.0?int = Update;
updateChatParticipant#f3b3781f flags:# chat_id:int date:int actor_id:int user_id:int prev_participant:flags.0?ChatParticipant new_participant:flags.1?ChatParticipant invite:flags.2?ExportedChatInvite qts:int = Update;
updateChannelParticipant#7fecb1ec flags:# channel_id:int date:int actor_id:int user_id:int prev_participant:flags.0?ChannelParticipant new_participant:flags.1?ChannelParticipant invite:flags.2?ExportedChatInvite qts:int = Update;
-updateBotStopped#07f9488a user_id:int date:int stopped:Bool qts:int = Update;\
-
-chatInviteImporter#1e3e6680 user_id:int date:int = ChatInviteImporter;\
-
+updateBotStopped#07f9488a user_id:int date:int stopped:Bool qts:int = Update;
+chatInviteImporter#1e3e6680 user_id:int date:int = ChatInviteImporter;
messages.exportedChatInvites#bdc62dcc count:int invites:Vector<ExportedChatInvite> users:Vector<User> = messages.ExportedChatInvites;
messages.exportedChatInvite#1871be50 invite:ExportedChatInvite users:Vector<User> = messages.ExportedChatInvite;
messages.exportedChatInviteReplaced#222600ef invite:ExportedChatInvite new_invite:ExportedChatInvite users:Vector<User> = messages.ExportedChatInvite;
-messages.chatInviteImporters#81b6b00a count:int importers:Vector<ChatInviteImporter> users:Vector<User> = messages.ChatInviteImporters;\
-
-chatAdminWithInvites#dfd2330f admin_id:int invites_count:int revoked_invites_count:int = ChatAdminWithInvites;\
-
-messages.chatAdminsWithInvites#b69b72d7 admins:Vector<ChatAdminWithInvites> users:Vector<User> = messages.ChatAdminsWithInvites;\
-
+messages.chatInviteImporters#81b6b00a count:int importers:Vector<ChatInviteImporter> users:Vector<User> = messages.ChatInviteImporters;
+chatAdminWithInvites#dfd2330f admin_id:int invites_count:int revoked_invites_count:int = ChatAdminWithInvites;
+messages.chatAdminsWithInvites#b69b72d7 admins:Vector<ChatAdminWithInvites> users:Vector<User> = messages.ChatAdminsWithInvites;
channelAdminLogEventActionParticipantJoinByInvite#5cdada77 invite:ExportedChatInvite = ChannelAdminLogEventAction;
channelAdminLogEventActionExportedInviteDelete#5a50fca4 invite:ExportedChatInvite = ChannelAdminLogEventAction;
channelAdminLogEventActionExportedInviteRevoke#410a134e invite:ExportedChatInvite = ChannelAdminLogEventAction;
channelAdminLogEventActionExportedInviteEdit#e90ebb59 prev_invite:ExportedChatInvite new_invite:ExportedChatInvite = ChannelAdminLogEventAction;
channelAdminLogEventActionParticipantVolume#3e7f6847 participant:GroupCallParticipant = ChannelAdminLogEventAction;
-channelAdminLogEventActionChangeHistoryTTL#6e941a38 prev_value:int new_value:int = ChannelAdminLogEventAction;\
-
-messages.checkedHistoryImportPeer#a24de717 confirm_text:string = messages.CheckedHistoryImportPeer;\
-
----functions---\
-
-account.reportPeer#c5ba3d86 peer:InputPeer reason:ReportReason message:string = Bool;\
-
+channelAdminLogEventActionChangeHistoryTTL#6e941a38 prev_value:int new_value:int = ChannelAdminLogEventAction;
+messages.checkedHistoryImportPeer#a24de717 confirm_text:string = messages.CheckedHistoryImportPeer;
+---functions---
+account.reportPeer#c5ba3d86 peer:InputPeer reason:ReportReason message:string = Bool;
messages.report#8953ab4e peer:InputPeer id:Vector<int> reason:ReportReason message:string = Bool;
-messages.exportChatInvite#14b9bcd7 flags:# legacy_revoke_permanent:flags.2?true peer:InputPeer expire_date:flags.0?int usage_limit:flags.1?int = ExportedChatInvite;\
-
-help.dismissSuggestion#f50dbaa1 peer:InputPeer suggestion:string = Bool;\
-
+messages.exportChatInvite#14b9bcd7 flags:# legacy_revoke_permanent:flags.2?true peer:InputPeer expire_date:flags.0?int usage_limit:flags.1?int = ExportedChatInvite;
+help.dismissSuggestion#f50dbaa1 peer:InputPeer suggestion:string = Bool;
messages.getExportedChatInvites#a2b5a3f6 flags:# revoked:flags.3?true peer:InputPeer admin_id:InputUser offset_date:flags.2?int offset_link:flags.2?string limit:int = messages.ExportedChatInvites;
messages.getExportedChatInvite#73746f5c peer:InputPeer link:string = messages.ExportedChatInvite;
messages.editExportedChatInvite#02e4ffbe flags:# revoked:flags.2?true peer:InputPeer link:string expire_date:flags.0?int usage_limit:flags.1?int = messages.ExportedChatInvite;
@@ -630,21 +802,14 @@ Layer…">
messages.deleteExportedChatInvite#d464a42b peer:InputPeer link:string = Bool;
messages.getAdminsWithInvites#3920e6ef peer:InputPeer = messages.ChatAdminsWithInvites;
messages.getChatInviteImporters#26fb7289 peer:InputPeer link:string offset_date:int offset_user:InputUser limit:int = messages.ChatInviteImporters;
-messages.setHistoryTTL#b80e5fe4 peer:InputPeer period:int = Updates;\
-
-account.reportProfilePhoto#fa8cc6f5 peer:InputPeer photo_id:InputPhoto reason:ReportReason message:string = Bool;\
-
-channels.convertToGigagroup#0b290c69 channel:InputChannel = Updates;\
-
-messages.checkHistoryImportPeer#5dc60f03 peer:InputPeer = messages.CheckedHistoryImportPeer;\
-Layer 123
+messages.setHistoryTTL#b80e5fe4 peer:InputPeer period:int = Updates;
+account.reportProfilePhoto#fa8cc6f5 peer:InputPeer photo_id:InputPhoto reason:ReportReason message:string = Bool;
+channels.convertToGigagroup#0b290c69 channel:InputChannel = Updates;
+messages.checkHistoryImportPeer#5dc60f03 peer:InputPeer = messages.CheckedHistoryImportPeer;Layer 123
Schema changes
-New Methods
+Schema changes
+New Methods
-Changed Methods
+Changed Methods
-New Constructors
+New Constructors
-Changed Constructors
+Changed Constructors
-Deleted Constructors
+Deleted Constructors
-Schema
-chatFull#f3474af6 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:int about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall = ChatFull;\
-
-messageEmpty#90a6ca84 flags:# id:int peer_id:flags.0?Peer = Message;\
-
-encryptedChatDiscarded#1e1c7c45 flags:# history_deleted:flags.0?true id:int = EncryptedChat;\
-
-chatInviteExported#6e24fc9d flags:# revoked:flags.0?true permanent:flags.5?true link:string admin_id:int date:int start_date:flags.4?int expire_date:flags.1?int usage_limit:flags.2?int usage:flags.3?int = ExportedChatInvite;\
-
-user#938458c1 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string = User;\
-
+
Schema
+chatFull#f3474af6 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:int about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall = ChatFull;
+messageEmpty#90a6ca84 flags:# id:int peer_id:flags.0?Peer = Message;
+encryptedChatDiscarded#1e1c7c45 flags:# history_deleted:flags.0?true id:int = EncryptedChat;
+chatInviteExported#6e24fc9d flags:# revoked:flags.0?true permanent:flags.5?true link:string admin_id:int date:int start_date:flags.4?int expire_date:flags.1?int usage_limit:flags.2?int usage:flags.3?int = ExportedChatInvite;
+user#938458c1 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string = User;
channel#d31a961e flags:# creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true slowmode_enabled:flags.22?true call_active:flags.23?true call_not_empty:flags.24?true fake:flags.25?true gigagroup:flags.26?true id:int access_hash:flags.13?long title:string username:flags.6?string photo:ChatPhoto date:int version:int restriction_reason:flags.9?Vector<RestrictionReason> admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int = Chat;
-channelFull#7a7de4f7 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall = ChatFull;\
-
-groupCallParticipant#64c62a15 flags:# muted:flags.0?true left:flags.1?true can_self_unmute:flags.2?true just_joined:flags.4?true versioned:flags.5?true min:flags.8?true muted_by_you:flags.9?true volume_by_admin:flags.10?true user_id:int date:int active_date:flags.3?int source:int volume:flags.7?int = GroupCallParticipant;\
-
-inputPaymentCredentialsGooglePay#8ac32801 payment_token:DataJSON = InputPaymentCredentials;\
-
-messages.historyImport#1662af0b id:long = messages.HistoryImport;\
-
-sendMessageHistoryImportAction#dbda9246 progress:int = SendMessageAction;\
-
-messages.historyImportParsed#5e0fb7b9 flags:# pm:flags.0?true group:flags.1?true title:flags.2?string = messages.HistoryImportParsed;\
-
-inputReportReasonFake#f5ddd6e7 = ReportReason;\
-
-messages.affectedFoundMessages#ef8d3e6c pts:int pts_count:int offset:int messages:Vector<int> = messages.AffectedFoundMessages;\
-
----functions---\
-
+channelFull#7a7de4f7 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall = ChatFull;
+groupCallParticipant#64c62a15 flags:# muted:flags.0?true left:flags.1?true can_self_unmute:flags.2?true just_joined:flags.4?true versioned:flags.5?true min:flags.8?true muted_by_you:flags.9?true volume_by_admin:flags.10?true user_id:int date:int active_date:flags.3?int source:int volume:flags.7?int = GroupCallParticipant;
+inputPaymentCredentialsGooglePay#8ac32801 payment_token:DataJSON = InputPaymentCredentials;
+messages.historyImport#1662af0b id:long = messages.HistoryImport;
+sendMessageHistoryImportAction#dbda9246 progress:int = SendMessageAction;
+messages.historyImportParsed#5e0fb7b9 flags:# pm:flags.0?true group:flags.1?true title:flags.2?string = messages.HistoryImportParsed;
+inputReportReasonFake#f5ddd6e7 = ReportReason;
+messages.affectedFoundMessages#ef8d3e6c pts:int pts_count:int offset:int messages:Vector<int> = messages.AffectedFoundMessages;
+---functions---
messages.deleteChatUser#c534459a flags:# revoke_history:flags.0?true chat_id:int user_id:InputUser = Updates;
-messages.discardEncryption#f393aea0 flags:# delete_history:flags.0?true chat_id:int = Bool;\
-
-phone.editGroupCallMember#a5e76cd8 flags:# muted:flags.0?true call:InputGroupCall user_id:InputUser volume:flags.1?int = Updates;\
-
+messages.discardEncryption#f393aea0 flags:# delete_history:flags.0?true chat_id:int = Bool;
+phone.editGroupCallMember#a5e76cd8 flags:# muted:flags.0?true call:InputGroupCall user_id:InputUser volume:flags.1?int = Updates;
messages.deleteChat#83247d11 chat_id:int = Bool;
messages.deletePhoneCallHistory#f9cbe409 flags:# revoke:flags.0?true = messages.AffectedFoundMessages;
messages.checkHistoryImport#43fe19f3 import_head:string = messages.HistoryImportParsed;
messages.initHistoryImport#34090c3b peer:InputPeer file:InputFile media_count:int = messages.HistoryImport;
messages.uploadImportedMedia#2a862092 peer:InputPeer import_id:long file_name:string media:InputMedia = MessageMedia;
-messages.startHistoryImport#b43df344 peer:InputPeer import_id:long = Bool;\
-Layer 122
+messages.startHistoryImport#b43df344 peer:InputPeer import_id:long = Bool;Layer 122
Schema changes
-New Methods
+Schema changes
+New Methods
-Changed Methods
+Changed Methods
-New Constructors
+New Constructors
-Changed Constructors
+Changed Constructors
-Deleted Constructors
+Deleted Constructors
-PUSH notification changes
-New PUSH notifications
+PUSH notification changes
+New PUSH notifications
-{1} ended a voice chat in the group {2}
{1} invited {3} to a voice chat in the group {2}
{1} invited you to a voice chat in the group {2}
{1} started a voice chat in the group {2}
Changed PUSH notifications
+Changed PUSH notifications
-{1} posted a map
to {1} posted a location
in CHANNEL_MESSAGE_GEO{1} posted a {2}sticker
to {1} posted a {2} sticker
in CHANNEL_MESSAGE_STICKER{1} started sharing their live location with {2}
to {1} shared a live location with the group {2}
in CHAT_MESSAGE_GEOLIVE{1} sent a {3}sticker to the group {2}
to {1} sent a {3} sticker to the group {2}
in CHAT_MESSAGE_STICKER{1}@{2}: {3}
to {1} @ {2}: {3}
in CHAT_MESSAGE_TEXT{1} edited the group's {2} photo
to {1} changed the group photo for {2}
in CHAT_PHOTO_EDITED{1} edited the group's {2} photo
to {1} changed the group photo for {2}
in CHAT_PHOTO_EDITED{1} has returned to the group {2}
to {1} returned to the group {2}
in CHAT_RETURNED{1} edited the group's {2} name
to {1} renamed the group {2}
in CHAT_TITLE_EDITED{1} edited the group's {2} name
to {1} renamed the group {2}
in CHAT_TITLE_EDITED{1} sent you a map
to {1} sent you a location
in MESSAGE_GEO{1} started sharing their live location
to {1} sent you a live location
in MESSAGE_GEOLIVE{1} sent you a {2}sticker
to {1} sent you a {2} sticker
in MESSAGE_STICKER{1} pinned a {2}sticker
to {1} pinned a {2} sticker
in PINNED_STICKERSchema
+Schema
chat#3bda1bde flags:# creator:flags.0?true kicked:flags.1?true left:flags.2?true deactivated:flags.5?true call_active:flags.23?true call_not_empty:flags.24?true id:int title:string photo:ChatPhoto participants_count:int date:int version:int migrated_to:flags.6?InputChannel admin_rights:flags.14?ChatAdminRights default_banned_rights:flags.18?ChatBannedRights = Chat;
-chatFull#0dc8c181 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:int about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall = ChatFull;\
-
-peerSettings#733f2961 flags:# report_spam:flags.0?true add_contact:flags.1?true block_contact:flags.2?true share_contact:flags.3?true need_contacts_exception:flags.4?true report_geo:flags.5?true autoarchived:flags.7?true invite_members:flags.8?true geo_distance:flags.6?int = PeerSettings;\
-
-inputMediaDocument#33473058 flags:# id:InputDocument ttl_seconds:flags.0?int query:flags.1?string = InputMedia;\
-
-stickerSet#40e237a8 flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int count:int hash:int = StickerSet;\
-
+chatFull#0dc8c181 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:int about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall = ChatFull;
+peerSettings#733f2961 flags:# report_spam:flags.0?true add_contact:flags.1?true block_contact:flags.2?true share_contact:flags.3?true need_contacts_exception:flags.4?true report_geo:flags.5?true autoarchived:flags.7?true invite_members:flags.8?true geo_distance:flags.6?int = PeerSettings;
+inputMediaDocument#33473058 flags:# id:InputDocument ttl_seconds:flags.0?int query:flags.1?string = InputMedia;
+stickerSet#40e237a8 flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int count:int hash:int = StickerSet;
channel#d31a961e flags:# creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true slowmode_enabled:flags.22?true call_active:flags.23?true call_not_empty:flags.24?true id:int access_hash:flags.13?long title:string username:flags.6?string photo:ChatPhoto date:int version:int restriction_reason:flags.9?Vector<RestrictionReason> admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int = Chat;
-channelFull#ef3a6acd flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall = ChatFull;\
-
-updateBotInlineQuery#3f2038db flags:# query_id:long user_id:int query:string geo:flags.0?GeoPoint peer_type:flags.1?InlineQueryPeerType offset:string = Update;\
-
-messageFwdHeader#5f777dce flags:# imported:flags.7?true from_id:flags.0?Peer from_name:flags.5?string date:int channel_post:flags.2?int post_author:flags.3?string saved_from_peer:flags.4?Peer saved_from_msg_id:flags.4?int psa_type:flags.6?string = MessageFwdHeader;\
-
+channelFull#ef3a6acd flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall = ChatFull;
+updateBotInlineQuery#3f2038db flags:# query_id:long user_id:int query:string geo:flags.0?GeoPoint peer_type:flags.1?InlineQueryPeerType offset:string = Update;
+messageFwdHeader#5f777dce flags:# imported:flags.7?true from_id:flags.0?Peer from_name:flags.5?string date:int channel_post:flags.2?int post_author:flags.3?string saved_from_peer:flags.4?Peer saved_from_msg_id:flags.4?int psa_type:flags.6?string = MessageFwdHeader;
channelAdminLogEventsFilter#ea107ae4 flags:# join:flags.0?true leave:flags.1?true invite:flags.2?true ban:flags.3?true unban:flags.4?true kick:flags.5?true unkick:flags.6?true promote:flags.7?true demote:flags.8?true info:flags.9?true settings:flags.10?true pinned:flags.11?true edit:flags.12?true delete:flags.13?true group_call:flags.14?true invites:flags.15?true = ChannelAdminLogEventsFilter;
-chatAdminRights#5fb224d5 flags:# change_info:flags.0?true post_messages:flags.1?true edit_messages:flags.2?true delete_messages:flags.3?true ban_users:flags.4?true invite_users:flags.5?true pin_messages:flags.7?true add_admins:flags.9?true anonymous:flags.10?true manage_call:flags.11?true other:flags.12?true = ChatAdminRights;\
-
-speakingInGroupCallAction#d92c2285 = SendMessageAction;\
-
+chatAdminRights#5fb224d5 flags:# change_info:flags.0?true post_messages:flags.1?true edit_messages:flags.2?true delete_messages:flags.3?true ban_users:flags.4?true invite_users:flags.5?true pin_messages:flags.7?true add_admins:flags.9?true anonymous:flags.10?true manage_call:flags.11?true other:flags.12?true = ChatAdminRights;
+speakingInGroupCallAction#d92c2285 = SendMessageAction;
groupCallDiscarded#7780bcb4 id:long access_hash:long duration:int = GroupCall;
-groupCall#55903081 flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true id:long access_hash:long participants_count:int params:flags.0?DataJSON version:int = GroupCall;\
-
-inputGroupCall#d8aa840f id:long access_hash:long = InputGroupCall;\
-
+groupCall#55903081 flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true id:long access_hash:long participants_count:int params:flags.0?DataJSON version:int = GroupCall;
+inputGroupCall#d8aa840f id:long access_hash:long = InputGroupCall;
messageActionGroupCall#7a0d7f42 flags:# call:InputGroupCall duration:flags.0?int = MessageAction;
-messageActionInviteToGroupCall#76b9f11a call:InputGroupCall users:Vector<int> = MessageAction;\
-
-groupCallParticipant#56b087c9 flags:# muted:flags.0?true left:flags.1?true can_self_unmute:flags.2?true just_joined:flags.4?true versioned:flags.5?true user_id:int date:int active_date:flags.3?int source:int = GroupCallParticipant;\
-
+messageActionInviteToGroupCall#76b9f11a call:InputGroupCall users:Vector<int> = MessageAction;
+groupCallParticipant#56b087c9 flags:# muted:flags.0?true left:flags.1?true can_self_unmute:flags.2?true just_joined:flags.4?true versioned:flags.5?true user_id:int date:int active_date:flags.3?int source:int = GroupCallParticipant;
updateChat#1330a196 chat_id:int = Update;
updateGroupCallParticipants#f2ebdb4e call:InputGroupCall participants:Vector<GroupCallParticipant> version:int = Update;
-updateGroupCall#a45eb99b chat_id:int call:GroupCall = Update;\
-
+updateGroupCall#a45eb99b chat_id:int call:GroupCall = Update;
phone.groupCall#66ab0bfc call:GroupCall participants:Vector<GroupCallParticipant> participants_next_offset:string users:Vector<User> = phone.GroupCall;
-phone.groupParticipants#9cfeb92d count:int participants:Vector<GroupCallParticipant> next_offset:string users:Vector<User> version:int = phone.GroupParticipants;\
-
+phone.groupParticipants#9cfeb92d count:int participants:Vector<GroupCallParticipant> next_offset:string users:Vector<User> version:int = phone.GroupParticipants;
inlineQueryPeerTypeSameBotPM#3081ed9d = InlineQueryPeerType;
inlineQueryPeerTypePM#833c0fac = InlineQueryPeerType;
inlineQueryPeerTypeChat#d766c50a = InlineQueryPeerType;
inlineQueryPeerTypeMegagroup#5ec4be43 = InlineQueryPeerType;
-inlineQueryPeerTypeBroadcast#6334ee9a = InlineQueryPeerType;\
-
+inlineQueryPeerTypeBroadcast#6334ee9a = InlineQueryPeerType;
channelAdminLogEventActionStartGroupCall#23209745 call:InputGroupCall = ChannelAdminLogEventAction;
channelAdminLogEventActionDiscardGroupCall#db9f9140 call:InputGroupCall = ChannelAdminLogEventAction;
channelAdminLogEventActionParticipantMute#f92424d2 participant:GroupCallParticipant = ChannelAdminLogEventAction;
channelAdminLogEventActionParticipantUnmute#e64429c0 participant:GroupCallParticipant = ChannelAdminLogEventAction;
-channelAdminLogEventActionToggleGroupCallSetting#56d6a247 join_muted:Bool = ChannelAdminLogEventAction;\
-
----functions---\
-
-messages.forwardMessages#d9fee60e flags:# silent:flags.5?true background:flags.6?true with_my_score:flags.8?true drop_author:flags.11?true drop_media_captions:flags.12?true from_peer:InputPeer id:Vector<int> random_id:Vector<long> to_peer:InputPeer schedule_date:flags.10?int = Updates;\
-
-channels.createChannel#3d5fb10f flags:# broadcast:flags.0?true megagroup:flags.1?true for_import:flags.3?true title:string about:string geo_point:flags.2?InputGeoPoint address:flags.2?string = Updates;\
-
+channelAdminLogEventActionToggleGroupCallSetting#56d6a247 join_muted:Bool = ChannelAdminLogEventAction;
+---functions---
+messages.forwardMessages#d9fee60e flags:# silent:flags.5?true background:flags.6?true with_my_score:flags.8?true drop_author:flags.11?true drop_media_captions:flags.12?true from_peer:InputPeer id:Vector<int> random_id:Vector<long> to_peer:InputPeer schedule_date:flags.10?int = Updates;
+channels.createChannel#3d5fb10f flags:# broadcast:flags.0?true megagroup:flags.1?true for_import:flags.3?true title:string about:string geo_point:flags.2?InputGeoPoint address:flags.2?string = Updates;
phone.createGroupCall#bd3dabe0 peer:InputPeer random_id:int = Updates;
phone.joinGroupCall#5f9c8e62 flags:# muted:flags.0?true call:InputGroupCall params:DataJSON = Updates;
phone.leaveGroupCall#500377f9 call:InputGroupCall source:int = Updates;
@@ -888,38 +1013,30 @@ Layer…">
phone.toggleGroupCallSettings#74bbb43d flags:# call:InputGroupCall join_muted:flags.0?Bool = Updates;
phone.getGroupCall#0c7cb017 call:InputGroupCall = phone.GroupCall;
phone.getGroupParticipants#c9f1d285 call:InputGroupCall ids:Vector<int> sources:Vector<int> offset:string limit:int = phone.GroupParticipants;
-phone.checkGroupCall#b74a7bea call:InputGroupCall source:int = Bool;\
-Layer 121
+phone.checkGroupCall#b74a7bea call:InputGroupCall source:int = Bool;Layer 121
Schema changes
-New Constructors
+Schema changes
+New Constructors
-Schema
-photoPathSize#d8214d41 type:string bytes:bytes = PhotoSize;\
-
Layer 120
+Schema
+photoPathSize#d8214d41 type:string bytes:bytes = PhotoSize;
Layer 120
Schema changes
-New Methods
+Schema changes
+New Methods
-Changed Methods
+Changed Methods
-New Constructors
+New Constructors
-Changed Constructors
+Changed Constructors
-Deleted Constructors
+Deleted Constructors
-PUSH notification changes
-New PUSH notifications
+PUSH notification changes
+New PUSH notifications
-{1} posted {2} files
{1} posted {2} music files
{1} sent you {2} files
{1} sent you {2} music files
Schema
-inputGeoPoint#48222faf flags:# lat:double long:double accuracy_radius:flags.0?int = InputGeoPoint;\
-
-geoPoint#b2a2f663 flags:# long:double lat:double access_hash:long accuracy_radius:flags.0?int = GeoPoint;\
-
+
Schema
+inputGeoPoint#48222faf flags:# lat:double long:double accuracy_radius:flags.0?int = InputGeoPoint;
+geoPoint#b2a2f663 flags:# long:double lat:double access_hash:long accuracy_radius:flags.0?int = GeoPoint;
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#64479808 flags:# inexact:flags.1?true pts:int count:int offset_id_offset:flags.2?int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;\
-
-inputBotInlineMessageMediaGeo#96929a85 flags:# geo_point:InputGeoPoint heading:flags.0?int period:flags.1?int proximity_notification_radius:flags.3?int reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;\
-
-botInlineMessageMediaGeo#051846fd flags:# geo:GeoPoint heading:flags.0?int period:flags.1?int proximity_notification_radius:flags.3?int reply_markup:flags.2?ReplyMarkup = BotInlineMessage;\
-
-inputMediaGeoLive#971fa843 flags:# stopped:flags.0?true geo_point:InputGeoPoint heading:flags.2?int period:flags.1?int proximity_notification_radius:flags.3?int = InputMedia;\
-
-messageMediaGeoLive#b940c666 flags:# geo:GeoPoint heading:flags.0?int period:int proximity_notification_radius:flags.1?int = MessageMedia;\
-
-inputMessageCallbackQuery#acfa1a7e id:int query_id:long = InputMessage;\
-
+messages.channelMessages#64479808 flags:# inexact:flags.1?true pts:int count:int offset_id_offset:flags.2?int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
+inputBotInlineMessageMediaGeo#96929a85 flags:# geo_point:InputGeoPoint heading:flags.0?int period:flags.1?int proximity_notification_radius:flags.3?int reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;
+botInlineMessageMediaGeo#051846fd flags:# geo:GeoPoint heading:flags.0?int period:flags.1?int proximity_notification_radius:flags.3?int reply_markup:flags.2?ReplyMarkup = BotInlineMessage;
+inputMediaGeoLive#971fa843 flags:# stopped:flags.0?true geo_point:InputGeoPoint heading:flags.2?int period:flags.1?int proximity_notification_radius:flags.3?int = InputMedia;
+messageMediaGeoLive#b940c666 flags:# geo:GeoPoint heading:flags.0?int period:int proximity_notification_radius:flags.1?int = MessageMedia;
+inputMessageCallbackQuery#acfa1a7e id:int query_id:long = InputMessage;
channelParticipantLeft#c3c6796b user_id:int = ChannelParticipant;
-channelParticipantsMentions#e04b5ceb flags:# q:flags.0?string top_msg_id:flags.1?int = ChannelParticipantsFilter;\
-
+channelParticipantsMentions#e04b5ceb flags:# q:flags.0?string top_msg_id:flags.1?int = ChannelParticipantsFilter;
updatePinnedMessages#ed85eab5 flags:# pinned:flags.0?true peer:Peer messages:Vector<int> pts:int pts_count:int = Update;
-updatePinnedChannelMessages#8588878b flags:# pinned:flags.0?true channel_id:int messages:Vector<int> pts:int pts_count:int = Update;\
-
-inputMessagesFilterPinned#1bb00451 = MessagesFilter;\
-
-stats.messageStats#8999f295 views_graph:StatsGraph = stats.MessageStats;\
-
-messageActionGeoProximityReached#98e0d697 from_id:Peer to_id:Peer distance:int = MessageAction;\
-
----functions---\
-
-messages.search#0c352eec flags:# peer:InputPeer q:string from_id:flags.0?InputPeer top_msg_id:flags.1?int filter:MessagesFilter min_date:int max_date:int offset_id:int add_offset:int limit:int max_id:int min_id:int hash:int = messages.Messages;\
-
+updatePinnedChannelMessages#8588878b flags:# pinned:flags.0?true channel_id:int messages:Vector<int> pts:int pts_count:int = Update;
+inputMessagesFilterPinned#1bb00451 = MessagesFilter;
+stats.messageStats#8999f295 views_graph:StatsGraph = stats.MessageStats;
+messageActionGeoProximityReached#98e0d697 from_id:Peer to_id:Peer distance:int = MessageAction;
+---functions---
+messages.search#0c352eec flags:# peer:InputPeer q:string from_id:flags.0?InputPeer top_msg_id:flags.1?int filter:MessagesFilter min_date:int max_date:int offset_id:int add_offset:int limit:int max_id:int min_id:int hash:int = messages.Messages;
stats.getMessagePublicForwards#5630281b channel:InputChannel msg_id:int offset_rate:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages;
-stats.getMessageStats#b6e0a3f5 flags:# dark:flags.0?true channel:InputChannel msg_id:int = stats.MessageStats;\
-
-messages.unpinAllMessages#f025bc8b peer:InputPeer = messages.AffectedHistory;\
-Layer 119
+stats.getMessageStats#b6e0a3f5 flags:# dark:flags.0?true channel:InputChannel msg_id:int = stats.MessageStats;
+messages.unpinAllMessages#f025bc8b peer:InputPeer = messages.AffectedHistory;Layer 119
Schema changes
-New Methods
+Schema changes
+New Methods
-@replies
Changed Methods
+Changed Methods
-New Constructors
+New Constructors
-Changed Constructors
+Changed Constructors
-Deleted Constructors
+Deleted Constructors
-Schema
+Schema
message#58ae39c9 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> = Message;
-messageService#286fa604 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true legacy:flags.19?true id:int from_id:flags.8?Peer peer_id:Peer reply_to:flags.3?MessageReplyHeader date:int action:MessageAction = Message;\
-
+messageService#286fa604 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true legacy:flags.19?true id:int from_id:flags.8?Peer peer_id:Peer reply_to:flags.3?MessageReplyHeader date:int action:MessageAction = Message;
contacts.blocked#0ade1591 blocked:Vector<PeerBlocked> chats:Vector<Chat> users:Vector<User> = contacts.Blocked;
-contacts.blockedSlice#e1664194 count:int blocked:Vector<PeerBlocked> chats:Vector<Chat> users:Vector<User> = contacts.Blocked;\
-
+contacts.blockedSlice#e1664194 count:int blocked:Vector<PeerBlocked> chats:Vector<Chat> users:Vector<User> = contacts.Blocked;
updateShortMessage#2296d2c8 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int user_id:int message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> = Updates;
-updateShortChatMessage#402d5dbb flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> = Updates;\
-
-channelParticipantCreator#447dca4b flags:# user_id:int admin_rights:ChatAdminRights rank:flags.0?string = ChannelParticipant;\
-
+updateShortChatMessage#402d5dbb flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> = Updates;
+channelParticipantCreator#447dca4b flags:# user_id:int admin_rights:ChatAdminRights rank:flags.0?string = ChannelParticipant;
messageFwdHeader#5f777dce flags:# from_id:flags.0?Peer from_name:flags.5?string date:int channel_post:flags.2?int post_author:flags.3?string saved_from_peer:flags.4?Peer saved_from_msg_id:flags.4?int psa_type:flags.6?string = MessageFwdHeader;
-messageViews#455b853d flags:# views:flags.0?int forwards:flags.1?int replies:flags.2?MessageReplies = MessageViews;\
-
-updateChannelMessageForwards#6e8a84df channel_id:int id:int forwards:int = Update;\
-
-photoSizeProgressive#5aa86a51 type:string location:FileLocation w:int h:int sizes:Vector<int> = PhotoSize;\
-
-messages.messageViews#b6c4f543 views:Vector<MessageViews> chats:Vector<Chat> users:Vector<User> = messages.MessageViews;\
-
+messageViews#455b853d flags:# views:flags.0?int forwards:flags.1?int replies:flags.2?MessageReplies = MessageViews;
+updateChannelMessageForwards#6e8a84df channel_id:int id:int forwards:int = Update;
+photoSizeProgressive#5aa86a51 type:string location:FileLocation w:int h:int sizes:Vector<int> = PhotoSize;
+messages.messageViews#b6c4f543 views:Vector<MessageViews> chats:Vector<Chat> users:Vector<User> = messages.MessageViews;
updateReadChannelDiscussionInbox#1cc7de54 flags:# channel_id:int top_msg_id:int read_max_id:int broadcast_id:flags.0?int broadcast_post:flags.0?int = Update;
-updateReadChannelDiscussionOutbox#4638a26c channel_id:int top_msg_id:int read_max_id:int = Update;\
-
+updateReadChannelDiscussionOutbox#4638a26c channel_id:int top_msg_id:int read_max_id:int = Update;
messages.discussionMessage#f5dd8f9d flags:# messages:Vector<Message> max_id:flags.0?int read_inbox_max_id:flags.1?int read_outbox_max_id:flags.2?int chats:Vector<Chat> users:Vector<User> = messages.DiscussionMessage;
messageReplyHeader#a6d57763 flags:# reply_to_msg_id:int reply_to_peer_id:flags.0?Peer reply_to_top_id:flags.1?int = MessageReplyHeader;
-messageReplies#4128faac flags:# comments:flags.0?true replies:int replies_pts:int recent_repliers:flags.1?Vector<Peer> channel_id:flags.0?int max_id:flags.2?int read_max_id:flags.3?int = MessageReplies;\
-
-updatePeerBlocked#246a4b22 peer_id:Peer blocked:Bool = Update;\
-
-peerBlocked#e8fd8014 peer_id:Peer date:int = PeerBlocked;\
-
-updateChannelUserTyping#ff2abe9f flags:# channel_id:int top_msg_id:flags.0?int user_id:int action:SendMessageAction = Update;\
-
----functions---\
-
+messageReplies#4128faac flags:# comments:flags.0?true replies:int replies_pts:int recent_repliers:flags.1?Vector<Peer> channel_id:flags.0?int max_id:flags.2?int read_max_id:flags.3?int = MessageReplies;
+updatePeerBlocked#246a4b22 peer_id:Peer blocked:Bool = Update;
+peerBlocked#e8fd8014 peer_id:Peer date:int = PeerBlocked;
+updateChannelUserTyping#ff2abe9f flags:# channel_id:int top_msg_id:flags.0?int user_id:int action:SendMessageAction = Update;
+---functions---
contacts.block#68cc1411 id:InputPeer = Bool;
-contacts.unblock#bea65d50 id:InputPeer = Bool;\
-
+contacts.unblock#bea65d50 id:InputPeer = Bool;
messages.search#4e17810b flags:# peer:InputPeer q:string from_id:flags.0?InputUser top_msg_id:flags.1?int filter:MessagesFilter min_date:int max_date:int offset_id:int add_offset:int limit:int max_id:int min_id:int hash:int = messages.Messages;
messages.setTyping#58943ee2 flags:# peer:InputPeer top_msg_id:flags.0?int action:SendMessageAction = Bool;
messages.getMessagesViews#5784d3e1 peer:InputPeer id:Vector<int> increment:Bool = messages.MessageViews;
-messages.searchGlobal#4bc6589a flags:# 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.exportMessageLink#e63fadeb flags:# grouped:flags.0?true thread:flags.1?true channel:InputChannel id:int = ExportedMessageLink;\
-
+messages.searchGlobal#4bc6589a flags:# 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.exportMessageLink#e63fadeb flags:# grouped:flags.0?true thread:flags.1?true channel:InputChannel id:int = ExportedMessageLink;
messages.getReplies#24b581ba peer:InputPeer msg_id:int offset_id:int offset_date:int add_offset:int limit:int max_id:int min_id:int hash:int = messages.Messages;
messages.getDiscussionMessage#446972fd peer:InputPeer msg_id:int = messages.DiscussionMessage;
-messages.readDiscussion#f731a9f4 peer:InputPeer msg_id:int read_max_id:int = Bool;\
-
-contacts.blockFromReplies#29a8962c flags:# delete_message:flags.0?true delete_history:flags.1?true report_spam:flags.2?true msg_id:int = Updates;\
-Layer 118
+messages.readDiscussion#f731a9f4 peer:InputPeer msg_id:int read_max_id:int = Bool;
+contacts.blockFromReplies#29a8962c flags:# delete_message:flags.0?true delete_history:flags.1?true report_spam:flags.2?true msg_id:int = Updates;
+
Added method for fetching country names and phone patterns.
-keyboardButtonCallback#35bbdb6b flags:# requires_password:flags.0?true text:string data:bytes = KeyboardButton;\
-
+Schema
+keyboardButtonCallback#35bbdb6b flags:# requires_password:flags.0?true text:string data:bytes = KeyboardButton;
help.countryCode#4203c5ef flags:# country_code:string prefixes:flags.0?Vector<string> patterns:flags.1?Vector<string> = help.CountryCode;
help.country#c3878e23 flags:# hidden:flags.0?true iso2:string default_name:string name:flags.1?string country_codes:Vector<help.CountryCode> = help.Country;
help.countriesListNotModified#93cc1f32 = help.CountriesList;
-help.countriesList#87d0759e countries:Vector<help.Country> hash:int = help.CountriesList;\
-
----functions---\
-
+help.countriesList#87d0759e countries:Vector<help.Country> hash:int = help.CountriesList;
+---functions---
messages.sendEncrypted#44fa7a15 flags:# silent:flags.0?true peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
messages.sendEncryptedFile#5559481d flags:# silent:flags.0?true peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.getBotCallbackAnswer#9342ca07 flags:# game:flags.1?true peer:InputPeer msg_id:int data:flags.0?bytes password:flags.2?InputCheckPasswordSRP = messages.BotCallbackAnswer;\
-
-help.getCountriesList#735787a8 lang_code:string hash:int = help.CountriesList;\
-
-
-
-
-Layer 117
+messages.getBotCallbackAnswer#9342ca07 flags:# game:flags.1?true peer:InputPeer msg_id:int data:flags.0?bytes password:flags.2?InputCheckPasswordSRP = messages.BotCallbackAnswer;
+help.getCountriesList#735787a8 lang_code:string hash:int = help.CountriesList;
Added WebRTC endpoint constructors.
-phoneConnectionWebrtc#635fe375 flags:# turn:flags.0?true stun:flags.1?true id:long ip:string ipv6:string port:int username:string password:string = PhoneConnection;\
-
phoneConnectionWebrtc#635fe375 flags:# turn:flags.0?true stun:flags.1?true id:long ip:string ipv6:string port:int username:string password:string = PhoneConnection;
Added supergroup statistics and global privacy settings.
-inputChatUploadedPhoto#c642724e flags:# file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double = InputChatPhoto;\
-
-userProfilePhoto#69d3ab26 flags:# has_video:flags.0?true photo_id:long photo_small:FileLocation photo_big:FileLocation dc_id:int = UserProfilePhoto;\
-
-chatPhoto#d20b9f3c flags:# has_video:flags.0?true photo_small:FileLocation photo_big:FileLocation dc_id:int = ChatPhoto;\
-
+Schema
+inputChatUploadedPhoto#c642724e flags:# file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double = InputChatPhoto;
+userProfilePhoto#69d3ab26 flags:# has_video:flags.0?true photo_id:long photo_small:FileLocation photo_big:FileLocation dc_id:int = UserProfilePhoto;
+chatPhoto#d20b9f3c flags:# has_video:flags.0?true photo_small:FileLocation photo_big:FileLocation dc_id:int = ChatPhoto;
photo#fb197a65 flags:# has_stickers:flags.0?true id:long access_hash:long file_reference:bytes date:int sizes:Vector<PhotoSize> video_sizes:flags.1?Vector<VideoSize> dc_id:int = Photo;
-peerSettings#733f2961 flags:# report_spam:flags.0?true add_contact:flags.1?true block_contact:flags.2?true share_contact:flags.3?true need_contacts_exception:flags.4?true report_geo:flags.5?true autoarchived:flags.7?true geo_distance:flags.6?int = PeerSettings;\
-
-encryptedChatRequested#62718a82 flags:# folder_id:flags.0?int id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;\
-
-videoSize#e831c556 flags:# type:string location:FileLocation w:int h:int size:int video_start_ts:flags.0?double = VideoSize;\
-
+peerSettings#733f2961 flags:# report_spam:flags.0?true add_contact:flags.1?true block_contact:flags.2?true share_contact:flags.3?true need_contacts_exception:flags.4?true report_geo:flags.5?true autoarchived:flags.7?true geo_distance:flags.6?int = PeerSettings;
+encryptedChatRequested#62718a82 flags:# folder_id:flags.0?int id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+videoSize#e831c556 flags:# type:string location:FileLocation w:int h:int size:int video_start_ts:flags.0?double = VideoSize;
statsGroupTopPoster#18f3d0f7 user_id:int messages:int avg_chars:int = StatsGroupTopPoster;
statsGroupTopAdmin#6014f412 user_id:int deleted:int kicked:int banned:int = StatsGroupTopAdmin;
statsGroupTopInviter#31962a4c user_id:int invitations:int = StatsGroupTopInviter;
-stats.megagroupStats#ef7ff916 period:StatsDateRangeDays members:StatsAbsValueAndPrev messages:StatsAbsValueAndPrev viewers:StatsAbsValueAndPrev posters:StatsAbsValueAndPrev growth_graph:StatsGraph members_graph:StatsGraph new_members_by_source_graph:StatsGraph languages_graph:StatsGraph messages_graph:StatsGraph actions_graph:StatsGraph top_hours_graph:StatsGraph weekdays_graph:StatsGraph top_posters:Vector<StatsGroupTopPoster> top_admins:Vector<StatsGroupTopAdmin> top_inviters:Vector<StatsGroupTopInviter> users:Vector<User> = stats.MegagroupStats;\
-
-globalPrivacySettings#bea2f424 flags:# archive_and_mute_new_noncontact_peers:flags.0?Bool = GlobalPrivacySettings;\
-
-updateChannelParticipant#65d2b464 flags:# channel_id:int date:int user_id:int prev_participant:flags.0?ChannelParticipant new_participant:flags.1?ChannelParticipant qts:int = Update;\
-
----functions---\
-
+stats.megagroupStats#ef7ff916 period:StatsDateRangeDays members:StatsAbsValueAndPrev messages:StatsAbsValueAndPrev viewers:StatsAbsValueAndPrev posters:StatsAbsValueAndPrev growth_graph:StatsGraph members_graph:StatsGraph new_members_by_source_graph:StatsGraph languages_graph:StatsGraph messages_graph:StatsGraph actions_graph:StatsGraph top_hours_graph:StatsGraph weekdays_graph:StatsGraph top_posters:Vector<StatsGroupTopPoster> top_admins:Vector<StatsGroupTopAdmin> top_inviters:Vector<StatsGroupTopInviter> users:Vector<User> = stats.MegagroupStats;
+globalPrivacySettings#bea2f424 flags:# archive_and_mute_new_noncontact_peers:flags.0?Bool = GlobalPrivacySettings;
+updateChannelParticipant#65d2b464 flags:# channel_id:int date:int user_id:int prev_participant:flags.0?ChannelParticipant new_participant:flags.1?ChannelParticipant qts:int = Update;
+---functions---
photos.updateProfilePhoto#72d4742c id:InputPhoto = photos.Photo;
-photos.uploadProfilePhoto#89f30f69 flags:# file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double = photos.Photo;\
-
-stats.getMegagroupStats#dcdf8607 flags:# dark:flags.0?true channel:InputChannel = stats.MegagroupStats;\
-
+photos.uploadProfilePhoto#89f30f69 flags:# file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double = photos.Photo;
+stats.getMegagroupStats#dcdf8607 flags:# dark:flags.0?true channel:InputChannel = stats.MegagroupStats;
account.getGlobalPrivacySettings#eb2b4cf6 = GlobalPrivacySettings;
-account.setGlobalPrivacySettings#1edaaac2 settings:GlobalPrivacySettings = GlobalPrivacySettings;\
-
-help.dismissSuggestion#077fa99f suggestion:string = Bool;\
-
-
-
-
-Layer 115
+account.setGlobalPrivacySettings#1edaaac2 settings:GlobalPrivacySettings = GlobalPrivacySettings;
+help.dismissSuggestion#077fa99f suggestion:string = Bool;
Added a chat invitation that also allows peeking into the group to read messages without joining it.
-chatInvitePeek#61695cb0 chat:Chat expires:int = ChatInvite;\
-
chatInvitePeek#61695cb0 chat:Chat expires:int = ChatInvite;
Added WebRTC signaling methods.
-userFull#edf17c12 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true user:User about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int = UserFull;\
-
-inputMediaUploadedDocument#5b38c6c1 flags:# nosound_video:flags.3?true force_file:flags.4?true file:InputFile thumb:flags.2?InputFile mime_type:string attributes:Vector<DocumentAttribute> stickers:flags.0?Vector<InputDocument> ttl_seconds:flags.1?int = InputMedia;\
-
-document#1e87342b flags:# id:long access_hash:long file_reference:bytes date:int mime_type:string size:int thumbs:flags.0?Vector<PhotoSize> video_thumbs:flags.1?Vector<VideoSize> dc_id:int attributes:Vector<DocumentAttribute> = Document;\
-
-user#938458c1 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string = User;\
-
-channelFull#f0e6672a flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int = ChatFull;\
-
+Schema
+userFull#edf17c12 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true user:User about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int = UserFull;
+inputMediaUploadedDocument#5b38c6c1 flags:# nosound_video:flags.3?true force_file:flags.4?true file:InputFile thumb:flags.2?InputFile mime_type:string attributes:Vector<DocumentAttribute> stickers:flags.0?Vector<InputDocument> ttl_seconds:flags.1?int = InputMedia;
+document#1e87342b flags:# id:long access_hash:long file_reference:bytes date:int mime_type:string size:int thumbs:flags.0?Vector<PhotoSize> video_thumbs:flags.1?Vector<VideoSize> dc_id:int attributes:Vector<DocumentAttribute> = Document;
+user#938458c1 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string = User;
+channelFull#f0e6672a flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int = ChatFull;
phoneCallWaiting#1b8f4ad1 flags:# video:flags.6?true id:long access_hash:long date:int admin_id:int participant_id:int protocol:PhoneCallProtocol receive_date:flags.0?int = PhoneCall;
phoneCallRequested#87eabb53 flags:# video:flags.6?true id:long access_hash:long date:int admin_id:int participant_id:int g_a_hash:bytes protocol:PhoneCallProtocol = PhoneCall;
phoneCallAccepted#997c454a flags:# video:flags.6?true id:long access_hash:long date:int admin_id:int participant_id:int g_b:bytes protocol:PhoneCallProtocol = PhoneCall;
phoneCall#8742ae7f flags:# p2p_allowed:flags.5?true video:flags.6?true id:long access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long protocol:PhoneCallProtocol connections:Vector<PhoneConnection> start_date:int = PhoneCall;
-phoneCallDiscarded#50ca4de1 flags:# need_rating:flags.2?true need_debug:flags.3?true video:flags.6?true id:long reason:flags.0?PhoneCallDiscardReason duration:flags.1?int = PhoneCall;\
-
-chatAdminRights#5fb224d5 flags:# change_info:flags.0?true post_messages:flags.1?true edit_messages:flags.2?true delete_messages:flags.3?true ban_users:flags.4?true invite_users:flags.5?true pin_messages:flags.7?true add_admins:flags.9?true anonymous:flags.10?true = ChatAdminRights;\
-
-videoSize#435bb987 type:string location:FileLocation w:int h:int size:int = VideoSize;\
-
-updatePhoneCallSignalingData#2661bf09 phone_call_id:long data:bytes = Update;\
-
----functions---\
-
+phoneCallDiscarded#50ca4de1 flags:# need_rating:flags.2?true need_debug:flags.3?true video:flags.6?true id:long reason:flags.0?PhoneCallDiscardReason duration:flags.1?int = PhoneCall;
+chatAdminRights#5fb224d5 flags:# change_info:flags.0?true post_messages:flags.1?true edit_messages:flags.2?true delete_messages:flags.3?true ban_users:flags.4?true invite_users:flags.5?true pin_messages:flags.7?true add_admins:flags.9?true anonymous:flags.10?true = ChatAdminRights;
+videoSize#435bb987 type:string location:FileLocation w:int h:int size:int = VideoSize;
+updatePhoneCallSignalingData#2661bf09 phone_call_id:long data:bytes = Update;
+---functions---
messages.forwardMessages#d9fee60e flags:# silent:flags.5?true background:flags.6?true with_my_score:flags.8?true from_peer:InputPeer id:Vector<int> random_id:Vector<long> to_peer:InputPeer schedule_date:flags.10?int = Updates;
-messages.updatePinnedMessage#d2aaf7ec flags:# silent:flags.0?true unpin:flags.1?true pm_oneside:flags.2?true peer:InputPeer id:int = Updates;\
-
-phone.sendSignalingData#ff7a9383 peer:InputPhoneCall data:bytes = Bool;\
-
-
-
-
-Layer 113
-Public Service Announcement constructors and better PUSH notifications.
Notice that all PINNED_*
PUSH notifications have two variants: one for groups, and one for channels.
-Schema changes
-New Methods
+messages.updatePinnedMessage#d2aaf7ec flags:# silent:flags.0?true unpin:flags.1?true pm_oneside:flags.2?true peer:InputPeer id:int = Updates;
+phone.sendSignalingData#ff7a9383 peer:InputPhoneCall data:bytes = Bool;
Public Service Announcement constructors and better PUSH notifications.
+Notice that all PINNED_*
PUSH notifications have two variants: one for groups, and one for channels.
{1} posted a quiz {2}
{1} sent a quiz {3} to the group {2}
{1} sent you a quiz {2}
{1} pinned a quiz {2}
messageFwdHeader#353a686b flags:# from_id:flags.0?int from_name:flags.5?string date:int channel_id:flags.1?int channel_post:flags.2?int post_author:flags.3?string saved_from_peer:flags.4?Peer saved_from_msg_id:flags.4?int psa_type:flags.6?string = MessageFwdHeader;\
-
+Schema
+messageFwdHeader#353a686b flags:# from_id:flags.0?int from_name:flags.5?string date:int channel_id:flags.1?int channel_post:flags.2?int post_author:flags.3?string saved_from_peer:flags.4?Peer saved_from_msg_id:flags.4?int psa_type:flags.6?string = MessageFwdHeader;
help.promoDataEmpty#98f6ac75 expires:int = help.PromoData;
-help.promoData#8c39793f flags:# proxy:flags.0?true expires:int peer:Peer chats:Vector<Chat> users:Vector<User> psa_type:flags.1?string psa_message:flags.2?string = help.PromoData;\
-
----functions---\
-
+help.promoData#8c39793f flags:# proxy:flags.0?true expires:int peer:Peer chats:Vector<Chat> users:Vector<User> psa_type:flags.1?string psa_message:flags.2?string = help.PromoData;
+---functions---
help.getPromoData#c0977421 = help.PromoData;
-help.hidePromoData#1e251c95 peer:InputPeer = Bool;\
-
-
-
-
-Layer 112
-Schema changes
-New Methods
+help.hidePromoData#1e251c95 peer:InputPeer = Bool;
messages.featuredStickersNotModified#c6dc0c66 count:int = messages.FeaturedStickers;
-messages.featuredStickers#b6abc341 hash:int count:int sets:Vector<StickerSetCovered> unread:Vector<long> = messages.FeaturedStickers;\
-
+messages.featuredStickers#b6abc341 hash:int count:int sets:Vector<StickerSetCovered> unread:Vector<long> = messages.FeaturedStickers;
poll#86e18161 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true question:string answers:Vector<PollAnswer> close_period:flags.4?int close_date:flags.5?int = Poll;
-pollResults#badcc1a3 flags:# min:flags.0?true results:flags.1?Vector<PollAnswerVoters> total_voters:flags.2?int recent_voters:flags.3?Vector<int> solution:flags.4?string solution_entities:flags.4?Vector<MessageEntity> = PollResults;\
-
+pollResults#badcc1a3 flags:# min:flags.0?true results:flags.1?Vector<PollAnswerVoters> total_voters:flags.2?int recent_voters:flags.3?Vector<int> solution:flags.4?string solution_entities:flags.4?Vector<MessageEntity> = PollResults;
inputMediaPoll#0f94e5f1 flags:# poll:Poll correct_answers:flags.0?Vector<bytes> solution:flags.1?string solution_entities:flags.1?Vector<MessageEntity> = InputMedia;
-inputMediaDice#e66fbf7b emoticon:string = InputMedia;\
-
-messageMediaDice#3f7ee58b value:int emoticon:string = MessageMedia;\
-
-inputStickerSetDice#e67f520e emoticon:string = InputStickerSet;\
-
----functions---\
-
-initConnection#c1cd5ea9 {X:Type} flags:# api_id:int device_model:string system_version:string app_version:string system_lang_code:string lang_pack:string lang_code:string proxy:flags.0?InputClientProxy params:flags.1?JSONValue query:!X = X;\
-
-messages.getOldFeaturedStickers#5fe7025b offset:int limit:int hash:int = messages.FeaturedStickers;\
-
Folders, channel stats, bot and sticker improvements
-channelFull#f0e6672a flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_view_stats:flags.12?true can_set_location:flags.16?true has_scheduled:flags.19?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int = ChatFull;\
-
-webPageNotModified#7311ca11 flags:# cached_page_views:flags.0?int = WebPage;\
-
+Schema
+channelFull#f0e6672a flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_view_stats:flags.12?true can_set_location:flags.16?true has_scheduled:flags.19?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int = ChatFull;
+webPageNotModified#7311ca11 flags:# cached_page_views:flags.0?int = WebPage;
phoneCallProtocol#fc878fc8 flags:# udp_p2p:flags.0?true udp_reflector:flags.1?true min_layer:int max_layer:int library_versions:Vector<string> = PhoneCallProtocol;
-page#98657f0d flags:# part:flags.0?true rtl:flags.1?true v2:flags.2?true url:string blocks:Vector<PageBlock> photos:Vector<Photo> documents:Vector<Document> views:flags.3?int = Page;\
-
+page#98657f0d flags:# part:flags.0?true rtl:flags.1?true v2:flags.2?true url:string blocks:Vector<PageBlock> photos:Vector<Photo> documents:Vector<Document> views:flags.3?int = Page;
dialogFilter#7438f7e8 flags:# contacts:flags.0?true non_contacts:flags.1?true groups:flags.2?true broadcasts:flags.3?true bots:flags.4?true exclude_muted:flags.11?true exclude_read:flags.12?true exclude_archived:flags.13?true id:int title:string emoticon:flags.25?string pinned_peers:Vector<InputPeer> include_peers:Vector<InputPeer> exclude_peers:Vector<InputPeer> = DialogFilter;
-dialogFilterSuggested#77744d4a filter:DialogFilter description:string = DialogFilterSuggested;\
-
+dialogFilterSuggested#77744d4a filter:DialogFilter description:string = DialogFilterSuggested;
updateDialogFilter#26ffde7d flags:# id:int filter:flags.0?DialogFilter = Update;
updateDialogFilterOrder#a5d72105 order:Vector<int> = Update;
-updateDialogFilters#3504914f = Update;\
-
+updateDialogFilters#3504914f = Update;
statsDateRangeDays#b637edaf min_date:int max_date:int = StatsDateRangeDays;
statsAbsValueAndPrev#cb43acde current:double previous:double = StatsAbsValueAndPrev;
statsPercentValue#cbce2fe0 part:double total:double = StatsPercentValue;
statsGraphAsync#4a27eb2d token:string = StatsGraph;
statsGraphError#bedc9822 error:string = StatsGraph;
-statsGraph#8ea464b6 flags:# json:DataJSON zoom_token:flags.0?string = StatsGraph;\
-
-messageInteractionCounters#ad4fc9bd msg_id:int views:int forwards:int = MessageInteractionCounters;\
-
-stats.broadcastStats#bdf78394 period:StatsDateRangeDays followers:StatsAbsValueAndPrev views_per_post:StatsAbsValueAndPrev shares_per_post:StatsAbsValueAndPrev enabled_notifications:StatsPercentValue growth_graph:StatsGraph followers_graph:StatsGraph mute_graph:StatsGraph top_hours_graph:StatsGraph interactions_graph:StatsGraph iv_interactions_graph:StatsGraph views_by_source_graph:StatsGraph new_followers_by_source_graph:StatsGraph languages_graph:StatsGraph recent_message_interactions:Vector<MessageInteractionCounters> = stats.BroadcastStats;\
-
-inputMediaDice#aeffa807 = InputMedia;\
-
-messageMediaDice#638fe46b value:int = MessageMedia;\
-
-inputStickerSetDice#79e21a53 = InputStickerSet;\
-
----functions---\
-
-initConnection#785188b8 {X:Type} flags:# api_id:int device_model:string system_version:string app_version:string system_lang_code:string lang_pack:string lang_code:string proxy:flags.0?InputClientProxy params:flags.1?JSONValue query:!X = X;\
-
-stickers.createStickerSet#f1036780 flags:# masks:flags.0?true animated:flags.1?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector<InputStickerSetItem> = messages.StickerSet;\
-
+statsGraph#8ea464b6 flags:# json:DataJSON zoom_token:flags.0?string = StatsGraph;
+messageInteractionCounters#ad4fc9bd msg_id:int views:int forwards:int = MessageInteractionCounters;
+stats.broadcastStats#bdf78394 period:StatsDateRangeDays followers:StatsAbsValueAndPrev views_per_post:StatsAbsValueAndPrev shares_per_post:StatsAbsValueAndPrev enabled_notifications:StatsPercentValue growth_graph:StatsGraph followers_graph:StatsGraph mute_graph:StatsGraph top_hours_graph:StatsGraph interactions_graph:StatsGraph iv_interactions_graph:StatsGraph views_by_source_graph:StatsGraph new_followers_by_source_graph:StatsGraph languages_graph:StatsGraph recent_message_interactions:Vector<MessageInteractionCounters> = stats.BroadcastStats;
+inputMediaDice#aeffa807 = InputMedia;
+messageMediaDice#638fe46b value:int = MessageMedia;
+inputStickerSetDice#79e21a53 = InputStickerSet;
+---functions---
+initConnection#785188b8 {X:Type} flags:# api_id:int device_model:string system_version:string app_version:string system_lang_code:string lang_pack:string lang_code:string proxy:flags.0?InputClientProxy params:flags.1?JSONValue query:!X = X;
+stickers.createStickerSet#f1036780 flags:# masks:flags.0?true animated:flags.1?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector<InputStickerSetItem> = messages.StickerSet;
messages.getDialogFilters#f19ed96d = Vector<DialogFilter>;
messages.getSuggestedDialogFilters#a29cd42c = Vector<DialogFilterSuggested>;
messages.updateDialogFilter#1ad4a04a flags:# id:int filter:flags.0?DialogFilter = Bool;
-messages.updateDialogFiltersOrder#c563c1e4 order:Vector<int> = Bool;\
-
+messages.updateDialogFiltersOrder#c563c1e4 order:Vector<int> = Bool;
stats.getBroadcastStats#ab42441a flags:# dark:flags.0?true channel:InputChannel = stats.BroadcastStats;
stats.loadAsyncGraph#621d5fa0 flags:# token:string x:flags.0?long = StatsGraph;
-stickers.setStickerSetThumb#9a364e30 stickerset:InputStickerSet thumb:InputDocument = messages.StickerSet;\
-
-bots.setBotCommands#805d46f6 commands:Vector<BotCommand> = Bool;\
-
-
-
-
-Layer 110
+stickers.setStickerSetThumb#9a364e30 stickerset:InputStickerSet thumb:InputDocument = messages.StickerSet;
+bots.setBotCommands#805d46f6 commands:Vector<BotCommand> = Bool;
Credit card information
-messageEntityBankCard#761e6af4 offset:int length:int = MessageEntity;\
-
-bankCardOpenUrl#f568028a url:string name:string = BankCardOpenUrl;\
-
+Schema
+messageEntityBankCard#761e6af4 offset:int length:int = MessageEntity;
+bankCardOpenUrl#f568028a url:string name:string = BankCardOpenUrl;
payments.bankCardData#3e24e573 title:string open_urls:Vector<BankCardOpenUrl> = payments.BankCardData;
-peerSelfLocated#f8ec284b expires:int = PeerLocated;\
-
----functions---\
-
-initConnection#785188b8 {X:Type} flags:# api_id:int device_model:string system_version:string app_version:string system_lang_code:string lang_pack:string lang_code:string proxy:flags.0?InputClientProxy query:!X = X;\
-
-contacts.getLocated#d348bc44 flags:# background:flags.1?true geo_point:InputGeoPoint self_expires:flags.0?int = Updates;\
-
-payments.getBankCardData#2e79d779 number:string = payments.BankCardData;\
-
-
-
-
-Layer 109
+peerSelfLocated#f8ec284b expires:int = PeerLocated;
+---functions---
+initConnection#785188b8 {X:Type} flags:# api_id:int device_model:string system_version:string app_version:string system_lang_code:string lang_pack:string lang_code:string proxy:flags.0?InputClientProxy query:!X = X;
+contacts.getLocated#d348bc44 flags:# background:flags.1?true geo_point:InputGeoPoint self_expires:flags.0?int = Updates;
+payments.getBankCardData#2e79d779 number:string = payments.BankCardData;
Non-anonymous polls, improved sticker management
-pollResults#c87024a2 flags:# min:flags.0?true results:flags.1?Vector<PollAnswerVoters> total_voters:flags.2?int recent_voters:flags.3?Vector<int> = PollResults;\
-
-inputMediaPoll#abe9ca25 flags:# poll:Poll correct_answers:flags.0?Vector<bytes> = InputMedia;\
-
-updateMessagePollVote#42f88f2c poll_id:long user_id:int options:Vector<bytes> = Update;\
-
+Schema
+pollResults#c87024a2 flags:# min:flags.0?true results:flags.1?Vector<PollAnswerVoters> total_voters:flags.2?int recent_voters:flags.3?Vector<int> = PollResults;
+inputMediaPoll#abe9ca25 flags:# poll:Poll correct_answers:flags.0?Vector<bytes> = InputMedia;
+updateMessagePollVote#42f88f2c poll_id:long user_id:int options:Vector<bytes> = Update;
messageUserVote#a28e5559 user_id:int option:bytes date:int = MessageUserVote;
messageUserVoteInputOption#36377430 user_id:int date:int = MessageUserVote;
messageUserVoteMultiple#0e8fe0de user_id:int options:Vector<bytes> date:int = MessageUserVote;
-messages.votesList#0823f649 flags:# count:int votes:Vector<MessageUserVote> users:Vector<User> next_offset:flags.0?string = messages.VotesList;\
-
-keyboardButtonRequestPoll#bbc7515d flags:# quiz:flags.0?Bool text:string = KeyboardButton;\
-
----functions---\
-
-initConnection#785188b8 {X:Type} flags:# api_id:int device_model:string system_version:string app_version:string system_lang_code:string lang_pack:string lang_code:string proxy:flags.0?InputClientProxy params:flags.1?JSONValue query:!X = X;\
-
+messages.votesList#0823f649 flags:# count:int votes:Vector<MessageUserVote> users:Vector<User> next_offset:flags.0?string = messages.VotesList;
+keyboardButtonRequestPoll#bbc7515d flags:# quiz:flags.0?Bool text:string = KeyboardButton;
+---functions---
+initConnection#785188b8 {X:Type} flags:# api_id:int device_model:string system_version:string app_version:string system_lang_code:string lang_pack:string lang_code:string proxy:flags.0?InputClientProxy params:flags.1?JSONValue query:!X = X;
messages.getPollVotes#b86e380e flags:# peer:InputPeer id:int option:flags.0?bytes offset:flags.1?string limit:int = messages.VotesList;
-messages.toggleStickerSets#b5052fea flags:# uninstall:flags.0?true archive:flags.1?true unarchive:flags.2?true stickersets:Vector<InputStickerSet> = Bool;\
-
-
-
-
-Layer 108
+messages.toggleStickerSets#b5052fea flags:# uninstall:flags.0?true archive:flags.1?true unarchive:flags.2?true stickersets:Vector<InputStickerSet> = Bool;
Login with QR-code, sensitive content settings, quizes, multiple-choice and public polls, get inactive chats, improved wallpapers and themes.
-webPage#e89c45b2 flags:# id:long url:string display_url:string hash:int type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string document:flags.9?Document cached_page:flags.10?Page attributes:flags.12?Vector<WebPageAttribute> = WebPage;\
-
+Schema
+webPage#e89c45b2 flags:# id:long url:string display_url:string hash:int type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string document:flags.9?Document cached_page:flags.10?Page attributes:flags.12?Vector<WebPageAttribute> = WebPage;
poll#d5529d06 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true question:string answers:Vector<PollAnswer> = Poll;
-pollAnswerVoters#3b6ddad2 flags:# chosen:flags.0?true correct:flags.1?true option:bytes voters:int = PollAnswerVoters;\
-
-wallPaperSettings#05086cf8 flags:# blur:flags.1?true motion:flags.2?true background_color:flags.0?int second_background_color:flags.4?int intensity:flags.3?int rotation:flags.4?int = WallPaperSettings;\
-
-autoDownloadSettings#e04232f3 flags:# disabled:flags.0?true video_preload_large:flags.1?true audio_preload_next:flags.2?true phonecalls_less_data:flags.3?true photo_size_max:int video_size_max:int file_size_max:int video_upload_maxbitrate:int = AutoDownloadSettings;\
-
-inputPhotoLegacyFileLocation#d83466f3 id:long access_hash:long file_reference:bytes volume_id:long local_id:int secret:long = InputFileLocation;\
-
-theme#028f1114 flags:# creator:flags.0?true default:flags.1?true id:long access_hash:long slug:string title:string document:flags.2?Document settings:flags.3?ThemeSettings installs_count:int = Theme;\
-
+pollAnswerVoters#3b6ddad2 flags:# chosen:flags.0?true correct:flags.1?true option:bytes voters:int = PollAnswerVoters;
+wallPaperSettings#05086cf8 flags:# blur:flags.1?true motion:flags.2?true background_color:flags.0?int second_background_color:flags.4?int intensity:flags.3?int rotation:flags.4?int = WallPaperSettings;
+autoDownloadSettings#e04232f3 flags:# disabled:flags.0?true video_preload_large:flags.1?true audio_preload_next:flags.2?true phonecalls_less_data:flags.3?true photo_size_max:int video_size_max:int file_size_max:int video_upload_maxbitrate:int = AutoDownloadSettings;
+inputPhotoLegacyFileLocation#d83466f3 id:long access_hash:long file_reference:bytes volume_id:long local_id:int secret:long = InputFileLocation;
+theme#028f1114 flags:# creator:flags.0?true default:flags.1?true id:long access_hash:long slug:string title:string document:flags.2?Document settings:flags.3?ThemeSettings installs_count:int = Theme;
updateGeoLiveViewed#871fb939 peer:Peer msg_id:int = Update;
-updateLoginToken#564fe691 = Update;\
-
+updateLoginToken#564fe691 = Update;
auth.loginToken#629f1980 expires:int token:bytes = auth.LoginToken;
auth.loginTokenMigrateTo#068e9916 dc_id:int token:bytes = auth.LoginToken;
auth.loginTokenSuccess#390d5c5e authorization:auth.Authorization = auth.LoginToken;
-account.contentSettings#57e28221 flags:# sensitive_enabled:flags.0?true sensitive_can_change:flags.1?true = account.ContentSettings;\
-
-messages.inactiveChats#a927fec5 dates:Vector<int> chats:Vector<Chat> users:Vector<User> = messages.InactiveChats;\
-
+account.contentSettings#57e28221 flags:# sensitive_enabled:flags.0?true sensitive_can_change:flags.1?true = account.ContentSettings;
+messages.inactiveChats#a927fec5 dates:Vector<int> chats:Vector<Chat> users:Vector<User> = messages.InactiveChats;
baseThemeClassic#c3a12462 = BaseTheme;
baseThemeDay#fbd81688 = BaseTheme;
baseThemeNight#b7b31ea8 = BaseTheme;
baseThemeTinted#6d5f77ee = BaseTheme;
-baseThemeArctic#5b11125a = BaseTheme;\
-
-inputWallPaperNoFile#8427bbac = InputWallPaper;\
-
-wallPaperNoFile#8af40b25 flags:# default:flags.1?true dark:flags.4?true settings:flags.2?WallPaperSettings = WallPaper;\
-
-inputThemeSettings#bd507cd1 flags:# base_theme:BaseTheme accent_color:int message_top_color:flags.0?int message_bottom_color:flags.0?int wallpaper:flags.1?InputWallPaper wallpaper_settings:flags.1?WallPaperSettings = InputThemeSettings;\
-
-themeSettings#9c14984a flags:# base_theme:BaseTheme accent_color:int message_top_color:flags.0?int message_bottom_color:flags.0?int wallpaper:flags.1?WallPaper = ThemeSettings;\
-
-webPageAttributeTheme#54b56617 flags:# documents:flags.0?Vector<Document> settings:flags.1?ThemeSettings = WebPageAttribute;\
-
----functions---\
-
-upload.getFile#b15a9afc flags:# precise:flags.0?true cdn_supported:flags.1?true location:InputFileLocation offset:int limit:int = upload.File;\
-
+baseThemeArctic#5b11125a = BaseTheme;
+inputWallPaperNoFile#8427bbac = InputWallPaper;
+wallPaperNoFile#8af40b25 flags:# default:flags.1?true dark:flags.4?true settings:flags.2?WallPaperSettings = WallPaper;
+inputThemeSettings#bd507cd1 flags:# base_theme:BaseTheme accent_color:int message_top_color:flags.0?int message_bottom_color:flags.0?int wallpaper:flags.1?InputWallPaper wallpaper_settings:flags.1?WallPaperSettings = InputThemeSettings;
+themeSettings#9c14984a flags:# base_theme:BaseTheme accent_color:int message_top_color:flags.0?int message_bottom_color:flags.0?int wallpaper:flags.1?WallPaper = ThemeSettings;
+webPageAttributeTheme#54b56617 flags:# documents:flags.0?Vector<Document> settings:flags.1?ThemeSettings = WebPageAttribute;
+---functions---
+upload.getFile#b15a9afc flags:# precise:flags.0?true cdn_supported:flags.1?true location:InputFileLocation offset:int limit:int = upload.File;
account.createTheme#8432c21f flags:# slug:string title:string document:flags.2?InputDocument settings:flags.3?InputThemeSettings = Theme;
account.updateTheme#5cb367d5 flags:# format:string theme:InputTheme slug:flags.0?string title:flags.1?string document:flags.2?InputDocument settings:flags.3?InputThemeSettings = Theme;
auth.exportLoginToken#b1b41517 api_id:int api_hash:string except_ids:Vector<int> = auth.LoginToken;
auth.importLoginToken#95ac5ce4 token:bytes = auth.LoginToken;
auth.acceptLoginToken#e894ad4d token:bytes = Authorization;
account.setContentSettings#b574b16b flags:# sensitive_enabled:flags.0?true = Bool;
-account.getContentSettings#8b9b4dae = account.ContentSettings;\
-
-channels.getInactiveChannels#11e831ee = messages.InactiveChats;\
-
-account.getMultiWallPapers#65ad71dc wallpapers:Vector<InputWallPaper> = Vector<WallPaper>;\
-
-
-
-
-Layer 105
+account.getContentSettings#8b9b4dae = account.ContentSettings;
+channels.getInactiveChannels#11e831ee = messages.InactiveChats;
+account.getMultiWallPapers#65ad71dc wallpapers:Vector<InputWallPaper> = Vector<WallPaper>;
The API underwent huge changes, a full reread of the documentation is required.
-contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
-config#7dae33e0 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_big_size:int chat_size_max:int broadcast_size_max:int disabled_features:Vector<DisabledFeature> = Config;\
-
+config#7dae33e0 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_big_size:int chat_size_max:int broadcast_size_max:int disabled_features:Vector<DisabledFeature> = Config;
inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;\
-
-document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;\
-
+inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
+document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
userStatusRecently#e26f42f1 = UserStatus;
userStatusLastWeek#07bf09fc = UserStatus;
userStatusLastMonth#77ebc742 = UserStatus;
-updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;\
-
-inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;\
-
-privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;\
-
+updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
+inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
+privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
inputPrivacyValueAllowContacts#0d09e07b = InputPrivacyRule;
inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
inputPrivacyValueDisallowContacts#0ba52007 = InputPrivacyRule;
inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
-inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;\
-
+inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
privacyValueAllowContacts#fffe1bac = PrivacyRule;
privacyValueAllowAll#65427b82 = PrivacyRule;
privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
privacyValueDisallowContacts#f888fa1a = PrivacyRule;
privacyValueDisallowAll#8b73e763 = PrivacyRule;
-privacyValueDisallowUsers#0c7f49b7 users:Vector<int> = PrivacyRule;\
-
+privacyValueDisallowUsers#0c7f49b7 users:Vector<int> = PrivacyRule;
account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
-account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;\
-
-updateUserPhone#12b9417b user_id:int phone:string = Update;\
-
+account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
+updateUserPhone#12b9417b user_id:int phone:string = Update;
documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
documentAttributeAnimated#11b58939 = DocumentAttribute;
documentAttributeSticker#fb0a5727 = DocumentAttribute;
documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
documentAttributeAudio#051448e5 duration:int = DocumentAttribute;
-documentAttributeFilename#15590068 file_name:string = DocumentAttribute;\
-
+documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
messages.stickersNotModified#f1749a22 = messages.Stickers;
-messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;\
-
-stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;\
-
+messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
+stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
messages.allStickersNotModified#e86602c3 = messages.AllStickers;
-messages.allStickers#dcef3102 hash:string packs:Vector<StickerPack> documents:Vector<Document> = messages.AllStickers;\
-
-disabledFeature#ae636f24 feature:string description:string = DisabledFeature;\
-
----functions---\
-
+messages.allStickers#dcef3102 hash:string packs:Vector<StickerPack> documents:Vector<Document> = messages.AllStickers;
+disabledFeature#ae636f24 feature:string description:string = DisabledFeature;
+---functions---
account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
account.deleteAccount#418d4e0b reason:string = Bool;
account.getAccountTTL#08fc711d = AccountDaysTTL;
-account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;\
-
-invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;\
-
-contacts.resolveUsername#0bf0131c username:string = User;\
-
+account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
+invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
+contacts.resolveUsername#0bf0131c username:string = User;
account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode;
-account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;\
-
+account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers;
-messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;\
-
-account.updateDeviceLocked#38df3532 period:int = Bool;\
-
===20===\
-
+End-to-end schema
+===20===
decryptedMessageActionRequestKey#f3c9611b exchange_id:long g_a:bytes = DecryptedMessageAction;
decryptedMessageActionAcceptKey#6fe1735b exchange_id:long g_b:bytes key_fingerprint:long = DecryptedMessageAction;
decryptedMessageActionAbortKey#dd05ec6b exchange_id:long = DecryptedMessageAction;
decryptedMessageActionCommitKey#ec2e0b9b exchange_id:long key_fingerprint:long = DecryptedMessageAction;
-decryptedMessageActionNoop#a82fdd63 = DecryptedMessageAction;\
-
+decryptedMessageActionNoop#a82fdd63 = DecryptedMessageAction;
===23===
documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;
documentAttributeAnimated#11b58939 = DocumentAttribute;
documentAttributeSticker#fb0a5727 = DocumentAttribute;
documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute;
documentAttributeAudio#051448e5 duration:int = DocumentAttribute;
-documentAttributeFilename#15590068 file_name:string = DocumentAttribute;\
-
+documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
photoSizeEmpty#0e17e23c type:string = PhotoSize;
photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize;
-photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;\
-
+photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation;
-fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;\
-
-decryptedMessageMediaExternalDocument#fa95b0dd id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = DecryptedMessageMedia;\
-
-
-Layer 18
+fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
+decryptedMessageMediaExternalDocument#fa95b0dd id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = DecryptedMessageMedia;
Added username support and a new type of updates for service messages.
-contactFound user_id:int = ContactFound;
+Schema
+contactFound user_id:int = ContactFound;
-contacts.found results:Vector<ContactFound> users:Vector<User> = contacts.Found;
+contacts.found results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-updateUserName user_id:int first_name:string last_name:string username:string = Update;
+updateUserName user_id:int first_name:string last_name:string username:string = Update;
-userSelf id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
-userContact id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userRequest id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userForeign id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
-userDeleted id:int first_name:string last_name:string username:string = User;
+userSelf id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
+userContact id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userRequest id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
+userForeign id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
+userDeleted id:int first_name:string last_name:string username:string = User;
-updateServiceNotification type:string message:string media:MessageMedia popup:Bool = Update;
+updateServiceNotification type:string message:string media:MessageMedia popup:Bool = Update;
---functions---
-account.checkUsername username:string = Bool;
-account.updateUsername username:string = User;
+account.checkUsername username:string = Bool;
+account.updateUsername username:string = User;
-contacts.search q:string limit:int = contacts.Found;
+contacts.search q:string limit:int = contacts.Found;
invokeWithLayer18#1c900537 {X:Type} query:!X = X;
-Layer 17
+Layer 17
Added new events for recording and uploading media, selecting contacts and locations to share.
Read status for multimedia (messages containing messageMediaVideo or messageMediaAudio) was moved to the new method messages.readMessageContents. In case read_contents is not passed or messages.readHistory is used with an older layer, messages will be marked as read in the traditional way.
-Schema changes
+Schema changes
- Added new type SendMessageAction for user actions aside from typing (recording, uploading media, etc.). It is used in updates updateUserTyping, updateChatUserTyping, in the method messages.setTyping, and in the new encrypted service message decryptedMessageActionTyping.
- unread and out parameters in the constructors of the Message type were joined to form the new flags parameter, containing a flag mask.
@@ -1993,434 +1909,433 @@ invokeWithLayer18#1c900537 {X:Type} query:!X = X;
sendMessageTypingAction = SendMessageAction;
-sendMessageCancelAction = SendMessageAction;
-sendMessageRecordVideoAction = SendMessageAction;
-sendMessageUploadVideoAction = SendMessageAction;
-sendMessageRecordAudioAction = SendMessageAction;
-sendMessageUploadAudioAction = SendMessageAction;
-sendMessageUploadPhotoAction = SendMessageAction;
-sendMessageUploadDocumentAction = SendMessageAction;
-sendMessageGeoLocationAction = SendMessageAction;
-sendMessageChooseContactAction = SendMessageAction;
+Schema
+sendMessageTypingAction = SendMessageAction;
+sendMessageCancelAction = SendMessageAction;
+sendMessageRecordVideoAction = SendMessageAction;
+sendMessageUploadVideoAction = SendMessageAction;
+sendMessageRecordAudioAction = SendMessageAction;
+sendMessageUploadAudioAction = SendMessageAction;
+sendMessageUploadPhotoAction = SendMessageAction;
+sendMessageUploadDocumentAction = SendMessageAction;
+sendMessageGeoLocationAction = SendMessageAction;
+sendMessageChooseContactAction = SendMessageAction;
-updateUserTyping user_id:int action:SendMessageAction = Update;
-updateChatUserTyping chat_id:int user_id:int action:SendMessageAction = Update;
+updateUserTyping user_id:int action:SendMessageAction = Update;
+updateChatUserTyping chat_id:int user_id:int action:SendMessageAction = Update;
// Message object
-message flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
-messageForwarded flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
-messageService flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
+message flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
+messageForwarded flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
+messageService flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
---functions---
-messages.setTyping peer:InputPeer action:SendMessageAction = Bool;
+messages.setTyping peer:InputPeer action:SendMessageAction = Bool;
-messages.readHistory peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory;
-messages.readMessageContents id:Vector<int> = Vector<int>;
+messages.readHistory peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory;
+messages.readMessageContents id:Vector<int> = Vector<int>;
invokeWithLayer17#50858a19 {X:Type} query:!X = X;
-End-to-end schema
+End-to-end schema
===17===
// Layer
-decryptedMessageLayer random_bytes:bytes layer:int in_seq_no:int out_seq_no:int message:DecryptedMessage = DecryptedMessageLayer;
+decryptedMessageLayer random_bytes:bytes layer:int in_seq_no:int out_seq_no:int message:DecryptedMessage = DecryptedMessageLayer;
-decryptedMessageMediaAudio duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaVideo thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaAudio duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaVideo thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-sendMessageTypingAction = SendMessageAction;
-sendMessageCancelAction = SendMessageAction;
-sendMessageRecordVideoAction = SendMessageAction;
-sendMessageUploadVideoAction = SendMessageAction;
-sendMessageRecordAudioAction = SendMessageAction;
-sendMessageUploadAudioAction = SendMessageAction;
-sendMessageUploadPhotoAction = SendMessageAction;
-sendMessageUploadDocumentAction = SendMessageAction;
-sendMessageGeoLocationAction = SendMessageAction;
-sendMessageChooseContactAction = SendMessageAction;
+sendMessageTypingAction = SendMessageAction;
+sendMessageCancelAction = SendMessageAction;
+sendMessageRecordVideoAction = SendMessageAction;
+sendMessageUploadVideoAction = SendMessageAction;
+sendMessageRecordAudioAction = SendMessageAction;
+sendMessageUploadAudioAction = SendMessageAction;
+sendMessageUploadPhotoAction = SendMessageAction;
+sendMessageUploadDocumentAction = SendMessageAction;
+sendMessageGeoLocationAction = SendMessageAction;
+sendMessageChooseContactAction = SendMessageAction;
-decryptedMessageActionNotifyLayer layer:int = DecryptedMessageAction;
-decryptedMessageActionTyping action:SendMessageAction = DecryptedMessageAction;
+decryptedMessageActionNotifyLayer layer:int = DecryptedMessageAction;
+decryptedMessageActionTyping action:SendMessageAction = DecryptedMessageAction;
-decryptedMessage random_id:long ttl:int message:string media:DecryptedMessageMedia = DecryptedMessage;
-decryptedMessageService random_id:long action:DecryptedMessageAction = DecryptedMessage;
-Layer 16
+decryptedMessage random_id:long ttl:int message:string media:DecryptedMessageMedia = DecryptedMessage;
+decryptedMessageService random_id:long action:DecryptedMessageAction = DecryptedMessage;
+Added new sms_type = 5
in the method auth.sendCode.
auth.sentAppCode phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+Schema
+auth.sentAppCode phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
---functions---
-auth.sendSms phone_number:string phone_code_hash:string = Bool;
+auth.sendSms phone_number:string phone_code_hash:string = Bool;
invokeWithLayer16#cf5f0987 {X:Type} query:!X = X;
-Layer 15
-Modified behavior of the offset parameter in the method messages.getHistory. From now on it's possible to combine message_id offset and a numeric offset.
-Schema
+Layer 15
+Modified behavior of the offset parameter in the method messages.getHistory. From now on it's possible to combine message_id offset and a numeric offset.
+Schema
invokeWithLayer15#b4418b64 {X:Type} query:!X = X;
-Layer 14
-Schema changes
+Layer 14
+Schema changes
- Added new update constructors: updateUserBlocked and updateNotifySettings to sync notification settings and blacklists between devices.
- Added notify_settings field to the dialog constructor.
-Schema
-notifyPeer peer:Peer = NotifyPeer;
-notifyUsers = NotifyPeer;
-notifyChats = NotifyPeer;
-notifyAll = NotifyPeer;
+Schema
+notifyPeer peer:Peer = NotifyPeer;
+notifyUsers = NotifyPeer;
+notifyChats = NotifyPeer;
+notifyAll = NotifyPeer;
-dialog peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
+dialog peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
-updateUserBlocked user_id:int blocked:Bool = Update;
-updateNotifySettings peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
+updateUserBlocked user_id:int blocked:Bool = Update;
+updateNotifySettings peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
---functions---
invokeWithLayer14#2b9b08fa {X:Type} query:!X = X;
-Layer 13
-Schema changes
+Layer 13
+Schema changes
- Added mime_type field to all audio and video constructors.
- Added new service message types in secret chats: messages read, messages deleted, screenshot taken, chat history cleared and API layer used by client notifications.
- Added retry_contacts field to the contacts.importedContacts constructor: ids of contacts, that will have to be imported at a later date.
-Schema
-contacts.importedContacts imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
+Schema
+contacts.importedContacts imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;
-inputMediaUploadedAudio file:InputFile duration:int mime_type:string = InputMedia;
-inputMediaUploadedVideo file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaUploadedThumbVideo file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaUploadedAudio file:InputFile duration:int mime_type:string = InputMedia;
+inputMediaUploadedVideo file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
+inputMediaUploadedThumbVideo file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-audio id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
-video id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
+audio id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
+video id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
---functions---
invokeWithLayer13#427c8ea2 {X:Type} query:!X = X;
-Layer 12
-Schema changes
+Layer 12
+Schema changes
- Added method help.getSupport for obtaining support user id.
- Added broadcast_size_max field to the constructor config, contaning maximum number of broadcast recipients.
- Added send_call_timeout field to the constructor auth.sentCode, containing required delay before calling auth.sendCall. New field is_password in the same constructor.
-Schema
-auth.sentCode phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
+Schema
+auth.sentCode phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-config date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
+config date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
-help.support phone_number:string user:User = help.Support;
+help.support phone_number:string user:User = help.Support;
---functions---
-help.getSupport = help.Support;
+help.getSupport = help.Support;
invokeWithLayer12#dda60d3c {X:Type} query:!X = X;
-Layer 11
-Schema changes
+Layer 11
+Schema changes
- The nonce parameter was removed from secret chat constructors. For purposes of backward compatibility, in all previous layers this field will contain empty bytes.
-Schema
-encryptedChatRequested id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+Schema
+encryptedChatRequested id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
---functions---
invokeWithLayer11#a6b88fdf {X:Type} query:!X = X;
-Layer 10
+Layer 10
Added brief constructors for editing group members. Added new attachment types for ordinary and secret chats.
-Schema changes
+Schema changes
- Added new update contructors: updateChatParticipantAdd and updateChatParticipantDelete.
- Added new media types: Document, Audio, along with rescpective attachment constructors.
-- If the client doesn't support Layer 10, it will receive messageMediaUnsupported constructors instead of the messageMediaDocument and messageMediaAudio constructors.
+- If the client doesn't support Layer 10, it will receive messageMediaUnsupported constructors instead of the messageMediaDocument and messageMediaAudio constructors.
-Schema
-updateChatParticipantAdd chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete chat_id:int user_id:int version:int = Update;
+Schema
+updateChatParticipantAdd chat_id:int user_id:int inviter_id:int version:int = Update;
+updateChatParticipantDelete chat_id:int user_id:int version:int = Update;
-inputMediaUploadedAudio file:InputFile duration:int = InputMedia;
-inputMediaAudio id:InputAudio = InputMedia;
+inputMediaUploadedAudio file:InputFile duration:int = InputMedia;
+inputMediaAudio id:InputAudio = InputMedia;
-inputMediaUploadedDocument file:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaUploadedThumbDocument file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaDocument id:InputDocument = InputMedia;
+inputMediaUploadedDocument file:InputFile file_name:string mime_type:string = InputMedia;
+inputMediaUploadedThumbDocument file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia;
+inputMediaDocument id:InputDocument = InputMedia;
-messageMediaDocument document:Document = MessageMedia;
-messageMediaAudio audio:Audio = MessageMedia;
+messageMediaDocument document:Document = MessageMedia;
+messageMediaAudio audio:Audio = MessageMedia;
// Input Audio
-inputAudioEmpty = InputAudio;
-inputAudio id:long access_hash:long = InputAudio;
+inputAudioEmpty = InputAudio;
+inputAudio id:long access_hash:long = InputAudio;
// Input Document
-inputDocumentEmpty = InputDocument;
-inputDocument id:long access_hash:long = InputDocument;
+inputDocumentEmpty = InputDocument;
+inputDocument id:long access_hash:long = InputDocument;
// Input location
-inputAudioFileLocation id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation id:long access_hash:long = InputFileLocation;
+inputAudioFileLocation id:long access_hash:long = InputFileLocation;
+inputDocumentFileLocation id:long access_hash:long = InputFileLocation;
-decryptedMessageMediaDocument thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaAudio duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaDocument thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaAudio duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
// Audio object
-audioEmpty id:long = Audio;
-audio id:long access_hash:long user_id:int date:int duration:int size:int dc_id:int = Audio;
+audioEmpty id:long = Audio;
+audio id:long access_hash:long user_id:int date:int duration:int size:int dc_id:int = Audio;
// Video object
-documentEmpty id:long = Document;
-document id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
+documentEmpty id:long = Document;
+document id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
---functions---
invokeWithLayer10#39620c41 {X:Type} query:!X = X;
-Push-notifications
+Push-notifications
Added MESSAGE_DOC, MESSAGE_AUDIO notifications — a message with document or audio received Added CHAT_MESSAGE_DOC, CHAT_MESSAGE_AUDIO notifications — a message with document or audio received in a group
-Layer 9
+Layer 9
Increased efficiency when loading big files. Added important checks for certain methods.
-Schema changes
+Schema changes
- Added new upload.saveBigFilePart method, constructors inputFileBig, inputEncryptedFileBigUploaded to optimize saving parts of big files. See the updated article on Uploading files for details.
- Added a check whether the initConnection method was called with all required parameters before making other API calls. See the updated article on Calling methods for details.
- Added availability check for lang_code parameters when calling methods auth.sendCode, account.registerDevice
- Added availability check for random_id parameters in all message sending methods: messages.sendMessage, messages.sendMedia, messages.forwardMessage
-Schema
-inputFileBig id:long parts:int name:string = InputFile;
+Schema
+inputFileBig id:long parts:int name:string = InputFile;
-inputEncryptedFileBigUploaded id:long parts:int key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFileBigUploaded id:long parts:int key_fingerprint:int = InputEncryptedFile;
---functions---
-upload.saveBigFilePart file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
+upload.saveBigFilePart file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
invokeWithLayer9#76715a63 {X:Type} query:!X = X;
-Layer 8
-Added support for end-to-end encryption in secret chats. More…
-Schema changes
+Layer 8
+Added support for end-to-end encryption in secret chats. More...
+Schema changes
- Added many constructors and methods for secret chats.
- Added qts field in constructor updates.state.
- Added 4 new constructors of Update type
-Schema
-updateNewEncryptedMessage message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping chat_id:int = Update;
-updateEncryption chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead chat_id:int max_date:int = Update;
+Schema
+updateNewEncryptedMessage message:EncryptedMessage qts:int = Update;
+updateEncryptedChatTyping chat_id:int = Update;
+updateEncryption chat:EncryptedChat date:int = Update;
+updateEncryptedMessagesRead chat_id:int max_date:int = Update;
// EncryptedChat object
-encryptedChatEmpty id:int = EncryptedChat;
-encryptedChatWaiting id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded id:int = EncryptedChat;
+encryptedChatEmpty id:int = EncryptedChat;
+encryptedChatWaiting id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
+encryptedChatRequested id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
+encryptedChat id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
+encryptedChatDiscarded id:int = EncryptedChat;
-inputEncryptedChat chat_id:int access_hash:long = InputEncryptedChat;
+inputEncryptedChat chat_id:int access_hash:long = InputEncryptedChat;
// EncryptedFile object
-encryptedFileEmpty = EncryptedFile;
-encryptedFile id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
+encryptedFileEmpty = EncryptedFile;
+encryptedFile id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-inputEncryptedFileEmpty = InputEncryptedFile;
-inputEncryptedFileUploaded id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile id:long access_hash:long = InputEncryptedFile;
+inputEncryptedFileEmpty = InputEncryptedFile;
+inputEncryptedFileUploaded id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
+inputEncryptedFile id:long access_hash:long = InputEncryptedFile;
-inputEncryptedFileLocation id:long access_hash:long = InputFileLocation;
+inputEncryptedFileLocation id:long access_hash:long = InputFileLocation;
// Encrypted message
-encryptedMessage random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
+encryptedMessage random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
+encryptedMessageService random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
// Diffie-Hellman config
-messages.dhConfigNotModified random:bytes = messages.DhConfig;
-messages.dhConfig g:int p:bytes version:int random:bytes = messages.DhConfig;
+messages.dhConfigNotModified random:bytes = messages.DhConfig;
+messages.dhConfig g:int p:bytes version:int random:bytes = messages.DhConfig;
-messages.sentEncryptedMessage date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile date:int file:EncryptedFile = messages.SentEncryptedMessage;
+messages.sentEncryptedMessage date:int = messages.SentEncryptedMessage;
+messages.sentEncryptedFile date:int file:EncryptedFile = messages.SentEncryptedMessage;
// Updated state with qts
-updates.state pts:int qts:int date:int seq:int unread_count:int = updates.State;
-updates.difference new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
+updates.state pts:int qts:int date:int seq:int unread_count:int = updates.State;
+updates.difference new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
+updates.differenceSlice new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
---functions---
-messages.getDhConfig version:int random_length:int = messages.DhConfig;
-messages.requestEncryption user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption chat_id:int = Bool;
+messages.getDhConfig version:int random_length:int = messages.DhConfig;
+messages.requestEncryption user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
+messages.acceptEncryption peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
+messages.discardEncryption chat_id:int = Bool;
-messages.setEncryptedTyping peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue max_qts:int = Vector<long>;
+messages.setEncryptedTyping peer:InputEncryptedChat typing:Bool = Bool;
+messages.readEncryptedHistory peer:InputEncryptedChat max_date:int = Bool;
+messages.sendEncrypted peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.sendEncryptedFile peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
+messages.sendEncryptedService peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
+messages.receivedQueue max_qts:int = Vector<long>;
-updates.getDifference pts:int date:int qts:int = updates.Difference;
+updates.getDifference pts:int date:int qts:int = updates.Difference;
invokeWithLayer8#e9abd9fd {X:Type} query:!X = X;
-Push-notifications
+Push-notifications
-- Added notification of ENCRYPTION_REQUEST type — a contact requested secret chat creation
-- Added notification of ENCRYPTION_ACCEPT type — a contact confirmed secret chat creation
-- Added notification of ENCRYPTED_MESSAGE type — a contact sent message in a secret chat
+- Added notification of ENCRYPTION_REQUEST type -- a contact requested secret chat creation
+- Added notification of ENCRYPTION_ACCEPT type -- a contact confirmed secret chat creation
+- Added notification of ENCRYPTED_MESSAGE type -- a contact sent message in a secret chat
-End-to-end schema
+End-to-end schema
===8===
-decryptedMessage random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
-decryptedMessageService random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
+decryptedMessage random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
+decryptedMessageService random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
-decryptedMessageMediaEmpty = DecryptedMessageMedia;
-decryptedMessageMediaPhoto thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaVideo thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaGeoPoint lat:double long:double = DecryptedMessageMedia;
-decryptedMessageMediaContact phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
+decryptedMessageMediaEmpty = DecryptedMessageMedia;
+decryptedMessageMediaPhoto thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaVideo thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaGeoPoint lat:double long:double = DecryptedMessageMedia;
+decryptedMessageMediaContact phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
-decryptedMessageActionSetMessageTTL ttl_seconds:int = DecryptedMessageAction;
+decryptedMessageActionSetMessageTTL ttl_seconds:int = DecryptedMessageAction;
-decryptedMessageMediaDocument thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaAudio duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaDocument thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
+decryptedMessageMediaAudio duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageActionReadMessages random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionDeleteMessages random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionScreenshotMessages random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionFlushHistory = DecryptedMessageAction;
-Layer 7
+decryptedMessageActionReadMessages random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionDeleteMessages random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionScreenshotMessages random_ids:Vector<long> = DecryptedMessageAction;
+decryptedMessageActionFlushHistory = DecryptedMessageAction;
+Layer 7
Added wallpaper constructor wallPaperSolid.
-Schema
-wallPaperSolid id:int title:string bg_color:int color:int = WallPaper;
+Schema
+wallPaperSolid id:int title:string bg_color:int color:int = WallPaper;
---functions---
invokeWithLayer7#a5be56d3 {X:Type} query:!X = X;
-Layer 6
+Layer 6
Added location identifiers from foursquare.
-Schema
-geoChat id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
+Schema
+geoChat id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
---functions---
-geochats.createGeoChat title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
+geochats.createGeoChat title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
invokeWithLayer6#3a64d54d {X:Type} query:!X = X;
-Layer 5
+Layer 5
Added parameters for internationalization.
-Schema changes
+Schema changes
- Added parameter lang_code to methods auth.sendCode, account.registerDevice
-Schema
+Schema
---functions---
-auth.sendCode phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-account.registerDevice token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
+auth.sendCode phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
+account.registerDevice token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
invokeWithLayer5#417a57ae {X:Type} query:!X = X;
-Layer 4
-Added geochats. More…
-Schema changes
+Layer 4
+Added geochats. More...
+Schema changes
- Added many constructors and methods for geochats.
- Added friends_unread_count field to constructor updates.state.
-Schema
-inputGeoChat chat_id:int access_hash:long = InputGeoChat;
+Schema
+inputGeoChat chat_id:int access_hash:long = InputGeoChat;
-geoChat id:int access_hash:long title:string address:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
+geoChat id:int access_hash:long title:string address:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-geoChatMessageEmpty chat_id:int id:int = GeoChatMessage;
-geoChatMessage chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
+geoChatMessageEmpty chat_id:int id:int = GeoChatMessage;
+geoChatMessage chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
+geoChatMessageService chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-geochats.statedMessage message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
+geochats.statedMessage message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-geochats.located results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
+geochats.located results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-geochats.messages messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messages messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
+geochats.messagesSlice count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-messageActionGeoChatCreate title:string address:string = MessageAction;
-messageActionGeoChatCheckin = MessageAction;
-updateNewGeoChatMessage message:GeoChatMessage = Update;
-updates.state pts:int date:int seq:int unread_count:int friends_unread_count:int = updates.State;
+messageActionGeoChatCreate title:string address:string = MessageAction;
+messageActionGeoChatCheckin = MessageAction;
+updateNewGeoChatMessage message:GeoChatMessage = Update;
+updates.state pts:int date:int seq:int unread_count:int friends_unread_count:int = updates.State;
---functions---
-geochats.getLocated geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.checkin peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat title:string geo_point:InputGeoPoint address:string = geochats.StatedMessage;
+geochats.getLocated geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
+geochats.checkin peer:InputGeoChat = geochats.StatedMessage;
+geochats.getFullChat peer:InputGeoChat = messages.ChatFull;
+geochats.editChatTitle peer:InputGeoChat title:string address:string = geochats.StatedMessage;
+geochats.editChatPhoto peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
+geochats.search peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
+geochats.getHistory peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
+geochats.setTyping peer:InputGeoChat typing:Bool = Bool;
+geochats.sendMessage peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
+geochats.sendMedia peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
+geochats.createGeoChat title:string geo_point:InputGeoPoint address:string = geochats.StatedMessage;
invokeWithLayer4#dea0d430 {X:Type} query:!X = X;
-Push-notifications
+Push-notifications
-- Added notification of GEOCHAT_CHECKIN type — a user has checked-in in a geochat.
+- Added notification of GEOCHAT_CHECKIN type -- a user has checked-in in a geochat.
-Layer 3
+Layer 3
Support for link changes for a contact when a message is sent. Now, if user X has user Y in the contact list and if user Y writes a message to user X, number X will become available for him.
-Schema changes
+Schema changes
- Added constructors messages.statedMessagesLinks, messages.statedMessageLink, messages.sentMessageLink. They are completely similar to previous ones except for the links field containing changed links.
- Added events_mask field to constructors inputPeerNotifySettings, peerNotifySettings making possible turning-off PUSH-notifications on image changes.
- Added method messages.forwardMessage for sending single messages.
- Added method messages.sendBroadcast for bulky messaging.
-Schema
-messages.statedMessagesLinks messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
-messages.statedMessageLink message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
-messages.sentMessageLink id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
+Schema
+messages.statedMessagesLinks messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
+messages.statedMessageLink message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
+messages.sentMessageLink id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
---functions---
-messages.forwardMessage peer:InputPeer id:int random_id:long = messages.StatedMessage;
-messages.sendBroadcast contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
+messages.forwardMessage peer:InputPeer id:int random_id:long = messages.StatedMessage;
+messages.sendBroadcast contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
invokeWithLayer3#b7475268 {X:Type} query:!X = X;
-Layer 2
+Layer 2
Support for notifications on changes of contact profile images. It is assumed that receiving such image changed notification a client will add a record on this event in the message history with this contact.
-Schema changes
+Schema changes
- Added date and previous fields to constructor updateUserPhoto.
- Added events_mask field to constructors inputPeerNotifySettings, peerNotifySettings making possible turning-off PUSH-notifications on image change.
- Added identifier for relevant image to constructor userProfilePhoto.
- Added method photos.getUserPhotos to get a history of previous profile images.
-Schema
-inputPeerNotifySettings mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-peerNotifySettings mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-updateUserPhoto user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-userProfilePhoto photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
+Schema
+inputPeerNotifySettings mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
+peerNotifySettings mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
+updateUserPhoto user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
+userProfilePhoto photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
---functions---
-photos.getUserPhotos user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
+photos.getUserPhotos user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
invokeWithLayer2#289dd1f6 {X:Type} query:!X = X;
-Push-notifications
+Push-notifications
-- Added notification of CONTACT_PHOTO type — a contact has changed profile image.
-
-
+Added notification of CONTACT_PHOTO type -- a contact has changed profile image.
+
diff --git a/data/corefork.telegram.org/api/live-location.html b/data/corefork.telegram.org/api/live-location.html
index f72bb2e16a..72f2af8110 100644
--- a/data/corefork.telegram.org/api/live-location.html
+++ b/data/corefork.telegram.org/api/live-location.html
@@ -51,7 +51,7 @@
---functions---
-messages.sendMedia#3491eba9 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int = Updates;
+messages.sendMedia#e25ff8e0 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
messages.editMessage#48f71778 flags:# no_webpage:flags.1?true peer:InputPeer id:int message:flags.11?string media:flags.14?InputMedia reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.15?int = Updates;
To send a live geolocation, use messages.sendMedia with an inputMediaGeoLive media
.
diff --git a/data/corefork.telegram.org/api/mentions.html b/data/corefork.telegram.org/api/mentions.html
index b89ac3f48f..344ffab3d6 100644
--- a/data/corefork.telegram.org/api/mentions.html
+++ b/data/corefork.telegram.org/api/mentions.html
@@ -46,13 +46,13 @@
messageEntityMentionName#dc7b1140 offset:int length:int user_id:long = MessageEntity;
inputMessageEntityMentionName#208e68c9 offset:int length:int user_id:InputUser = MessageEntity;
-message#85d6cbe2 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
+message#38116ee0 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
channelParticipantsMentions#e04b5ceb flags:# q:flags.0?string top_msg_id:flags.1?int = ChannelParticipantsFilter;
---functions---
-messages.sendMessage#520c3870 flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int = Updates;
+messages.sendMessage#d9d75a4 flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
channels.getParticipants#77ced9d0 channel:InputChannel filter:ChannelParticipantsFilter offset:int limit:int hash:long = channels.ChannelParticipants;
Mentions are implemented as message entities, passed to the messages.sendMessage method:
@@ -65,7 +65,7 @@
Graphical clients can show a list of mentionable users when the user starts entering an @
in the text bar; for this purpose, the channelParticipantsMentions filter can be used in channels.getParticipants.
This filter can be enhanced by providing an additional query string q
(anything the user enters after @
); it will also return non-participant users, in case of channel users commenting in post comment sections.
Dialog mentions
-dialog#2c171f72 flags:# pinned:flags.2?true unread_mark:flags.3?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int = Dialog;
+dialog#a8edd0f5 flags:# pinned:flags.2?true unread_mark:flags.3?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int = Dialog;
---functions---
diff --git a/data/corefork.telegram.org/api/payments.html b/data/corefork.telegram.org/api/payments.html
index 72e75765a8..107ae5ab6c 100644
--- a/data/corefork.telegram.org/api/payments.html
+++ b/data/corefork.telegram.org/api/payments.html
@@ -67,7 +67,7 @@ For more info on how payments work, check out the inputMediaInvoice with an invoice constructor with a description of the goods or service, amount to be paid, as well as requested shipping info.
The provider
parameter of the inputMediaInvoice constructor is where you put the token value that you've obtained earlier via Botfather. It is possible for one merchant bot to use several different tokens for different users or different goods and services.
@@ -86,7 +86,7 @@ You can also attach an inline keyboard to the message using the reply_mark
messageMediaInvoice#84551347 flags:# shipping_address_requested:flags.1?true test:flags.3?true title:string description:string photo:flags.0?WebDocument receipt_msg_id:flags.2?int currency:string total_amount:long start_param:string = MessageMedia;
-message#85d6cbe2 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
+message#38116ee0 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
The user receives an updateNewMessage constructor from the bot, containing a messageMediaInvoice constructor with basic info about the product.
@@ -270,7 +270,7 @@ The bot must reply using mes
messageMediaInvoice#84551347 flags:# shipping_address_requested:flags.1?true test:flags.3?true title:string description:string photo:flags.0?WebDocument receipt_msg_id:flags.2?int currency:string total_amount:long start_param:string = MessageMedia;
-message#85d6cbe2 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
+message#38116ee0 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
diff --git a/data/corefork.telegram.org/api/pin.html b/data/corefork.telegram.org/api/pin.html
index 501034af11..b8e26c9b83 100644
--- a/data/corefork.telegram.org/api/pin.html
+++ b/data/corefork.telegram.org/api/pin.html
@@ -42,7 +42,7 @@
Telegram allows pinning multiple messages on top of a specific chat.
-message#85d6cbe2 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
+message#38116ee0 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
updatePinnedMessages#ed85eab5 flags:# pinned:flags.0?true peer:Peer messages:Vector<int> pts:int pts_count:int = Update;
updatePinnedChannelMessages#5bb98608 flags:# pinned:flags.0?true channel_id:long messages:Vector<int> pts:int pts_count:int = Update;
@@ -60,9 +60,9 @@ The unpin
flags specifies whether to unpin or pin the message, and
When (un)pinning messages, a updatePinnedMessages or updatePinnedChannelMessages update will be emitted, containing IDs of pinned or unpinned messages.
Pinned messages will also have the will also have the pinned
flag of message set.
Getting pinned messages
-userFull#d697ff05 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true user:User about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string = UserFull;
-chatFull#4dbdc099 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:long about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string = ChatFull;
-channelFull#e9b27a17 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string = ChatFull;
+userFull#cf366521 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true id:long about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string = UserFull;
+chatFull#d18ee226 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:long about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string requests_pending:flags.17?int recent_requesters:flags.17?Vector<long> available_reactions:flags.18?Vector<string> = ChatFull;
+channelFull#e13c3d20 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?Vector<string> = ChatFull;
inputMessagesFilterPinned#1bb00451 = MessagesFilter;
diff --git a/data/corefork.telegram.org/api/poll.html b/data/corefork.telegram.org/api/poll.html
index 63d157426f..0e3dfaee29 100644
--- a/data/corefork.telegram.org/api/poll.html
+++ b/data/corefork.telegram.org/api/poll.html
@@ -51,7 +51,7 @@
---functions---
-messages.sendMedia#3491eba9 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int = Updates;
+messages.sendMedia#e25ff8e0 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
To send a poll in a chat, call messages.sendMedia, providing an inputMediaPoll:
-
diff --git a/data/corefork.telegram.org/api/qr-login.html b/data/corefork.telegram.org/api/qr-login.html
index 1371a834c2..b33faa16b1 100644
--- a/data/corefork.telegram.org/api/qr-login.html
+++ b/data/corefork.telegram.org/api/qr-login.html
@@ -49,7 +49,7 @@
updateLoginToken#564fe691 = Update;
-authorization#ad01d61d flags:# current:flags.0?true official_app:flags.1?true password_pending:flags.2?true hash:long device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
+authorization#ad01d61d flags:# current:flags.0?true official_app:flags.1?true password_pending:flags.2?true encrypted_requests_disabled:flags.3?true call_requests_disabled:flags.4?true hash:long device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
---functions---
diff --git a/data/corefork.telegram.org/api/recent-actions.html b/data/corefork.telegram.org/api/recent-actions.html
index f3ca80fe01..3970f331cf 100644
--- a/data/corefork.telegram.org/api/recent-actions.html
+++ b/data/corefork.telegram.org/api/recent-actions.html
@@ -68,7 +68,7 @@
channels.adminLogResults#ed8af74d events:Vector<ChannelAdminLogEvent> chats:Vector<Chat> users:Vector<User> = channels.AdminLogResults;
-channelAdminLogEventsFilter#ea107ae4 flags:# join:flags.0?true leave:flags.1?true invite:flags.2?true ban:flags.3?true unban:flags.4?true kick:flags.5?true unkick:flags.6?true promote:flags.7?true demote:flags.8?true info:flags.9?true settings:flags.10?true pinned:flags.11?true edit:flags.12?true delete:flags.13?true group_call:flags.14?true invites:flags.15?true = ChannelAdminLogEventsFilter;
+channelAdminLogEventsFilter#ea107ae4 flags:# join:flags.0?true leave:flags.1?true invite:flags.2?true ban:flags.3?true unban:flags.4?true kick:flags.5?true unkick:flags.6?true promote:flags.7?true demote:flags.8?true info:flags.9?true settings:flags.10?true pinned:flags.11?true edit:flags.12?true delete:flags.13?true group_call:flags.14?true invites:flags.15?true send:flags.16?true = ChannelAdminLogEventsFilter;
---functions---
diff --git a/data/corefork.telegram.org/api/scheduled-messages.html b/data/corefork.telegram.org/api/scheduled-messages.html
index 7cb326abe1..220c788470 100644
--- a/data/corefork.telegram.org/api/scheduled-messages.html
+++ b/data/corefork.telegram.org/api/scheduled-messages.html
@@ -40,16 +40,16 @@
Scheduled messages
Telegram allows scheduling messages.
-message#85d6cbe2 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
+message#38116ee0 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
updateNewScheduledMessage#39a51dfb message:Message = Update;
updateDeleteScheduledMessages#90866cee peer:Peer messages:Vector<int> = Update;
---functions---
-messages.sendMessage#520c3870 flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int = Updates;
+messages.sendMessage#d9d75a4 flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
-messages.sendMedia#3491eba9 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int = Updates;
+messages.sendMedia#e25ff8e0 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
To schedule a message, simply provide a future unixtime in the schedule_date
flag of messages.sendMessage or messages.sendMedia.
The specified message or media will be added to a server-side schedule queue for the current chat, and will be automatically sent at the specified time.
The method call generates the following updates:
diff --git a/data/corefork.telegram.org/api/sponsored-messages.html b/data/corefork.telegram.org/api/sponsored-messages.html
deleted file mode 100644
index aa679e2b2c..0000000000
--- a/data/corefork.telegram.org/api/sponsored-messages.html
+++ /dev/null
@@ -1,146 +0,0 @@
-
-
-
-
- Sponsored messages
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sponsored messages
-
- Related TL schema:
-sponsoredMessage flags:# random_id:bytes from_id:Peer channel_post:flags.2?int start_param:flags.0?string message:string entities:flags.1?Vector<MessageEntity> = SponsoredMessage;
-messages.sponsoredMessages messages:Vector<SponsoredMessage> chats:Vector<Chat> users:Vector<User> = messages.SponsoredMessages;
-
----functions---
-
-channels.getSponsoredMessages channel:InputChannel = messages.SponsoredMessages;
-channels.viewSponsoredMessage channel:InputChannel random_id:bytes = Bool;
-Getting sponsored messages
-Each time the user opens a channel, channels.getSponsoredMessages
must be called to receive sponsored messages available for this channel. The result must be cached for 5 minutes.
-
-
-
-Displaying sponsored messages
-Sponsored messages must be displayed below all other posts in the channel, after the user scrolls futher down, past the last message. The promoted channel or bot specified in the from_id
field must be displayed as the author of the message. The message should also contain one of the following buttons at the bottom:
-
-- View Bot — if a bot is being promoted. Tapping the button must open the chat with the bot. If
start_param
is specified, the app must use the deep linking mechanism to open the bot.
-- View Channel — if a channel is being promoted. Tapping the button must open the channel.
-- View Post — if a channel is being promoted and
channel_post
is specified. Tapping the button must open the particular channel post.
-
-Counting sponsored message views
-Once the entire text is shown on the screen (excluding the button), channels.viewSponsoredMessage
must be called with the random_id
of this sponsored message.
-Testing sponsored messages
-For the channel https://t.me/SecretAdTestChannel the system will always return a sponsored message: promoting either a channel, a particular message in a channel, or a bot with a start parameter.
-
-Sponsored messages in third-party apps
-Telegram continues to grow worldwide, in part thanks to third-party apps using the Telegram API. To cover the increasing costs that come with this growth, Telegram added sponsored messages – a paid privacy-friendly way to promote bots and channels.
-If their app allows its users to access content from Telegram channels, third-party developers using the Telegam API are required to support and properly display official sponsored messages in their apps by January 1, 2022. Unfortunately, Telegram cannot financially sustain third-party apps that do not display sponsored messages and they will have to be disconnected.
-Telegram's API usage will continue to be free of charge for all developers. The rules regarding monetization in third-party apps remain the same: developers are allowed to monetize their coding efforts through advertising of their own or other legitimate means, provided that all the methods of monetization used in their apps are prominently mentioned in their app store descriptions.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data/corefork.telegram.org/api/terms.html b/data/corefork.telegram.org/api/terms.html
index a049063beb..863a69b430 100644
--- a/data/corefork.telegram.org/api/terms.html
+++ b/data/corefork.telegram.org/api/terms.html
@@ -42,19 +42,27 @@
-
We welcome all developers to use our API and source code to create Telegram-like messaging applications on our platform free of charge. In order to ensure consistency and security across the Telegram ecosystem, all third-party client apps must comply with the following Terms of Service.
-1. Privacy & Security
-1.1. Telegram is a privacy-oriented platform. All client apps must, therefore, guard their users' privacy with utmost care and comply with our Security Guidelines.
1.2. Developers are welcome to add new features or improve and extend existing Telegram features provided that these modifications do not violate these Terms of Service.
1.3. As a client developer, you must make sure that all the basic features of the main Telegram apps function correctly and in an expected way both in your app and when users of your app communicate with other Telegram users. It is forbidden to force users of other Telegram clients to download your app in order to view certain messages and content sent using your app.
1.4. It is forbidden to interfere with the basic functionality of Telegram. This includes but is not limited to: making actions on behalf of the user without the user's knowledge and consent, preventing self-destructing content from disappearing, preventing last seen and online statuses from being displayed correctly, tampering with the 'read' statuses of messages (e.g. implementing a 'ghost mode'), preventing typing statuses from being sent/displayed, etc.
-2. Transparency
-2.1. You must obtain your own api_id for your application.
2.2. We offer our API free of charge, but your users must be aware of the fact that your app uses the Telegram API and is part of the Telegram ecosystem. This fact must be featured prominently in the app's description in the app stores and in the in-app intro if your app has it.
2.3. To avoid confusion, the title of your app must not include the word “Telegram”. An exception can be made if the word “Telegram” is preceded with the word “Unofficial” in the title.
2.4. You must not use the official Telegram logo for your app. Both the Telegram brand and its logo are registered trademarks protected by law in almost every country.
-3. Advertising & Monetization
-3.1. Developers are allowed to monetize their coding efforts through advertising or other legitimate means.
3.2. If you decide to monetize your app, you must clearly mention all the methods of monetization that are used in your app in all its app store descriptions.
3.3. If your app allows accessing content from Telegram channels, you must include support for official sponsored messages in Telegram channels and may not interefere with this functionality.
-4. Breach of terms
-4.1. If your app violates these terms, we will notify the Telegram account responsible for the app about the breach of terms.
4.2. If you do not update the app to fix the highlighted issues within 10 days, we will have to discontinue your access to Telegram API and contact the app stores about the removal of your apps that are using the Telegram API in violation of these terms.
+1. Privacy & Security
+1.1. Telegram is a privacy-oriented platform. All client apps must, therefore, guard their users' privacy with utmost care and comply with our Security Guidelines.
+1.2. Developers are welcome to add new features or improve and extend existing Telegram features provided that these modifications do not violate these Terms of Service.
+1.3. As a client developer, you must make sure that all the basic features of the main Telegram apps function correctly and in an expected way both in your app and when users of your app communicate with other Telegram users. It is forbidden to force users of other Telegram clients to download your app in order to view certain messages and content sent using your app.
+1.4. It is forbidden to interfere with the basic functionality of Telegram. This includes but is not limited to: making actions on behalf of the user without the user's knowledge and consent, preventing self-destructing content from disappearing, preventing last seen and online statuses from being displayed correctly, tampering with the 'read' statuses of messages (e.g. implementing a 'ghost mode'), preventing typing statuses from being sent/displayed, etc.
+2. Transparency
+2.1. You must obtain your own api_id for your application.
+2.2. We offer our API free of charge, but your users must be aware of the fact that your app uses the Telegram API and is part of the Telegram ecosystem. This fact must be featured prominently in the app's description in the app stores and in the in-app intro if your app has it.
+2.3. To avoid confusion, the title of your app must not include the word “Telegram”. An exception can be made if the word “Telegram” is preceded with the word “Unofficial” in the title.
+2.4. You must not use the official Telegram logo for your app. Both the Telegram brand and its logo are registered trademarks protected by law in almost every country.
+3. Advertising & Monetization
+3.1. Developers are allowed to monetize their coding efforts through advertising or other legitimate means.
+3.2. If you decide to monetize your app, you must clearly mention all the methods of monetization that are used in your app in all its app store descriptions.
+3.3. If your app allows accessing content from Telegram channels, you must include support for official sponsored messages in Telegram channels and may not interefere with this functionality.
+4. Breach of terms
+4.1. If your app violates these terms, we will notify the Telegram account responsible for the app about the breach of terms.
+4.2. If you do not update the app to fix the highlighted issues within 10 days, we will have to discontinue your access to Telegram API and contact the app stores about the removal of your apps that are using the Telegram API in violation of these terms.
We reserve the right to expand these terms and guidelines as the need arises. We will inform client developers of such changes via an in-app notification to their accounts connected to the app in question.
-
-
+
diff --git a/data/corefork.telegram.org/api/threads.html b/data/corefork.telegram.org/api/threads.html
index 9cfb6dc8ed..153f04f039 100644
--- a/data/corefork.telegram.org/api/threads.html
+++ b/data/corefork.telegram.org/api/threads.html
@@ -48,7 +48,7 @@
messageReplies#83d60fc2 flags:# comments:flags.0?true replies:int replies_pts:int recent_repliers:flags.1?Vector<Peer> channel_id:flags.0?long max_id:flags.2?int read_max_id:flags.3?int = MessageReplies;
-message#85d6cbe2 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
+message#38116ee0 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
---functions---
@@ -68,7 +68,7 @@ The comment section of a channel post is simply the me
messageReplyHeader#a6d57763 flags:# reply_to_msg_id:int reply_to_peer_id:flags.0?Peer reply_to_top_id:flags.1?int = MessageReplyHeader;
-message#85d6cbe2 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
+message#38116ee0 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;
updateNewChannelMessage#62ba04d9 message:Message pts:int pts_count:int = Update;
diff --git a/data/corefork.telegram.org/api/web-events.html b/data/corefork.telegram.org/api/web-events.html
index ffe0ed4019..29f541d31a 100644
--- a/data/corefork.telegram.org/api/web-events.html
+++ b/data/corefork.telegram.org/api/web-events.html
@@ -42,18 +42,21 @@
When interacting with HTML5 games and the websites of payment gateways, Telegram apps should expose APIs to allow receiving data and events from the websites.
-Event APIs
-Games and payment gateways can generate events that are meant to be received by the Telegram apps.
Typically events are generated by using the postEvent
method of the GamingCommunication library.
The postEvent
function will try sending the event to the Telegram app in a number of different ways.
-WebviewProxy
+Event APIs
+Games and payment gateways can generate events that are meant to be received by the Telegram apps.
+Typically events are generated by using the postEvent
method of the GamingCommunication library.
+The postEvent
function will try sending the event to the Telegram app in a number of different ways.
+WebviewProxy
In mobile apps, the event receiver API should be typically exposed as a window.TelegramWebviewProxy
object with a postEvent
method.
window.TelegramWebviewProxy.postEvent(eventType, eventData)
-window.external
+window.external
Alternatively, a window.external.notify
method can be exposed, accepting a string JSON payload with the event type and payload:
window.external.notify(JSON.stringify({eventType: eventType, eventData: eventData}));
-postMessage API
-Finally, web MTProto clients that need to open a game or process a payment in an iframe can use the postMessage API to receive events from iframes.
The GamingCommunication library by default will use '*'
as targetOrigin
, sending messages to parent pages regardless of the origin of the embedder.
+postMessage API
+Finally, web MTProto clients that need to open a game or process a payment in an iframe can use the postMessage API to receive events from iframes.
+The GamingCommunication library by default will use '*'
as targetOrigin
, sending messages to parent pages regardless of the origin of the embedder.
window.parent.postMessage(JSON.stringify({eventType: eventType, eventData: eventData}), targetOrigin);
-Event types
+Event types
eventType
is a simple string indicating the event type, and eventData
is a payload with an object that will be parsed by the Telegram app.
@@ -77,7 +80,7 @@
share_game
null
-Will be called by games when the user explicitly clicks on the share game button to share the game, without sharing his score.
Typically done by using messages.forwardMessages on the game message without the with_my_score
flag, or by sharing the game's short URL.
+Will be called by games when the user explicitly clicks on the share game button to share the game, without sharing his score.
Typically done by using messages.forwardMessages on the game message without the with_my_score
flag, or by sharing the game's short URL.
game_over
@@ -95,8 +98,7 @@
Called by supported pages inside of IV iframe embeds, indicates the new size of the embed frame.
-
-
+
diff --git a/data/corefork.telegram.org/blog/chat-themes-interactive-emoji-read-receipts.html b/data/corefork.telegram.org/blog/chat-themes-interactive-emoji-read-receipts.html
deleted file mode 100644
index 97d4e3ec39..0000000000
--- a/data/corefork.telegram.org/blog/chat-themes-interactive-emoji-read-receipts.html
+++ /dev/null
@@ -1,115 +0,0 @@
-
-
-
-
- Page not found
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page not found
-
- The page has not been saved
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data/corefork.telegram.org/bots/api-changelog.html b/data/corefork.telegram.org/bots/api-changelog.html
index 1a3bf096bd..7241ad1ab5 100644
--- a/data/corefork.telegram.org/bots/api-changelog.html
+++ b/data/corefork.telegram.org/bots/api-changelog.html
@@ -44,33 +44,34 @@ To learn how to create…">
-
-The Bot API is an HTTP-based interface created for developers keen on building bots for Telegram.
To learn how to create and set up a bot, please consult our Introduction to Bots »
+The Bot API is an HTTP-based interface created for developers keen on building bots for Telegram.
+To learn how to create and set up a bot, please consult our Introduction to Bots »
You will find all changes to our Bot API on this page.
-Recent changes
+Recent changes
Subscribe to @BotNews to be the first to know about the latest updates and join the discussion in @BotTalk
-January 31, 2022
+January 31, 2022
Bot API 5.7
- Added support for Video Stickers.
- Added the field is_video to the classes Sticker and StickerSet.
- Added the parameter webm_sticker to the methods createNewStickerSet and addStickerToSet.
-December 30, 2021
+December 30, 2021
Bot API 5.6
- Improved support for Protected Content.
- Added the parameter protect_content to the methods sendMessage, sendPhoto, sendVideo, sendAnimation, sendAudio, sendDocument, sendSticker, sendVideoNote, sendVoice, sendLocation, sendVenue, sendContact, sendPoll, sendDice, sendInvoice, sendGame, sendMediaGroup, copyMessage, forwardMessage to allow sending messages with protected content to any chat.
- Added support for spoiler entities, which will work in Telegram versions released after December 30, 2021. Older clients will display unsupported message.
-- Added new MessageEntity type “spoiler”.
+- Added new MessageEntity type "spoiler".
- Added the ability to specify spoiler entities using HTML and MarkdownV2 formatting options.
-December 7, 2021
+December 7, 2021
Bot API 5.5
-- Bots are now allowed to contact users who sent a join request to a chat where the bot is an administrator with the can_invite_users administrator right – even if the user never interacted with the bot before.
+- Bots are now allowed to contact users who sent a join request to a chat where the bot is an administrator with the can_invite_users administrator right – even if the user never interacted with the bot before.
- Added support for mentioning users by their ID in inline keyboards. This will only work in Telegram versions released after December 7, 2021. Older clients will display unsupported message.
- Added the methods banChatSenderChat and unbanChatSenderChat for banning and unbanning channel chats in supergroups and channels.
- Added the field has_private_forwards to the class Chat for private chats, which can be used to check the possibility of mentioning the user by their ID.
@@ -80,7 +81,7 @@ To learn how to create…">
Note: After this update it will become impossible to forward messages from some chats. Use the fields has_protected_content in the classes Message and Chat to check this.
Note: After this update users are able to send messages on behalf of channels they own. Bots are expected to use the field sender_chat in the class Message to correctly support such messages.
Note: As previously announced, user identifiers can now have up to 52 significant bits and require a 64-bit integer or double-precision float type to be stored safely.
-November 5, 2021
+November 5, 2021
Bot API 5.4
- Added the the parameter
creates_join_request
to the methods createChatInviteLink and editChatInviteLink for managing chat invite links that create join requests (read more about this on our blog).
@@ -92,10 +93,11 @@ To learn how to create…">
-
WARNING! 
User identifiers will become bigger than 2^31 - 1
before the end of this year and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.
+
WARNING!
+User identifiers will become bigger than 2^31 - 1
before the end of this year and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.
-June 25, 2021
+June 25, 2021
Bot API 5.3
Personalized Commands
@@ -103,8 +105,8 @@ To learn how to create…">
- Added the class BotCommandScope, describing the scope to which bot commands apply.
- Added the parameters
scope
and language_code
to the method setMyCommands to allow bots specify different commands for different chats and users.
- Added the parameters
scope
and language_code
to the method getMyCommands.
-- Added the method deleteMyCommands to allow deletion of the bot's commands for the given scope and user language.
-- Improved visibility of bot commands in Telegram apps with the new 'Menu' button in chats with bots, read more on the blog.
+- Added the method deleteMyCommands to allow deletion of the bot's commands for the given scope and user language.
+- Improved visibility of bot commands in Telegram apps with the new 'Menu' button in chats with bots, read more on the blog.
Custom Placeholders
@@ -119,35 +121,39 @@ To learn how to create…">
-
WARNING! 
After one of the upcoming Bot API updates, user identifiers will become bigger than 2^31 - 1
and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.
+
WARNING!
+After one of the upcoming Bot API updates, user identifiers will become bigger than 2^31 - 1
and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.
-April 26, 2021
+April 26, 2021
Bot API 5.2
- Support for Payments 2.0, see this manual for more details about the Bot Payments API.
- Added the type InputInvoiceMessageContent to support sending invoices as inline query results.
- Allowed sending invoices to group, supergroup and channel chats.
- Added the fields max_tip_amount and suggested_tip_amounts to the method sendInvoice to allow adding optional tips to the payment.
-- The parameter start_parameter of the method sendInvoice became optional. If the parameter isn't specified, the invoice can be paid directly from forwarded messages.
+- The parameter start_parameter of the method sendInvoice became optional. If the parameter isn't specified, the invoice can be paid directly from forwarded messages.
- Added the field chat_type to the class InlineQuery, containing the type of the chat, from which the inline request was sent.
- Added the type VoiceChatScheduled and the field voice_chat_scheduled to the class Message.
-- Fixed an error in sendChatAction documentation to correctly mention “record_voice” and “upload_voice” instead of “record_audio” and “upload_audio” for related to voice note actions. Old action names will still work for backward compatibility.
+- Fixed an error in sendChatAction documentation to correctly mention "record_voice" and "upload_voice" instead of "record_audio" and "upload_audio" for related to voice note actions. Old action names will still work for backward compatibility.
-
WARNING! 
After the next Bot API update (Bot API 5.3) there will be a one-time change of the value of the field file_unique_id
in objects of the type PhotoSize and of the fields small_file_unique_id
and big_file_unique_id
in objects of the type ChatPhoto.
+
WARNING!
+After the next Bot API update (Bot API 5.3) there will be a one-time change of the value of the field file_unique_id
in objects of the type PhotoSize and of the fields small_file_unique_id
and big_file_unique_id
in objects of the type ChatPhoto.
-
WARNING! 
Service messages about non-bot users joining the chat will be soon removed from large groups. We recommend using the “chat_member” update as a replacement.
+
WARNING!
+Service messages about non-bot users joining the chat will be soon removed from large groups. We recommend using the "chat_member" update as a replacement.
-
WARNING! 
After one of the upcoming Bot API updates, user identifiers will become bigger than 2^31 - 1
and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.
+
WARNING!
+After one of the upcoming Bot API updates, user identifiers will become bigger than 2^31 - 1
and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.
-March 9, 2021
+March 9, 2021
Bot API 5.1
Added two new update types
@@ -176,14 +182,15 @@ To learn how to create…">
-
WARNING! 
After one of the upcoming Bot API updates, some user identifiers will become bigger than 2^31 - 1
and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.
+
WARNING!
+After one of the upcoming Bot API updates, some user identifiers will become bigger than 2^31 - 1
and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.
-November 4, 2020
+November 4, 2020
Introducing Bot API 5.0
Run Your Own Bot API Server
-- Bot API source code is now available at telegram-bot-api. You can now run your own Bot API server locally, boosting your bots' performance.
+- Bot API source code is now available at telegram-bot-api. You can now run your own Bot API server locally, boosting your bots' performance.
- Added the method logOut, which can be used to log out from the cloud Bot API server before launching your bot locally. You must log out the bot before running it locally, otherwise there is no guarantee that the bot will receive all updates.
- Added the method close, which can be used to close the bot instance before moving it from one local server to another.
@@ -199,7 +206,7 @@ To learn how to create…">
Working with Groups
-- The getChat request now returns the user's bio for private chats if available.
+- The getChat request now returns the user's bio for private chats if available.
- The getChat request now returns the identifier of the linked chat for supergroups and channels, i.e. the discussion group identifier for a channel and vice versa.
- The getChat request now returns the location to which the supergroup is connected (see Local Groups). Added the class ChatLocation to represent the location.
- Added the parameter only_if_banned to the method unbanChatMember to allow safe unban.
@@ -222,7 +229,7 @@ To learn how to create…">
Live Locations
- Added the field live_period to the class Location, representing a maximum period for which the live location can be updated.
-- Added support for live location heading: added the field heading to the classes Location, InlineQueryResultLocation, InputLocationMessageContent and the parameter heading to the methods sendLocation and editMessageLiveLocation.
+- Added support for live location heading: added the field heading to the classes Location, InlineQueryResultLocation, InputLocationMessageContent and the parameter heading to the methods sendLocation and editMessageLiveLocation.
- Added support for proximity alerts in live locations: added the field proximity_alert_radius to the classes Location, InlineQueryResultLocation, InputLocationMessageContent and the parameter proximity_alert_radius to the methods sendLocation and editMessageLiveLocation.
- Added the type ProximityAlertTriggered and the field proximity_alert_triggered to the class Message.
- Added possibility to specify the horizontal accuracy of a location. Added the field horizontal_accuracy to the classes Location, InlineQueryResultLocation, InputLocationMessageContent and the parameter horizontal_accuracy to the methods sendLocation and editMessageLiveLocation.
@@ -246,14 +253,14 @@ To learn how to create…">
- Supported the new football and slot machine animations for the random dice. Choose between different animations (dice, darts, basketball, football, slot machine) by specifying the emoji parameter in the method sendDice.
-June 4, 2020
+June 4, 2020
Bot API 4.9
- Added the new field via_bot to the Message object. You can now know which bot was used to send a message.
- Supported video thumbnails for inline GIF and MPEG4 animations.
- Supported the new basketball animation for the random dice. Choose between different animations (dice, darts, basketball) by specifying the emoji parameter in the method sendDice.
-April 24, 2020
+April 24, 2020
Bot API 4.8
- Supported explanations for Quizzes 2.0. Add explanations by specifying the parameters explanation and explanation_parse_mode in the method sendPoll.
@@ -263,19 +270,19 @@ To learn how to create…">
- Supported the new darts animation for the dice mini-game. Choose between the default dice animation and darts animation by specifying the parameter emoji in the method sendDice.
- Added the field emoji to the Dice object.
-March 30, 2020
+March 30, 2020
Bot API 4.7
-- Added the method sendDice for sending a dice message, which will have a random value from 1 to 6. (Yes, we're aware of the “proper” singular of die. But it's awkward, and we decided to help it change. One dice at a time!)
+- Added the method sendDice for sending a dice message, which will have a random value from 1 to 6. (Yes, we're aware of the "proper" singular of die. But it's awkward, and we decided to help it change. One dice at a time!)
- Added the field dice to the Message object.
-- Added the method getMyCommands for getting the current list of the bot's commands.
-- Added the method setMyCommands for changing the list of the bot's commands through the Bot API instead of @BotFather.
+- Added the method getMyCommands for getting the current list of the bot's commands.
+- Added the method setMyCommands for changing the list of the bot's commands through the Bot API instead of @BotFather.
- Added the ability to create animated sticker sets by specifying the parameter tgs_sticker instead of png_sticker in the method createNewStickerSet.
- Added the ability to add animated stickers to sets created by the bot by specifying the parameter tgs_sticker instead of png_sticker in the method addStickerToSet.
- Added the field thumb to the StickerSet object.
- Added the ability to change thumbnails of sticker sets created by the bot using the method setStickerSetThumb.
-January 23, 2020
+January 23, 2020
Bot API 4.6
- Supported Polls 2.0.
@@ -287,19 +294,19 @@ To learn how to create…">
- Added more information about the bot in response to the getMe request: added the fields can_join_groups, can_read_all_group_messages and supports_inline_queries to the User object.
- Added the optional field language to the MessageEntity object.
-December 31, 2019
+December 31, 2019
Bot API 4.5
- Added support for two new MessageEntity types, underline and strikethrough.
- Added support for nested MessageEntity objects. Entities can now contain other entities. If two entities have common characters then one of them is fully contained inside the other.
- Added support for nested entities and the new tags
<u>/<ins>
(for underlined text) and <s>/<strike>/<del>
(for strikethrough text) in parse mode HTML.
- Added a new parse mode, MarkdownV2, which supports nested entities and two new entities
__
(for underlined text) and ~
(for strikethrough text). Parse mode Markdown remains unchanged for backward compatibility.
-- Added the field file_unique_id to the objects Animation, Audio, Document, PassportFile, PhotoSize, Sticker, Video, VideoNote, Voice, File and the fields small_file_unique_id and big_file_unique_id to the object ChatPhoto. The new fields contain a unique file identifier, which is supposed to be the same over time and for different bots, but can't be used to download or reuse the file.
+- Added the field file_unique_id to the objects Animation, Audio, Document, PassportFile, PhotoSize, Sticker, Video, VideoNote, Voice, File and the fields small_file_unique_id and big_file_unique_id to the object ChatPhoto. The new fields contain a unique file identifier, which is supposed to be the same over time and for different bots, but can't be used to download or reuse the file.
- Added the field custom_title to the ChatMember object.
- Added the new method setChatAdministratorCustomTitle to manage the custom titles of administrators promoted by the bot.
- Added the field slow_mode_delay to the Chat object.
-July 29, 2019
+July 29, 2019
Bot API 4.4
- Added support for animated stickers. New field is_animated in Sticker and StickerSet objects, animated stickers can now be used in sendSticker and InlineQueryResultCachedSticker.
@@ -307,49 +314,48 @@ To learn how to create…">
- The field all_members_are_administrators has been removed from the documentation for the Chat object. The field is still returned in the object for backward compatibility, but new bots should use the permissions field instead.
- Added support for more permissions for group and supergroup members: added the new field can_send_polls to ChatMember object, added can_change_info, can_invite_users, can_pin_messages in ChatMember object for restricted users (previously available only for administrators).
- The method restrictChatMember now takes the new user permissions in a single argument of the type ChatPermissions. The old way of passing parameters will keep working for a while for backward compatibility.
-- Added description support for basic groups (previously available in supergroups and channel chats). You can pass a group's chat_id to setChatDescription and receive the group's description in the Chat object in the response to getChat method.
-- Added invite_link support for basic groups (previously available in supergroups and channel chats). You can pass a group's chat_id to exportChatInviteLink and receive the group's invite link in the Chat object in the response to getChat method.
+- Added description support for basic groups (previously available in supergroups and channel chats). You can pass a group's chat_id to setChatDescription and receive the group's description in the Chat object in the response to getChat method.
+- Added invite_link support for basic groups (previously available in supergroups and channel chats). You can pass a group's chat_id to exportChatInviteLink and receive the group's invite link in the Chat object in the response to getChat method.
- File identifiers from the ChatPhoto object are now invalidated and can no longer be used whenever the photo is changed.
-- All webhook requests from the Bot API are now coming from the subnets
149.154.160.0/20
and 91.108.4.0/22
. Most users won't need to do anything to continue receiving webhooks. If you control inbound access with a firewall, you may need to update your configuration. You can always find the list of actual IP addresses of servers used to send webhooks there: https://core.telegram.org/bots/webhooks.
+- All webhook requests from the Bot API are now coming from the subnets
149.154.160.0/20
and 91.108.4.0/22
. Most users won't need to do anything to continue receiving webhooks. If you control inbound access with a firewall, you may need to update your configuration. You can always find the list of actual IP addresses of servers used to send webhooks there: https://core.telegram.org/bots/webhooks.
- As of the next Bot API update (version 4.5), nested MessageEntity objects will be allowed in message texts and captions. Please make sure that your code can correctly handle such entities.
-May 31, 2019
+May 31, 2019
Bot API 4.3
- Added support for Seamless Telegram Login on external websites.
- Added the new object LoginUrl and the new field login_url to the InlineKeyboardButton object which allows to automatically authorize users before they go to a URL specified by the bot. Users will be asked to confirm authorization in their Telegram app (needs version 5.7 or higher) when they press the button:
-
Also in this update:
- Added the field
reply_markup
to the Message object, containing the inline keyboard attached to the message.
- If a message with an inline keyboard is forwarded, the forwarded message will now have an inline keyboard if the keyboard contained only url and login_url buttons or if the message was sent via a bot and the keyboard contained only url, login_url, switch_inline_query or switch_inline_query_current_chat buttons. In the latter case, switch_inline_query_current_chat buttons are replaced with switch_inline_query buttons.
- Bots now receive the edited_message Update even if only Message.reply_markup has changed.
- Bots that have the can_edit_messages right in a channel can now use the method editMessageReplyMarkup for messages written by other administrators forever without the 48 hours limit.
-- Don't forget that starting in July 2019, webhook requests from Bot API will be coming from the subnets
149.154.160.0/20
and 91.108.4.0/22
. Most users won't need to do anything to continue receiving webhooks. If you control inbound access with a firewall, you may need to update your configuration. You can always find the list of actual IP addresses of servers used to send webhooks there: https://core.telegram.org/bots/webhooks.
+- Don't forget that starting in July 2019, webhook requests from Bot API will be coming from the subnets
149.154.160.0/20
and 91.108.4.0/22
. Most users won't need to do anything to continue receiving webhooks. If you control inbound access with a firewall, you may need to update your configuration. You can always find the list of actual IP addresses of servers used to send webhooks there: https://core.telegram.org/bots/webhooks.
-April 14, 2019
+April 14, 2019
Bot API 4.2
- Added support for native polls: added the object Poll, the methods sendPoll and stopPoll and the field poll in the Message and Update objects.
- The method deleteMessage can now be used to delete messages sent by a user to the bot in private chats within 48 hours.
-- Added support for pinned messages in basic groups in addition to supergroups and channel chats: you can pass group's chat_id to pinChatMessage and unpinChatMessage, and receive the pinned group message in Chat object.
+- Added support for pinned messages in basic groups in addition to supergroups and channel chats: you can pass group's chat_id to pinChatMessage and unpinChatMessage, and receive the pinned group message in Chat object.
- Added the field is_member to the ChatMember object, which can be used to find whether a restricted user is a member of the chat.
- Added the field forward_sender_name to the Message object, containing name of the sender who has opted to hide their account.
-- Starting in July 2019, webhook requests from Bot API will be coming from the subnets
149.154.160.0/20
and 91.108.4.0/22
. Most users won't need to do anything to continue receiving webhooks. If you control inbound access with a firewall, you may need to update your configuration. You can always find the list of actual IP addresses of servers used to send webhooks there: https://core.telegram.org/bots/webhooks.
+- Starting in July 2019, webhook requests from Bot API will be coming from the subnets
149.154.160.0/20
and 91.108.4.0/22
. Most users won't need to do anything to continue receiving webhooks. If you control inbound access with a firewall, you may need to update your configuration. You can always find the list of actual IP addresses of servers used to send webhooks there: https://core.telegram.org/bots/webhooks.
- Document thumbnails now should be inscribed in a 320x320 square instead of 90x90.
-August 27, 2018
+August 27, 2018
Bot API 4.1
- Added support for translated versions of documents in Telegram Passport.
- New field translation in EncryptedPassportElement.
- New errors: PassportElementErrorTranslationFile and PassportElementErrorTranslationFiles and PassportElementErrorUnspecified.
-July 26, 2018
+July 26, 2018
Bot API 4.0.
- Added support for Telegram Passport. See the official announcement on the blog and the manual for details.
@@ -361,35 +367,35 @@ To learn how to create…">
- Added the field animation to the Message object. For backward compatibility, when this field is set, the document field will be also set.
- Added two new MessageEntity types: cashtag and phone_number.
- Added support for Foursquare venues: added the new field foursquare_type to the objects Venue, InlineQueryResultVenue and InputVenueMessageContent, and the parameter foursquare_type to the sendVenue method.
-- You can now create inline mentions of users, who have pressed your bot's callback buttons.
+- You can now create inline mentions of users, who have pressed your bot's callback buttons.
- You can now use the
Retry-After
response header to configure the delay after which the Bot API will retry the request after an unsuccessful response from a webhook.
- If a webhook returns the HTTP error
410 Gone
for all requests for more than 23 hours successively, it can be automatically removed.
- Added vCard support when sharing contacts: added the field vcard to the objects Contact, InlineQueryResultContact, InputContactMessageContent and the method sendContact.
-February 13, 2018
+February 13, 2018
Bot API 3.6.
- Supported text formatting in media captions. Specify the desired parse_mode (Markdown or HTML) when you provide a caption.
-- In supergroups, if the bot receives a message that is a reply, it will also receive the message to which that message is replying – even if the original message is inaccessible due to the bot's privacy settings. (In other words, replying to any message in a supergroup with a message that mentions the bot or features a command for it acts as forwarding the original message to the bot).
-- Added the new field connected_website to Message. The bot will receive a message with this field in a private chat when a user logs in on the bot's connected website using the Login Widget and allows sending messages from your bot.
+- In supergroups, if the bot receives a message that is a reply, it will also receive the message to which that message is replying – even if the original message is inaccessible due to the bot's privacy settings. (In other words, replying to any message in a supergroup with a message that mentions the bot or features a command for it acts as forwarding the original message to the bot).
+- Added the new field connected_website to Message. The bot will receive a message with this field in a private chat when a user logs in on the bot's connected website using the Login Widget and allows sending messages from your bot.
- Added the new parameter supports_streaming to the sendVideo method and a field with the same name to the InputMediaVideo object.
-November 17, 2017
+November 17, 2017
Bot API 3.5.
- Added the new method sendMediaGroup and two kinds of InputMedia objects to support the new albums feature.
- Added support for pinning messages in channels. pinChatMessage and unpinChatMessage accept channels.
- Added the new fields provider_data, send_phone_number_to_provider, send_email_to_provider to sendInvoice for sharing information about the invoice with the payment provider.
-October 11, 2017
+October 11, 2017
Bot API 3.4.
- Bots can now send and receive Live Locations. Added new field live_period to the sendLocation method and the editMessageLiveLocation and stopMessageLiveLocation methods as well as the necessary objects for inline bots.
- Bots can use the new setChatStickerSet and deleteChatStickerSet methods to manage group sticker sets.
-- The getChat request now returns the group's sticker set for supergroups if available.
+- The getChat request now returns the group's sticker set for supergroups if available.
- Bots now receive entities from media captions in the new field caption_entities in Message.
-August 23, 2017
+August 23, 2017
Bot API 3.3.
- Bots can now mention users via inline mentions, without using usernames.
@@ -397,13 +403,13 @@ To learn how to create…">
- Added the new fields author_signature and forward_signature to the Message object.
- Added the new field is_bot to the User object.
-July 21, 2017
+July 21, 2017
Bot API 3.2. Teach your bot to handle stickers and sticker sets.
- Added new methods for working with stickers: getStickerSet, uploadStickerFile, createNewStickerSet, addStickerToSet, setStickerPositionInSet, and deleteStickerFromSet.
- Added the fields set_name and mask_position to the Sticker object, plus two new objects, StickerSet, and MaskPosition.
-June 30, 2017
+June 30, 2017
Bot API 3.1. Build your own robotic police force for supergoups with these new methods for admin bots:
- Added new methods restrictChatMember and promoteChatMember to manage users and admins, added new parameter until_date to kickChatMember for temporary bans.
@@ -411,10 +417,10 @@ To learn how to create…">
- Added the new fields photo, description and invite_link to the Chat object.
- Added the new fields until_date, can_be_edited, can_change_info, can_post_messages, can_edit_messages, can_delete_messages, can_invite_users, can_restrict_members, can_pin_messages, can_promote_members, can_send_messages, can_send_media_messages, can_send_other_messages and can_add_web_page_previews to the ChatMember object.
-May 18, 2017
+May 18, 2017
Introducing Bot API 3.0.
NEW Payment Platform
-See Introduction to Bot Payments for a brief overview. If you're not a developer, you may like this user-friendly blog post better.
+See Introduction to Bot Payments for a brief overview. If you're not a developer, you may like this user-friendly blog post better.
- Your bot can now accept payments for goods and services via Telegram.
- Added new kinds of updates, shipping_query and pre_checkout_query, and new types of message content, invoice and successful_payment.
@@ -428,7 +434,7 @@ To learn how to create…">
NEW Multilingual Bots
-- The User object now may have a language_code field that contains the IETF language tag of the user's language.
+- The User object now may have a language_code field that contains the IETF language tag of the user's language.
- Thanks to this, your bot can now offer localized responses to users that speak different languages.
More power to admin bots
@@ -442,29 +448,44 @@ To learn how to create…">
- Inline keyboards with switch_inline_query and switch_inline_query_current_chat can no longer be sent to channels because they are useless there.
- New fields gif_duration in InlineQueryResultGif and mpeg4_duration in InlineQueryResultMpeg4Gif.
-December 4, 2016
+December 4, 2016
Introducing Bot API 2.3.1, a nifty little update that will give you more control over how your bot gets its updates.
-- Use the new field max_connections in setWebhook to optimize your bot's server load
+- Use the new field max_connections in setWebhook to optimize your bot's server load
- Use allowed_updates in setWebhook and getUpdates to selectively subscribe to updates of a certain type. Among other things, this allows you to stop getting updates about new posts in channels where your bot is an admin.
- deleteWebhook moved out of setWebhook to get a whole separate method for itself.
-November 21, 2016
+November 21, 2016
Bot API 2.3
-- Modified bot privacy mode for the sake of consistency.
-Your bot can now get updates about posts in channels. Added new fields channel_post and edited_channel_post to Update.
+-
+
Modified bot privacy mode for the sake of consistency.
-You can now update high scores to a lower value by using the new force parameter in setGameScore. Handy for punishing cheaters or fixing errors in your game's High Score table.
+-
+
Your bot can now get updates about posts in channels. Added new fields channel_post and edited_channel_post to Update.
+
+-
+
You can now update high scores to a lower value by using the new force parameter in setGameScore. Handy for punishing cheaters or fixing errors in your game's High Score table.
+
+-
+
Starting today, messages with high scores will be updated with new high scores by default. Use disable_edit_message in setGameScore if you don't want this.
+
+-
+
The edit_message parameter from setGameScore is no longer in use. For backward compatibility, it will be taken into account for a while, unless disable_edit_message is passed explicitly.
+
+-
+
Added the new field forward_from_message_id to Message.
+
+-
+
Added the new parameter cache_time to answerCallbackQuery. Will eventually work in Telegram apps — somewhere after version 3.14, maybe 3.15.
+
+-
+
Renamed hide_keyboard to remove_keyboard in ReplyKeyboardRemove for clarity. hide_keyboard will still work for a while for backward compatibility.
-- Starting today, messages with high scores will be updated with new high scores by default. Use disable_edit_message in setGameScore if you don't want this.
-- The edit_message parameter from setGameScore is no longer in use. For backward compatibility, it will be taken into account for a while, unless disable_edit_message is passed explicitly.
-- Added the new field forward_from_message_id to Message.
-- Added the new parameter cache_time to answerCallbackQuery. Will eventually work in Telegram apps — somewhere after version 3.14, maybe 3.15.
-- Renamed hide_keyboard to remove_keyboard in ReplyKeyboardRemove for clarity. hide_keyboard will still work for a while for backward compatibility.
-October 3, 2016
-Bot API 2.2. Introducing a new Gaming Platform! See this introduction for a brief overview.
If you're not a developer, you may like this user-friendly blog post better.
+October 3, 2016
+Bot API 2.2. Introducing a new Gaming Platform! See this introduction for a brief overview.
+If you're not a developer, you may like this user-friendly blog post better.
- New tools for building HTML5 games.
- New method sendGame, new object InlineQueryResultGame, new field game in Message.
@@ -474,40 +495,50 @@ To learn how to create…">
Other changes
-- Making life easier for webhook users. Added a detailed Guide to All Things Webhook that describes every pothole you can run into on the webhook road.
-New method getWebhookInfo to check current webhook status.
+-
+
Making life easier for webhook users. Added a detailed Guide to All Things Webhook that describes every pothole you can run into on the webhook road.
-Added the option to specify an HTTP URL for a file in all methods where InputFile or file_id can be used (except voice messages). Telegram will get the file from the specified URL and send it to the user. Files must be smaller than 5 MB for photos and smaller than 20 MB for all other types of content.
+-
+
New method getWebhookInfo to check current webhook status.
+
+-
+
Added the option to specify an HTTP URL for a file in all methods where InputFile or file_id can be used (except voice messages). Telegram will get the file from the specified URL and send it to the user. Files must be smaller than 5 MB for photos and smaller than 20 MB for all other types of content.
+
+-
+
Use the new url parameter in answerCallbackQuery to create buttons that open your bot with user-specific parameters.
+
+-
+
Added new field switch_inline_query_current_chat in InlineKeyboardButton.
+
+-
+
Added caption fields to sendAudio, sendVoice, InlineQueryResultAudio, InlineQueryResultVoice, InlineQueryResultCachedAudio, and InlineQueryResultCachedVoice.
-- Use the new url parameter in answerCallbackQuery to create buttons that open your bot with user-specific parameters.
-- Added new field switch_inline_query_current_chat in InlineKeyboardButton.
-- Added caption fields to sendAudio, sendVoice, InlineQueryResultAudio, InlineQueryResultVoice, InlineQueryResultCachedAudio, and InlineQueryResultCachedVoice.
- New field all_members_are_administrators in the Chat object.
- Certain server responses may now contain the new parameters field with expanded info on errors that occurred while processing your requests.
-May 25, 2016
+May 25, 2016
- Inline keyboards may now be used in group chats. Channels coming soon.
- Check out @vote and @like for examples.
-May 22, 2016
+May 22, 2016
-- Bot API 2.1. Added more tools for group administrator bots. Your bot can now get a list of administrators and members count in a group, check a user's current status (administrator, creator, left the group, kicked from the group), and leave a group.
+- Bot API 2.1. Added more tools for group administrator bots. Your bot can now get a list of administrators and members count in a group, check a user's current status (administrator, creator, left the group, kicked from the group), and leave a group.
- Added new methods: getChat, leaveChat, getChatAdministrators, getChatMember, getChatMembersCount.
- Added support for edited messages and new mentions from Telegram v.3.9. New fields: edited_message in Update, edit_date in Message, user in MessageEntity. New value text_mention for the type field in MessageEntity.
-May 12, 2016
+May 12, 2016
- Added consistency to what messages bots get in groups and supergroups. See updated FAQ for details »
-May 6, 2016
+May 6, 2016
- Added the field emoji to the Sticker object. Your bot can now know the emoji a sticker corresponds to.
- Added the field forward_from_chat to the Message object for messages forwarded from channels.
-April 9, 2016
+April 9, 2016
Introducing Bot API 2.0. Check out this page for a review of this major update.
- New inline keyboards with callback and URL buttons. Added new objects InlineKeyboardMarkup, InlineKeyboardButton and CallbackQuery, added reply_markup fields to all InlineQueryResult objects. Added field callback_query to the Update object, new method answerCallbackQuery.
@@ -527,71 +558,70 @@ To learn how to create…">
- Added fields venue, pinned_message and entities to the Message object. Added new objects MessageEntity and Venue, new methods sendVenue and sendContact.
- Renamed the fields new_chat_participant and left_chat_participant of the Message object to new_chat_member and left_chat_member.
-February 20, 2016
+February 20, 2016
- Added the disable_notification parameter to all methods that send messages or any kind.
- Removed backward compatibility from the method sendAudio. Voice messages now must be sent using the method sendVoice. There is no more need to specify a non-empty title or performer while sending the audio by file_id.
-January 20, 2016
+January 20, 2016
-- By the way, you can use both HTML-style and markdown-style formatting in your bot's messages to send bold, italic or fixed-width text and inline links. All official Telegram clients support this. See Formatting options for details.
+- By the way, you can use both HTML-style and markdown-style formatting in your bot's messages to send bold, italic or fixed-width text and inline links. All official Telegram clients support this. See Formatting options for details.
-January 14, 2016
+January 14, 2016
- You can now collect feedback on which results provided by your inline bot get chosen by the users. Added the
setinlinefeedback
command for Botfather, new type ChosenInlineResult, new field chosen_inline_result to the Update object.
-January 4, 2016
+January 4, 2016
- Added support for Inline Mode, a new way for people to contact your bot by typing its username and a query in the text input field in any chat. Enable by sending
/setinline
to @BotFather.
- New optional field inline_query added to the Update object.
- Added new method answerInlineQuery and new objects InlineQuery, InlineQueryResultArticle, InlineQueryResultPhoto, InlineQueryResultGif, InlineQueryResultMpeg4Gif and InlineQueryResultVideo.
-November, 2015
+November, 2015
-- Added support for supergroups. The Type field in the Chat object can now contain 'supergroup'.
+- Added support for supergroups. The Type field in the Chat object can now contain 'supergroup'.
- New optional fields added to the Message object: supergroup_chat_created, migrate_to_chat_id, migrate_from_chat_id and channel_chat_created.
-October 8, 2015
+October 8, 2015
- Added initial channel support for bots (no Telegram clients support this at the moment, please wait for updates):
- The Chat field in the Message is now of the new type Chat.
-- You can now pass a channel username (in the format
@channelusername
) in the place of chat_id in all methods (and instead of from_chat_id in forwardMessage). For this to work, the bot must be an administrator in the channel (and that's exactly what Telegram clients don't support yet — adding bots as administrators coming soon).
+- You can now pass a channel username (in the format
@channelusername
) in the place of chat_id in all methods (and instead of from_chat_id in forwardMessage). For this to work, the bot must be an administrator in the channel (and that's exactly what Telegram clients don't support yet — adding bots as administrators coming soon).
-September 18, 2015
+September 18, 2015
-September 7, 2015
+September 7, 2015
-- You can now pass parameters using application/json (please note that this doesn't work for file uploads: use multipart/form-data to upload files).
+- You can now pass parameters using application/json (please note that this doesn't work for file uploads: use multipart/form-data to upload files).
- Added very basic markdown support. New field parse_mode added to sendMessage. For the moment messages with markdown will be displayed correctly only in Telegram for Android. Other official apps will catch up soon.
-August 29, 2015
+August 29, 2015
- Added support for self-signed certificates: upload your certificate using the certificate parameter in the setWebhook method.
- You can now make new requests when responding to webhook updates.
-August 15, 2015
+August 15, 2015
- Added new type Voice and new method sendVoice for sending voice messages.
- Earlier Audio and sendAudio should now be used for sending music files. Telegram clients will show such files in the in-app music player. If you were using sendAudio for your bot to send voice messages, please use sendVoice instead.
- Added optional fields performer, title to the Audio object and sendAudio method.
- Added optional field voice to the Message object.
-July 2015
+July 2015
- The thumb field is now optional for Video, Sticker and Document objects
- The API now supports both video and photo captions. The caption field has been removed from the Video object and added to the Message object instead.
- caption and duration optional fields have been added to the sendVideo method.
- Fixed typo: user_id in the Contact object is now correctly labeled as Integer, not String
-June 24, 2015
+June 24, 2015
The bot platform was officially launched.
-
-
+
diff --git a/data/corefork.telegram.org/bots/api.html b/data/corefork.telegram.org/bots/api.html
index a01ae0c040..18344b6377 100644
--- a/data/corefork.telegram.org/bots/api.html
+++ b/data/corefork.telegram.org/bots/api.html
@@ -183,7 +183,7 @@ After one of the upcoming Bot API updates, some user identifiers will become big
Live Locations
- Added the field live_period to the class Location, representing a maximum period for which the live location can be updated.
-- Added support for live location [heading](https://en.wikipedia.org/wiki/Heading_(navigation)): added the field heading to the classes Location, InlineQueryResultLocation, InputLocationMessageContent and the parameter heading to the methods sendLocation and editMessageLiveLocation.
+- Added support for live location heading: added the field heading to the classes Location, InlineQueryResultLocation, InputLocationMessageContent and the parameter heading to the methods sendLocation and editMessageLiveLocation.
- Added support for proximity alerts in live locations: added the field proximity_alert_radius to the classes Location, InlineQueryResultLocation, InputLocationMessageContent and the parameter proximity_alert_radius to the methods sendLocation and editMessageLiveLocation.
- Added the type ProximityAlertTriggered and the field proximity_alert_triggered to the class Message.
- Added possibility to specify the horizontal accuracy of a location. Added the field horizontal_accuracy to the classes Location, InlineQueryResultLocation, InputLocationMessageContent and the parameter horizontal_accuracy to the methods sendLocation and editMessageLiveLocation.
diff --git a/data/corefork.telegram.org/bots/samples.html b/data/corefork.telegram.org/bots/samples.html
index dda0121b96..21bc7a3ef9 100644
--- a/data/corefork.telegram.org/bots/samples.html
+++ b/data/corefork.telegram.org/bots/samples.html
@@ -42,138 +42,236 @@ Check out the FAQ, if you have questions.…">
Bot Code Examples
-If you want to learn more about Telegram bots, start with our Introduction to Bots »
Check out the FAQ, if you have questions.
+If you want to learn more about Telegram bots, start with our Introduction to Bots »
+Check out the FAQ, if you have questions.
-Many members of our community are building bots and libraries and publishing their source code. We collect these examples here. Ping us on BotSupport if you've built a bot and would like to share its code with others.
-PHP
+Many members of our community are building bots and libraries and publishing their source code. We collect these examples here. Ping us on BotSupport if you've built a bot and would like to share its code with others.
+PHP
-Telegram Bot Api Base. Clear and simple Telegram Bot API.
https://github.com/tg-bot-api/bot-api-base
+-
+
Telegram Bot Api Base. Clear and simple Telegram Bot API.
+https://github.com/tg-bot-api/bot-api-base
-PHP Telegram API. A complete async capable Telegram Bot API implementation for PHP7.
https://github.com/unreal4u/telegram-api
+-
+
PHP Telegram API. A complete async capable Telegram Bot API implementation for PHP7.
+https://github.com/unreal4u/telegram-api
-PHP Telegram Bot. PHP Telegram Bot based on the official Telegram Bot API.
https://github.com/php-telegram-bot/core
+-
+
PHP Telegram Bot. PHP Telegram Bot based on the official Telegram Bot API.
+https://github.com/php-telegram-bot/core
-Bot API PHP SDK. Telegram Bot API PHP SDK. Supports Laravel out of the box.
https://github.com/irazasyed/telegram-bot-sdk
+-
+
Bot API PHP SDK. Telegram Bot API PHP SDK. Supports Laravel out of the box.
+https://github.com/irazasyed/telegram-bot-sdk
-TeleBot. Easy way to create Telegram bots in PHP. Rich Laravel support out of the box.
https://github.com/westacks/telebot
+-
+
TeleBot. Easy way to create Telegram bots in PHP. Rich Laravel support out of the box.
+https://github.com/westacks/telebot
-NovaGram. An Object-Oriented PHP library for Telegram Bots.
https://github.com/skrtdev/NovaGram
+-
+
NovaGram. An Object-Oriented PHP library for Telegram Bots.
+https://github.com/skrtdev/NovaGram
-PHP Telegram Bot. Telegram bot as it should be.
https://github.com/formapro/telegram-bot-php
+-
+
PHP Telegram Bot. Telegram bot as it should be.
+https://github.com/formapro/telegram-bot-php
-PHP Telegram Bot Api. Native PHP Wrapper for Telegram BOT API.
https://github.com/TelegramBot/Api
+-
+
PHP Telegram Bot Api. Native PHP Wrapper for Telegram BOT API.
+https://github.com/TelegramBot/Api
-TuriBot. A simple way to communicate with Telegram APIs in PHP.
https://github.com/davtur19/TuriBot
+-
+
TuriBot. A simple way to communicate with Telegram APIs in PHP.
+https://github.com/davtur19/TuriBot
-TelegramBotApiBundle. A symfony wrapper bundle for Telegram Bot API.
https://github.com/borsaco/TelegramBotApiBundle
+-
+
TelegramBotApiBundle. A symfony wrapper bundle for Telegram Bot API.
+https://github.com/borsaco/TelegramBotApiBundle
-Node.js
+Node.js
-Telegraf. Modern Telegram Bot Framework for Node.js.
https://github.com/telegraf/telegraf
+-
+
Telegraf. Modern Telegram Bot Framework for Node.js.
+https://github.com/telegraf/telegraf
-Node-Telegram-bot. Node.js module to interact with the official Telegram Bot API.
https://github.com/yagop/node-telegram-bot-api
+-
+
Node-Telegram-bot. Node.js module to interact with the official Telegram Bot API.
+https://github.com/yagop/node-telegram-bot-api
-Telebot. The easy way to write Telegram bots.
https://github.com/mullwar/telebot
+-
+
Telebot. The easy way to write Telegram bots.
+https://github.com/mullwar/telebot
-telegram-bot-api. Node.js library for Telegram Bot API.
https://github.com/mast/telegram-bot-api
+-
+
telegram-bot-api. Node.js library for Telegram Bot API.
+https://github.com/mast/telegram-bot-api
-Slimbot. A fuss-free, thin wrapper around Telegram Bot API for Node.js. No frills.
https://github.com/edisonchee/slimbot
+-
+
Slimbot. A fuss-free, thin wrapper around Telegram Bot API for Node.js. No frills.
+https://github.com/edisonchee/slimbot
-tgapi. Reactive and with full Flow coverage Telegram Bot API JS implementation.
https://github.com/bigslycat/tgapi
+-
+
tgapi. Reactive and with full Flow coverage Telegram Bot API JS implementation.
+https://github.com/bigslycat/tgapi
-Botgram. Practical Telegram Bot microframework.
https://github.com/botgram/botgram
+-
+
Botgram. Practical Telegram Bot microframework.
+https://github.com/botgram/botgram
-Rust
+Rust
-teloxide. An elegant Telegram bots framework for Rust.
https://github.com/teloxide/teloxide
+-
+
teloxide. An elegant Telegram bots framework for Rust.
+https://github.com/teloxide/teloxide
-Telebot. Write Telegram bots in Rust with Tokio and Futures.
https://github.com/bytesnake/telebot
+-
+
Telebot. Write Telegram bots in Rust with Tokio and Futures.
+https://github.com/bytesnake/telebot
-carapax. A Telegram Bot API framework.
https://github.com/tg-rs/carapax
+-
+
carapax. A Telegram Bot API framework.
+https://github.com/tg-rs/carapax
-telegram-bot. Rust Library for creating a Telegram Bot.
https://github.com/telegram-rs/telegram-bot
+-
+
telegram-bot. Rust Library for creating a Telegram Bot.
+https://github.com/telegram-rs/telegram-bot
-Python
+Python
-python-telegram-bot. A wrapper you can't refuse.
https://github.com/python-telegram-bot/python-telegram-bot
+-
+
python-telegram-bot. A wrapper you can't refuse.
+https://github.com/python-telegram-bot/python-telegram-bot
-pyTelegramBotAPI. Python Telegram Bot API.
https://github.com/eternnoir/pyTelegramBotAPI
+-
+
pyTelegramBotAPI. Python Telegram Bot API.
+https://github.com/eternnoir/pyTelegramBotAPI
-AIOGram. A pretty simple and fully asynchronous library for Telegram Bot API written with asyncio and aiohttp.
https://github.com/aiogram/aiogram
+-
+
AIOGram. A pretty simple and fully asynchronous library for Telegram Bot API written with asyncio and aiohttp.
+https://github.com/aiogram/aiogram
-Ruby
+Ruby
-Telegram::Bot. Ruby gem for building Telegram Bot with optional Rails integration.
https://github.com/telegram-bot-rb/telegram-bot
+-
+
Telegram::Bot. Ruby gem for building Telegram Bot with optional Rails integration.
+https://github.com/telegram-bot-rb/telegram-bot
-telegram-bot-ruby. Ruby wrapper for Telegram's Bot API.
https://github.com/atipugin/telegram-bot-ruby
+-
+
telegram-bot-ruby. Ruby wrapper for Telegram's Bot API.
+https://github.com/atipugin/telegram-bot-ruby
-TelegramBot. A charismatic Ruby client for Telegram's Bot API.
https://github.com/eljojo/telegram_bot
+-
+
TelegramBot. A charismatic Ruby client for Telegram's Bot API.
+https://github.com/eljojo/telegram_bot
-Swift
+Swift
-telegram-bot-swift. Telegram Bot SDK for Swift.
https://github.com/rapierorg/telegram-bot-swift
+-
+
telegram-bot-swift. Telegram Bot SDK for Swift.
+https://github.com/rapierorg/telegram-bot-swift
-Telegrammer. Telegram Bot Framework written in Swift 5.1 with SwiftNIO network framework.
https://github.com/givip/Telegrammer
+-
+
Telegrammer. Telegram Bot Framework written in Swift 5.1 with SwiftNIO network framework.
+https://github.com/givip/Telegrammer
-SwiftyBot. Swift + Vapor + Telegram.
https://github.com/FabrizioBrancati/SwiftyBot
+-
+
SwiftyBot. Swift + Vapor + Telegram.
+https://github.com/FabrizioBrancati/SwiftyBot
-Kotlin
+Kotlin
-TelegramBotAPI. Type-safe library for work with Telegram Bot API.
https://github.com/InsanusMokrassar/TelegramBotAPI
+-
+
TelegramBotAPI. Type-safe library for work with Telegram Bot API.
+https://github.com/InsanusMokrassar/TelegramBotAPI
-Kotlin Telegram Bot. A wrapper for the Telegram Bot API.
https://github.com/kotlin-telegram-bot/kotlin-telegram-bot
+-
+
Kotlin Telegram Bot. A wrapper for the Telegram Bot API.
+https://github.com/kotlin-telegram-bot/kotlin-telegram-bot
-kt-telegram-bot. Telegram Bot API library for Kotlin language.
https://github.com/elbekD/kt-telegram-bot
+-
+
kt-telegram-bot. Telegram Bot API library for Kotlin language.
+https://github.com/elbekD/kt-telegram-bot
-Telegraff. Kotlin DSL for Telegram Bots.
https://github.com/ruslanys/telegraff
+-
+
Telegraff. Kotlin DSL for Telegram Bots.
+https://github.com/ruslanys/telegraff
-Java
+Java
-TelegramBots. A simple to use library to create Telegram Bots.
https://github.com/rubenlagus/TelegramBots
+-
+
TelegramBots. A simple to use library to create Telegram Bots.
+https://github.com/rubenlagus/TelegramBots
-Java API. Telegram Bot API for Java.
https://github.com/pengrad/java-telegram-bot-api
+-
+
Java API. Telegram Bot API for Java.
+https://github.com/pengrad/java-telegram-bot-api
-Go
+Go
-go-telegram-bot-api. Golang bindings for the Telegram Bot API.
https://github.com/go-telegram-bot-api/telegram-bot-api
+-
+
go-telegram-bot-api. Golang bindings for the Telegram Bot API.
+https://github.com/go-telegram-bot-api/telegram-bot-api
-telebot. A Telegram bot framework in Go.
https://github.com/tucnak/telebot
+-
+
telebot. A Telegram bot framework in Go.
+https://github.com/tucnak/telebot
-Other Languages
+Other Languages
-TypeScript. grammY. The Telegram Bot Framework.
https://github.com/grammyjs/grammY
+-
+
TypeScript. grammY. The Telegram Bot Framework.
+https://github.com/grammyjs/grammY
-C#. Telegram.bot. Library.
https://github.com/TelegramBots/Telegram.Bot
+-
+
C#. Telegram.bot. Library.
+https://github.com/TelegramBots/Telegram.Bot
-Elixir. Nadia. Telegram Bot API Wrapper.
https://github.com/zhyu/nadia
+-
+
Elixir. Nadia. Telegram Bot API Wrapper.
+https://github.com/zhyu/nadia
-C++. tgbot-cpp. C++ library for Telegram Bot API.
https://github.com/reo7sp/tgbot-cpp
+-
+
C++. tgbot-cpp. C++ library for Telegram Bot API.
+https://github.com/reo7sp/tgbot-cpp
-Dart. TeleDart. A Dart library interfacing with the latest Telegram Bot API.
https://github.com/DinoLeung/TeleDart
+-
+
Dart. TeleDart. A Dart library interfacing with the latest Telegram Bot API.
+https://github.com/DinoLeung/TeleDart
-Lua. telegram-bot-lua. A feature-filled Telegram Bot API library.
https://github.com/wrxck/telegram-bot-lua
+-
+
Lua. telegram-bot-lua. A feature-filled Telegram Bot API library.
+https://github.com/wrxck/telegram-bot-lua
-OCaml. TelegraML. An OCaml library for creating bots for Telegram.
https://github.com/nv-vn/TelegraML
+-
+
OCaml. TelegraML. An OCaml library for creating bots for Telegram.
+https://github.com/nv-vn/TelegraML
-Haskell. haskell-telegram-api High-level bindings to the Telegram Bot API based on servant library.
https://github.com/klappvisor/haskell-telegram-api
+-
+
Haskell. haskell-telegram-api High-level bindings to the Telegram Bot API based on servant library.
+https://github.com/klappvisor/haskell-telegram-api
-Scala. canoe. Functional Telegram Bot API for Scala.
https://github.com/augustjune/canoe
+-
+
Scala. canoe. Functional Telegram Bot API for Scala.
+https://github.com/augustjune/canoe
-Scala. bot4s.telegram. 100% idiomatic Scala wrapper for the Telegram Bot API.
https://github.com/bot4s/telegram
+-
+
Scala. bot4s.telegram. 100% idiomatic Scala wrapper for the Telegram Bot API.
+https://github.com/bot4s/telegram
-Perl. Telegram Bot. A genuine Perl 6 client for the Telegram's Bot API.
https://github.com/GildedHonour/TelegramBot
+-
+
Perl. Telegram Bot. A genuine Perl 6 client for the Telegram's Bot API.
+https://github.com/GildedHonour/TelegramBot
-
-
+
diff --git a/data/corefork.telegram.org/constructor/account.authorizations b/data/corefork.telegram.org/constructor/account.authorizations
index b2a3017b14..e5a713fb90 100644
--- a/data/corefork.telegram.org/constructor/account.authorizations
+++ b/data/corefork.telegram.org/constructor/account.authorizations
@@ -64,6 +64,11 @@
+authorization_ttl_days
+int
+
+
+
authorizations
Vector<Authorization>
Logged-in sessions
diff --git a/data/corefork.telegram.org/constructor/auth.authorization b/data/corefork.telegram.org/constructor/auth.authorization
index 1346644c64..f60e1895a2 100644
--- a/data/corefork.telegram.org/constructor/auth.authorization
+++ b/data/corefork.telegram.org/constructor/auth.authorization
@@ -69,6 +69,16 @@
Flags, see TL conditional fields
+setup_password_required
+flags.1?true
+
+
+
+otherwise_relogin_days
+flags.1?int
+
+
+
tmp_sessions
flags.0?int
Temporary passport sessions
diff --git a/data/corefork.telegram.org/constructor/auth.codeTypeMissedCall b/data/corefork.telegram.org/constructor/auth.codeTypeMissedCall
index 0780c13516..535c4f2c6b 100644
--- a/data/corefork.telegram.org/constructor/auth.codeTypeMissedCall
+++ b/data/corefork.telegram.org/constructor/auth.codeTypeMissedCall
@@ -2,12 +2,18 @@
- Page not found
+ auth.codeTypeMissedCall
-
-
+
+
-
+
@@ -36,10 +42,26 @@
-
- Page not found
+
+ auth.codeTypeMissedCall
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+auth.codeTypeMissedCall#d61ad6ee = auth.CodeType;
+Parameters
+This constructor does not require any parameters.
+Type
+
diff --git a/data/corefork.telegram.org/constructor/auth.loggedOut b/data/corefork.telegram.org/constructor/auth.loggedOut
index 0780c13516..46110be974 100644
--- a/data/corefork.telegram.org/constructor/auth.loggedOut
+++ b/data/corefork.telegram.org/constructor/auth.loggedOut
@@ -2,12 +2,34 @@
- Page not found
+ auth.loggedOut
-
-
+
+
-
+
@@ -36,10 +58,46 @@
-
- Page not found
+
+ auth.loggedOut
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+auth.loggedOut#c3a2835f flags:# future_auth_token:flags.0?bytes = auth.LoggedOut;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+flags
+#
+Flags, see TL conditional fields
+
+
+future_auth_token
+flags.0?bytes
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/auth.sentCodeTypeMissedCall b/data/corefork.telegram.org/constructor/auth.sentCodeTypeMissedCall
index 0780c13516..a51c20e63e 100644
--- a/data/corefork.telegram.org/constructor/auth.sentCodeTypeMissedCall
+++ b/data/corefork.telegram.org/constructor/auth.sentCodeTypeMissedCall
@@ -2,12 +2,34 @@
- Page not found
+ auth.sentCodeTypeMissedCall
-
-
+
+
-
+
@@ -36,10 +58,46 @@
-
- Page not found
+
+ auth.sentCodeTypeMissedCall
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+auth.sentCodeTypeMissedCall#82006484 prefix:string length:int = auth.SentCodeType;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+prefix
+string
+
+
+
+length
+int
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/authorization.html b/data/corefork.telegram.org/constructor/authorization.html
index 61aaeadeeb..8c5c1c1714 100644
--- a/data/corefork.telegram.org/constructor/authorization.html
+++ b/data/corefork.telegram.org/constructor/authorization.html
@@ -84,6 +84,16 @@
Whether the session is still waiting for a 2FA password
+encrypted_requests_disabled
+flags.3?true
+
+
+
+call_requests_disabled
+flags.4?true
+
+
+
hash
long
Identifier
diff --git a/data/corefork.telegram.org/constructor/availableReaction.html b/data/corefork.telegram.org/constructor/availableReaction.html
index 0780c13516..f5de7dc58d 100644
--- a/data/corefork.telegram.org/constructor/availableReaction.html
+++ b/data/corefork.telegram.org/constructor/availableReaction.html
@@ -2,12 +2,38 @@
- Page not found
+ availableReaction
-
-
+
+
-
+
@@ -36,10 +62,91 @@
-
- Page not found
+
+ availableReaction
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+availableReaction#c077ec01 flags:# inactive:flags.0?true reaction:string title:string static_icon:Document appear_animation:Document select_animation:Document activate_animation:Document effect_animation:Document around_animation:flags.1?Document center_icon:flags.1?Document = AvailableReaction;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+flags
+#
+Flags, see TL conditional fields
+
+
+inactive
+flags.0?true
+
+
+
+reaction
+string
+
+
+
+title
+string
+
+
+
+static_icon
+Document
+
+
+
+appear_animation
+Document
+
+
+
+select_animation
+Document
+
+
+
+activate_animation
+Document
+
+
+
+effect_animation
+Document
+
+
+
+around_animation
+flags.1?Document
+
+
+
+center_icon
+flags.1?Document
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/channel.html b/data/corefork.telegram.org/constructor/channel.html
index 4f7e797683..044f299a84 100644
--- a/data/corefork.telegram.org/constructor/channel.html
+++ b/data/corefork.telegram.org/constructor/channel.html
@@ -149,6 +149,11 @@
Whether this supergroup is a gigagroup
+noforwards
+flags.27?true
+
+
+
id
long
ID of the channel
diff --git a/data/corefork.telegram.org/constructor/channelAdminLogEventActionChangeAvailableReactions.html b/data/corefork.telegram.org/constructor/channelAdminLogEventActionChangeAvailableReactions.html
index 0780c13516..f9ab5c5f8d 100644
--- a/data/corefork.telegram.org/constructor/channelAdminLogEventActionChangeAvailableReactions.html
+++ b/data/corefork.telegram.org/constructor/channelAdminLogEventActionChangeAvailableReactions.html
@@ -2,12 +2,34 @@
- Page not found
+ channelAdminLogEventActionChangeAvailableReactions
-
-
+
+
-
+
@@ -36,10 +58,46 @@
-
- Page not found
+
+ channelAdminLogEventActionChangeAvailableReactions
- The page has not been saved
+
diff --git a/data/corefork.telegram.org/constructor/channelAdminLogEventActionParticipantJoinByRequest.html b/data/corefork.telegram.org/constructor/channelAdminLogEventActionParticipantJoinByRequest.html
index 0780c13516..97e0180205 100644
--- a/data/corefork.telegram.org/constructor/channelAdminLogEventActionParticipantJoinByRequest.html
+++ b/data/corefork.telegram.org/constructor/channelAdminLogEventActionParticipantJoinByRequest.html
@@ -2,12 +2,34 @@
- Page not found
+ channelAdminLogEventActionParticipantJoinByRequest
-
-
+
+
-
+
@@ -36,10 +58,46 @@
-
- Page not found
+
+ channelAdminLogEventActionParticipantJoinByRequest
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+channelAdminLogEventActionParticipantJoinByRequest#afb6144a invite:ExportedChatInvite approved_by:long = ChannelAdminLogEventAction;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+invite
+ExportedChatInvite
+
+
+
+approved_by
+long
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/channelAdminLogEventActionSendMessage.html b/data/corefork.telegram.org/constructor/channelAdminLogEventActionSendMessage.html
index 0780c13516..d6e9e2c17e 100644
--- a/data/corefork.telegram.org/constructor/channelAdminLogEventActionSendMessage.html
+++ b/data/corefork.telegram.org/constructor/channelAdminLogEventActionSendMessage.html
@@ -2,12 +2,28 @@
- Page not found
+ channelAdminLogEventActionSendMessage
-
-
+
+
-
+
@@ -36,10 +52,41 @@
-
- Page not found
+
+ channelAdminLogEventActionSendMessage
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+channelAdminLogEventActionSendMessage#278f2868 message:Message = ChannelAdminLogEventAction;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+message
+Message
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/channelAdminLogEventActionToggleNoForwards.html b/data/corefork.telegram.org/constructor/channelAdminLogEventActionToggleNoForwards.html
index 0780c13516..8d6d1e269a 100644
--- a/data/corefork.telegram.org/constructor/channelAdminLogEventActionToggleNoForwards.html
+++ b/data/corefork.telegram.org/constructor/channelAdminLogEventActionToggleNoForwards.html
@@ -2,12 +2,28 @@
- Page not found
+ channelAdminLogEventActionToggleNoForwards
-
-
+
+
-
+
@@ -36,10 +52,41 @@
-
- Page not found
+
+ channelAdminLogEventActionToggleNoForwards
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+channelAdminLogEventActionToggleNoForwards#cb2ac766 new_value:Bool = ChannelAdminLogEventAction;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+new_value
+Bool
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/channelAdminLogEventsFilter.html b/data/corefork.telegram.org/constructor/channelAdminLogEventsFilter.html
index a939335a4d..295c88bdb8 100644
--- a/data/corefork.telegram.org/constructor/channelAdminLogEventsFilter.html
+++ b/data/corefork.telegram.org/constructor/channelAdminLogEventsFilter.html
@@ -148,6 +148,11 @@
flags.15?true
Invite events
+
+send
+flags.16?true
+
+
Type
diff --git a/data/corefork.telegram.org/constructor/channelFull.html b/data/corefork.telegram.org/constructor/channelFull.html
index c48a95280b..86b08b260f 100644
--- a/data/corefork.telegram.org/constructor/channelFull.html
+++ b/data/corefork.telegram.org/constructor/channelFull.html
@@ -263,6 +263,26 @@
flags.27?string
Emoji representing a specific chat theme
+
+requests_pending
+flags.28?int
+
+
+
+recent_requesters
+flags.28?Vector<long>
+
+
+
+default_send_as
+flags.29?Peer
+
+
+
+available_reactions
+flags.30?Vector<string>
+
+
Type
diff --git a/data/corefork.telegram.org/constructor/channelParticipantSelf.html b/data/corefork.telegram.org/constructor/channelParticipantSelf.html
index e012e2571b..080db722c6 100644
--- a/data/corefork.telegram.org/constructor/channelParticipantSelf.html
+++ b/data/corefork.telegram.org/constructor/channelParticipantSelf.html
@@ -64,6 +64,16 @@
+flags
+#
+Flags, see TL conditional fields
+
+
+via_request
+flags.0?true
+
+
+
user_id
long
User ID
diff --git a/data/corefork.telegram.org/constructor/channels.sendAsPeers b/data/corefork.telegram.org/constructor/channels.sendAsPeers
index 0780c13516..d79f9a6dc5 100644
--- a/data/corefork.telegram.org/constructor/channels.sendAsPeers
+++ b/data/corefork.telegram.org/constructor/channels.sendAsPeers
@@ -2,12 +2,40 @@
- Page not found
+ channels.sendAsPeers
-
-
+
+
-
+
@@ -36,10 +64,51 @@
-
- Page not found
+
+ channels.sendAsPeers
- The page has not been saved
+
diff --git a/data/corefork.telegram.org/constructor/chat.html b/data/corefork.telegram.org/constructor/chat.html
index 298eb9c449..895beb2598 100644
--- a/data/corefork.telegram.org/constructor/chat.html
+++ b/data/corefork.telegram.org/constructor/chat.html
@@ -99,6 +99,11 @@
Whether there's anyone in the group call
+noforwards
+flags.25?true
+
+
+
id
long
ID of the group
diff --git a/data/corefork.telegram.org/constructor/chatBannedRights.html b/data/corefork.telegram.org/constructor/chatBannedRights.html
index 6b9b748873..bffb28280c 100644
--- a/data/corefork.telegram.org/constructor/chatBannedRights.html
+++ b/data/corefork.telegram.org/constructor/chatBannedRights.html
@@ -53,94 +53,93 @@
chatBannedRights#9f120418 flags:# view_messages:flags.0?true send_messages:flags.1?true send_media:flags.2?true send_stickers:flags.3?true send_gifs:flags.4?true send_games:flags.5?true send_inline:flags.6?true embed_links:flags.7?true send_polls:flags.8?true change_info:flags.10?true invite_users:flags.15?true pin_messages:flags.17?true until_date:int = ChatBannedRights;
-Parameters
+Parameters
Name
-Type
+Type
Description
flags
-#
+#
Flags, see TL conditional fields
view_messages
-flags.0?true
+flags.0?true
If set, does not allow a user to view messages in a supergroup/channel/chat
send_messages
-flags.1?true
+flags.1?true
If set, does not allow a user to send messages in a supergroup/chat
send_media
-flags.2?true
+flags.2?true
If set, does not allow a user to send any media in a supergroup/chat
send_stickers
-flags.3?true
+flags.3?true
If set, does not allow a user to send stickers in a supergroup/chat
send_gifs
-flags.4?true
+flags.4?true
If set, does not allow a user to send gifs in a supergroup/chat
send_games
-flags.5?true
+flags.5?true
If set, does not allow a user to send games in a supergroup/chat
send_inline
-flags.6?true
+flags.6?true
If set, does not allow a user to use inline bots in a supergroup/chat
embed_links
-flags.7?true
+flags.7?true
If set, does not allow a user to embed links in the messages of a supergroup/chat
send_polls
-flags.8?true
+flags.8?true
If set, does not allow a user to send polls in a supergroup/chat
change_info
-flags.10?true
+flags.10?true
If set, does not allow any user to change the description of a supergroup/chat
invite_users
-flags.15?true
+flags.15?true
If set, does not allow any user to invite users in a supergroup/chat
pin_messages
-flags.17?true
+flags.17?true
If set, does not allow any user to pin messages in a supergroup/chat
until_date
-int
+int
Validity of said permissions (it is considered forever any value less then 30 seconds or more then 366 days).
-Type
+Type
-Related pages
-Channels
-How to handle channels, supergroups, groups, and what's the difference between them.
-
+Related pages
+Channels
+How to handle channels, supergroups, groups, and what's the difference between them.
diff --git a/data/corefork.telegram.org/constructor/chatFull.html b/data/corefork.telegram.org/constructor/chatFull.html
index bec3c9c54d..aa86b98d98 100644
--- a/data/corefork.telegram.org/constructor/chatFull.html
+++ b/data/corefork.telegram.org/constructor/chatFull.html
@@ -143,6 +143,21 @@
flags.16?string
Emoji representing a specific chat theme
+
+requests_pending
+flags.17?int
+
+
+
+recent_requesters
+flags.17?Vector<long>
+
+
+
+available_reactions
+flags.18?Vector<string>
+
+
Type
diff --git a/data/corefork.telegram.org/constructor/chatInvite.html b/data/corefork.telegram.org/constructor/chatInvite.html
index b680520085..75dd9baf78 100644
--- a/data/corefork.telegram.org/constructor/chatInvite.html
+++ b/data/corefork.telegram.org/constructor/chatInvite.html
@@ -89,11 +89,21 @@
Whether this is a supergroup
+request_needed
+flags.6?true
+
+
+
title
string
Chat/supergroup/channel title
+about
+flags.5?string
+
+
+
photo
Photo
Chat/supergroup/channel photo
diff --git a/data/corefork.telegram.org/constructor/chatInviteExported.html b/data/corefork.telegram.org/constructor/chatInviteExported.html
index 73c313fb20..870c088c88 100644
--- a/data/corefork.telegram.org/constructor/chatInviteExported.html
+++ b/data/corefork.telegram.org/constructor/chatInviteExported.html
@@ -79,6 +79,11 @@
Whether this chat invite has no expiration
+request_needed
+flags.6?true
+
+
+
link
string
Chat invitation link
@@ -113,6 +118,16 @@
flags.3?int
How many users joined using this link
+
+requested
+flags.7?int
+
+
+
+title
+flags.8?string
+
+
Type
diff --git a/data/corefork.telegram.org/constructor/chatInviteImporter.html b/data/corefork.telegram.org/constructor/chatInviteImporter.html
index a309a07e94..4b46226e9a 100644
--- a/data/corefork.telegram.org/constructor/chatInviteImporter.html
+++ b/data/corefork.telegram.org/constructor/chatInviteImporter.html
@@ -64,6 +64,16 @@
+flags
+#
+Flags, see TL conditional fields
+
+
+requested
+flags.0?true
+
+
+
user_id
long
The user
@@ -73,6 +83,16 @@
int
When did the user join
+
+about
+flags.2?string
+
+
+
+approved_by
+flags.1?long
+
+
Type
diff --git a/data/corefork.telegram.org/constructor/codeSettings.html b/data/corefork.telegram.org/constructor/codeSettings.html
index d69054a1f4..094bca3fa1 100644
--- a/data/corefork.telegram.org/constructor/codeSettings.html
+++ b/data/corefork.telegram.org/constructor/codeSettings.html
@@ -84,6 +84,16 @@
flags.4?true
If a token that will be included in eventually sent SMSs is required: required in newer versions of android, to use the android SMS receiver APIs
+
+allow_missed_call
+flags.5?true
+
+
+
+logout_tokens
+flags.6?Vector<bytes>
+
+
Type
diff --git a/data/corefork.telegram.org/constructor/dialog.html b/data/corefork.telegram.org/constructor/dialog.html
index 882442e054..27eac357c4 100644
--- a/data/corefork.telegram.org/constructor/dialog.html
+++ b/data/corefork.telegram.org/constructor/dialog.html
@@ -109,6 +109,11 @@
Number of unread mentions
+unread_reactions_count
+int
+
+
+
notify_settings
PeerNotifySettings
Notification settings
diff --git a/data/corefork.telegram.org/constructor/groupCall.html b/data/corefork.telegram.org/constructor/groupCall.html
index 54940b8b27..4678ea435d 100644
--- a/data/corefork.telegram.org/constructor/groupCall.html
+++ b/data/corefork.telegram.org/constructor/groupCall.html
@@ -99,6 +99,11 @@
Whether the group call is currently being recorded
+rtmp_stream
+flags.12?true
+
+
+
id
long
Group call ID
diff --git a/data/corefork.telegram.org/constructor/inputKeyboardButtonUserProfile.html b/data/corefork.telegram.org/constructor/inputKeyboardButtonUserProfile.html
index 0780c13516..63b978464d 100644
--- a/data/corefork.telegram.org/constructor/inputKeyboardButtonUserProfile.html
+++ b/data/corefork.telegram.org/constructor/inputKeyboardButtonUserProfile.html
@@ -2,12 +2,34 @@
- Page not found
+ inputKeyboardButtonUserProfile
-
-
+
+
-
+
@@ -36,10 +58,46 @@
-
- Page not found
+
+ inputKeyboardButtonUserProfile
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+inputKeyboardButtonUserProfile#e988037b text:string user_id:InputUser = KeyboardButton;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+text
+string
+
+
+
+user_id
+InputUser
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/keyboardButtonUserProfile.html b/data/corefork.telegram.org/constructor/keyboardButtonUserProfile.html
index 0780c13516..f40116fc48 100644
--- a/data/corefork.telegram.org/constructor/keyboardButtonUserProfile.html
+++ b/data/corefork.telegram.org/constructor/keyboardButtonUserProfile.html
@@ -2,12 +2,34 @@
- Page not found
+ keyboardButtonUserProfile
-
-
+
+
-
+
@@ -36,10 +58,46 @@
-
- Page not found
+
+ keyboardButtonUserProfile
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+keyboardButtonUserProfile#308660c1 text:string user_id:long = KeyboardButton;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+text
+string
+
+
+
+user_id
+long
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/message.html b/data/corefork.telegram.org/constructor/message.html
index 803b48ba9f..fcae72fd1f 100644
--- a/data/corefork.telegram.org/constructor/message.html
+++ b/data/corefork.telegram.org/constructor/message.html
@@ -114,6 +114,11 @@
Whether this message is pinned
+noforwards
+flags.26?true
+
+
+
id
int
ID of the message
@@ -199,6 +204,11 @@
Multiple media messages sent using messages.sendMultiMedia with the same grouped ID indicate an album or media group
+reactions
+flags.20?MessageReactions
+
+
+
restriction_reason
flags.22?Vector<RestrictionReason>
Contains the reason why access to this message must be restricted.
diff --git a/data/corefork.telegram.org/constructor/messageActionChatJoinedByRequest.html b/data/corefork.telegram.org/constructor/messageActionChatJoinedByRequest.html
index 0780c13516..9440a5b57c 100644
--- a/data/corefork.telegram.org/constructor/messageActionChatJoinedByRequest.html
+++ b/data/corefork.telegram.org/constructor/messageActionChatJoinedByRequest.html
@@ -2,12 +2,18 @@
- Page not found
+ messageActionChatJoinedByRequest
-
-
+
+
-
+
@@ -36,10 +42,26 @@
-
- Page not found
+
+ messageActionChatJoinedByRequest
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messageActionChatJoinedByRequest#ebbca3cb = MessageAction;
+Parameters
+This constructor does not require any parameters.
+Type
+
diff --git a/data/corefork.telegram.org/constructor/messageEntitySpoiler.html b/data/corefork.telegram.org/constructor/messageEntitySpoiler.html
index 0780c13516..52f9baeddb 100644
--- a/data/corefork.telegram.org/constructor/messageEntitySpoiler.html
+++ b/data/corefork.telegram.org/constructor/messageEntitySpoiler.html
@@ -2,12 +2,34 @@
- Page not found
+ messageEntitySpoiler
-
-
+
+
-
+
@@ -36,10 +58,46 @@
-
- Page not found
+
+ messageEntitySpoiler
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messageEntitySpoiler#32ca960f offset:int length:int = MessageEntity;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+offset
+int
+
+
+
+length
+int
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/messagePeerReaction.html b/data/corefork.telegram.org/constructor/messagePeerReaction.html
index 0780c13516..4d78931529 100644
--- a/data/corefork.telegram.org/constructor/messagePeerReaction.html
+++ b/data/corefork.telegram.org/constructor/messagePeerReaction.html
@@ -2,12 +2,38 @@
- Page not found
+ messagePeerReaction
-
-
+
+
-
+
@@ -36,10 +62,61 @@
-
- Page not found
+
+ messagePeerReaction
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messagePeerReaction#51b67eff flags:# big:flags.0?true unread:flags.1?true peer_id:Peer reaction:string = MessagePeerReaction;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+flags
+#
+Flags, see TL conditional fields
+
+
+big
+flags.0?true
+
+
+
+unread
+flags.1?true
+
+
+
+peer_id
+Peer
+
+
+
+reaction
+string
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/messageReactions.html b/data/corefork.telegram.org/constructor/messageReactions.html
index 8270c5ba16..cc6116f0a6 100644
--- a/data/corefork.telegram.org/constructor/messageReactions.html
+++ b/data/corefork.telegram.org/constructor/messageReactions.html
@@ -74,10 +74,20 @@
Similar to min objects, used for message reaction constructors that are the same for all users so they don't have the reactions sent by the current user (you can use messages.getMessagesReactions to get the full reaction info).
+can_see_list
+flags.2?true
+
+
+
results
Vector<ReactionCount>
Reactions
+
+recent_reactions
+flags.1?Vector<MessagePeerReaction>
+
+
Type
diff --git a/data/corefork.telegram.org/constructor/messageUserReaction.html b/data/corefork.telegram.org/constructor/messageUserReaction.html
new file mode 100644
index 0000000000..7aa6bcbbc9
--- /dev/null
+++ b/data/corefork.telegram.org/constructor/messageUserReaction.html
@@ -0,0 +1,152 @@
+
+
+
+
+ messageUserReaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/corefork.telegram.org/constructor/messages.availableReactions b/data/corefork.telegram.org/constructor/messages.availableReactions
index 0780c13516..1e7d1d634a 100644
--- a/data/corefork.telegram.org/constructor/messages.availableReactions
+++ b/data/corefork.telegram.org/constructor/messages.availableReactions
@@ -2,12 +2,34 @@
-
+ Page not found
+ messages.availableReactions
-
-
+
+
-
+
@@ -36,10 +58,46 @@
-
- Page not found
+
+ messages.availableReactions
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.availableReactions#768e3aad hash:int reactions:Vector<AvailableReaction> = messages.AvailableReactions;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+hash
+int
+
+
+
+reactions
+Vector<AvailableReaction>
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/messages.availableReactionsNotModified b/data/corefork.telegram.org/constructor/messages.availableReactionsNotModified
index 0780c13516..7ba65c9b47 100644
--- a/data/corefork.telegram.org/constructor/messages.availableReactionsNotModified
+++ b/data/corefork.telegram.org/constructor/messages.availableReactionsNotModified
@@ -2,12 +2,18 @@
- Page not found
+ messages.availableReactionsNotModified
-
-
+
+
-
+
@@ -36,10 +42,26 @@
-
- Page not found
+
+ messages.availableReactionsNotModified
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.availableReactionsNotModified#9f071957 = messages.AvailableReactions;
+Parameters
+This constructor does not require any parameters.
+Type
+
diff --git a/data/corefork.telegram.org/constructor/messages.messageReactionsList b/data/corefork.telegram.org/constructor/messages.messageReactionsList
index 0780c13516..b9d96a9d40 100644
--- a/data/corefork.telegram.org/constructor/messages.messageReactionsList
+++ b/data/corefork.telegram.org/constructor/messages.messageReactionsList
@@ -2,12 +2,34 @@
- Page not found
+ messages.messageReactionsList
-
-
+
+
-
+
@@ -36,10 +58,66 @@
-
- Page not found
+
+ messages.messageReactionsList
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.messageReactionsList#31bd492d flags:# count:int reactions:Vector<MessagePeerReaction> chats:Vector<Chat> users:Vector<User> next_offset:flags.0?string = messages.MessageReactionsList;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+flags
+#
+Flags, see TL conditional fields
+
+
+count
+int
+
+
+
+reactions
+Vector<MessagePeerReaction>
+
+
+
+chats
+Vector<Chat>
+
+
+
+users
+Vector<User>
+
+
+
+next_offset
+flags.0?string
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/messages.peerSettings b/data/corefork.telegram.org/constructor/messages.peerSettings
index 0780c13516..f7514b8ece 100644
--- a/data/corefork.telegram.org/constructor/messages.peerSettings
+++ b/data/corefork.telegram.org/constructor/messages.peerSettings
@@ -2,12 +2,40 @@
- Page not found
+ messages.peerSettings
-
-
+
+
-
+
@@ -36,10 +64,51 @@
-
- Page not found
+
+ messages.peerSettings
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.peerSettings#6880b94d settings:PeerSettings chats:Vector<Chat> users:Vector<User> = messages.PeerSettings;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+settings
+PeerSettings
+
+
+
+chats
+Vector<Chat>
+
+
+
+users
+Vector<User>
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/messages.searchResultsCalendar b/data/corefork.telegram.org/constructor/messages.searchResultsCalendar
index 0780c13516..85dd41c7db 100644
--- a/data/corefork.telegram.org/constructor/messages.searchResultsCalendar
+++ b/data/corefork.telegram.org/constructor/messages.searchResultsCalendar
@@ -2,12 +2,40 @@
- Page not found
+ messages.searchResultsCalendar
-
-
+
+
-
+
@@ -36,10 +64,86 @@
-
- Page not found
+
+ messages.searchResultsCalendar
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.searchResultsCalendar#147ee23c flags:# inexact:flags.0?true count:int min_date:int min_msg_id:int offset_id_offset:flags.1?int periods:Vector<SearchResultsCalendarPeriod> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.SearchResultsCalendar;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+flags
+#
+Flags, see TL conditional fields
+
+
+inexact
+flags.0?true
+
+
+
+count
+int
+
+
+
+min_date
+int
+
+
+
+min_msg_id
+int
+
+
+
+offset_id_offset
+flags.1?int
+
+
+
+periods
+Vector<SearchResultsCalendarPeriod>
+
+
+
+messages
+Vector<Message>
+
+
+
+chats
+Vector<Chat>
+
+
+
+users
+Vector<User>
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/messages.searchResultsPositions b/data/corefork.telegram.org/constructor/messages.searchResultsPositions
index 0780c13516..54b21f8ef3 100644
--- a/data/corefork.telegram.org/constructor/messages.searchResultsPositions
+++ b/data/corefork.telegram.org/constructor/messages.searchResultsPositions
@@ -2,12 +2,34 @@
- Page not found
+ messages.searchResultsPositions
-
-
+
+
-
+
@@ -36,10 +58,46 @@
-
- Page not found
+
+ messages.searchResultsPositions
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.searchResultsPositions#53b22baf count:int positions:Vector<SearchResultsPosition> = messages.SearchResultsPositions;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+count
+int
+
+
+
+positions
+Vector<SearchResultsPosition>
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/messages.stickerSetNotModified b/data/corefork.telegram.org/constructor/messages.stickerSetNotModified
index 0780c13516..44446a1920 100644
--- a/data/corefork.telegram.org/constructor/messages.stickerSetNotModified
+++ b/data/corefork.telegram.org/constructor/messages.stickerSetNotModified
@@ -2,12 +2,18 @@
- Page not found
+ messages.stickerSetNotModified
-
-
+
+
-
+
@@ -36,10 +42,26 @@
-
- Page not found
+
+ messages.stickerSetNotModified
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.stickerSetNotModified#d3f924eb = messages.StickerSet;
+Parameters
+This constructor does not require any parameters.
+Type
+
diff --git a/data/corefork.telegram.org/constructor/messages.translateNoResult b/data/corefork.telegram.org/constructor/messages.translateNoResult
index 0780c13516..685f587692 100644
--- a/data/corefork.telegram.org/constructor/messages.translateNoResult
+++ b/data/corefork.telegram.org/constructor/messages.translateNoResult
@@ -2,12 +2,18 @@
- Page not found
+ messages.translateNoResult
-
-
+
+
-
+
@@ -36,10 +42,26 @@
-
- Page not found
+
+ messages.translateNoResult
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.translateNoResult#67ca4737 = messages.TranslatedText;
+Parameters
+This constructor does not require any parameters.
+Type
+
diff --git a/data/corefork.telegram.org/constructor/messages.translateResultText b/data/corefork.telegram.org/constructor/messages.translateResultText
index 0780c13516..3bfb97d78d 100644
--- a/data/corefork.telegram.org/constructor/messages.translateResultText
+++ b/data/corefork.telegram.org/constructor/messages.translateResultText
@@ -2,12 +2,28 @@
- Page not found
+ messages.translateResultText
-
-
+
+
-
+
@@ -36,10 +52,41 @@
-
- Page not found
+
+ messages.translateResultText
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.translateResultText#a214f7d0 text:string = messages.TranslatedText;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+text
+string
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/peerSettings.html b/data/corefork.telegram.org/constructor/peerSettings.html
index f351b0babc..c4b351bdf5 100644
--- a/data/corefork.telegram.org/constructor/peerSettings.html
+++ b/data/corefork.telegram.org/constructor/peerSettings.html
@@ -109,10 +109,25 @@
Whether we can invite members to a group or channel
+request_chat_broadcast
+flags.10?true
+
+
+
geo_distance
flags.6?int
Distance in meters between us and this peer
+
+request_chat_title
+flags.9?string
+
+
+
+request_chat_date
+flags.9?int
+
+
Type
diff --git a/data/corefork.telegram.org/constructor/searchResultPosition.html b/data/corefork.telegram.org/constructor/searchResultPosition.html
index 0780c13516..3e5d9761c4 100644
--- a/data/corefork.telegram.org/constructor/searchResultPosition.html
+++ b/data/corefork.telegram.org/constructor/searchResultPosition.html
@@ -2,12 +2,40 @@
- Page not found
+ searchResultPosition
-
-
+
+
-
+
@@ -36,10 +64,51 @@
-
- Page not found
+
+ searchResultPosition
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+searchResultPosition#7f648b67 msg_id:int date:int offset:int = SearchResultsPosition;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+msg_id
+int
+
+
+
+date
+int
+
+
+
+offset
+int
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/searchResultsCalendarPeriod.html b/data/corefork.telegram.org/constructor/searchResultsCalendarPeriod.html
index 0780c13516..f3d7b39cfd 100644
--- a/data/corefork.telegram.org/constructor/searchResultsCalendarPeriod.html
+++ b/data/corefork.telegram.org/constructor/searchResultsCalendarPeriod.html
@@ -2,12 +2,46 @@
- Page not found
+ searchResultsCalendarPeriod
-
-
+
+
-
+
@@ -36,10 +70,56 @@
-
- Page not found
+
+ searchResultsCalendarPeriod
- The page has not been saved
+
diff --git a/data/corefork.telegram.org/constructor/sponsoredMessage.html b/data/corefork.telegram.org/constructor/sponsoredMessage.html
index e787c867a3..e00383de52 100644
--- a/data/corefork.telegram.org/constructor/sponsoredMessage.html
+++ b/data/corefork.telegram.org/constructor/sponsoredMessage.html
@@ -4,10 +4,10 @@
sponsoredMessage
-
+
-
+
@@ -53,56 +53,68 @@
sponsoredMessage#3a836df8 flags:# random_id:bytes from_id:flags.3?Peer chat_invite:flags.4?ChatInvite chat_invite_hash:flags.4?string channel_post:flags.2?int start_param:flags.0?string message:string entities:flags.1?Vector<MessageEntity> = SponsoredMessage;
-Parameters
+Parameters
Name
-Type
+Type
Description
flags
-#
+#
Flags, see TL conditional fields
random_id
-bytes
+bytes
Message ID
from_id
-Peer
+flags.3?Peer
ID of the sender of the message
+chat_invite
+flags.4?ChatInvite
+
+
+
+chat_invite_hash
+flags.4?string
+
+
+
+channel_post
+flags.2?int
+
+
+
start_param
-flags.0?string
+flags.0?string
Parameter for the bot start message if the sponsored chat is a chat with a bot.
message
-string
+string
Sponsored message
entities
-flags.1?Vector<MessageEntity>
+flags.1?Vector<MessageEntity>
Message entities for styled text
-Type
+Type
-Related pages
-Sponsored messages
-How to implement sponsored messages
-Styled text with message entities
-How to create styled text with message entities
-
+Related pages
+Styled text with message entities
+How to create styled text with message entities
diff --git a/data/corefork.telegram.org/constructor/stickerSet.html b/data/corefork.telegram.org/constructor/stickerSet.html
index f453513533..7f5d33b240 100644
--- a/data/corefork.telegram.org/constructor/stickerSet.html
+++ b/data/corefork.telegram.org/constructor/stickerSet.html
@@ -89,6 +89,11 @@
Is this an animated stickerpack
+videos
+flags.6?true
+
+
+
installed_date
flags.0?int
When was this stickerset installed
diff --git a/data/corefork.telegram.org/constructor/theme.html b/data/corefork.telegram.org/constructor/theme.html
index 545c1ad675..6158a34543 100644
--- a/data/corefork.telegram.org/constructor/theme.html
+++ b/data/corefork.telegram.org/constructor/theme.html
@@ -81,7 +81,7 @@
for_chat
flags.5?true
-Whether this theme is meant to be used as a chat theme
+Whether this theme is meant to be used as a chat theme
id
@@ -110,10 +110,15 @@
settings
-flags.3?ThemeSettings
+flags.3?Vector<ThemeSettings>
Theme settings
+emoticon
+flags.6?string
+
+
+
installs_count
flags.4?int
Installation count
diff --git a/data/corefork.telegram.org/constructor/updateBotChatInviteRequester.html b/data/corefork.telegram.org/constructor/updateBotChatInviteRequester.html
index 0780c13516..789bd0bd72 100644
--- a/data/corefork.telegram.org/constructor/updateBotChatInviteRequester.html
+++ b/data/corefork.telegram.org/constructor/updateBotChatInviteRequester.html
@@ -2,12 +2,52 @@
- Page not found
+ updateBotChatInviteRequester
-
-
+
+
-
+
@@ -36,10 +76,66 @@
-
- Page not found
+
+ updateBotChatInviteRequester
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+updateBotChatInviteRequester#11dfa986 peer:Peer date:int user_id:long about:string invite:ExportedChatInvite qts:int = Update;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+peer
+Peer
+
+
+
+date
+int
+
+
+
+user_id
+long
+
+
+
+about
+string
+
+
+
+invite
+ExportedChatInvite
+
+
+
+qts
+int
+
+
+
+
+Type
+
diff --git a/data/corefork.telegram.org/constructor/updatePendingJoinRequests.html b/data/corefork.telegram.org/constructor/updatePendingJoinRequests.html
index 0780c13516..33daa5a1de 100644
--- a/data/corefork.telegram.org/constructor/updatePendingJoinRequests.html
+++ b/data/corefork.telegram.org/constructor/updatePendingJoinRequests.html
@@ -2,12 +2,40 @@
- Page not found
+ updatePendingJoinRequests
-
-
+
+
-
+
@@ -36,10 +64,51 @@
-
- Page not found
+
+ updatePendingJoinRequests
- The page has not been saved
+
diff --git a/data/corefork.telegram.org/constructor/userFull.html b/data/corefork.telegram.org/constructor/userFull.html
index e6d04d9e6f..d4fb868498 100644
--- a/data/corefork.telegram.org/constructor/userFull.html
+++ b/data/corefork.telegram.org/constructor/userFull.html
@@ -99,9 +99,9 @@
Whether the user can receive video calls
-user
-User
-Remaining user info
+id
+long
+
about
@@ -153,6 +153,11 @@
flags.15?string
Emoji associated with chat theme
+
+private_forward_name
+flags.16?string
+
+
Type
diff --git a/data/corefork.telegram.org/constructor/users.userFull b/data/corefork.telegram.org/constructor/users.userFull
index 0780c13516..0bb2a14a24 100644
--- a/data/corefork.telegram.org/constructor/users.userFull
+++ b/data/corefork.telegram.org/constructor/users.userFull
@@ -2,12 +2,40 @@
- Page not found
+ users.userFull
-
-
+
+
-
+
@@ -36,10 +64,51 @@
-
- Page not found
+
+ users.userFull
- The page has not been saved
+
diff --git a/data/corefork.telegram.org/method/account.changeAuthorizationSettings b/data/corefork.telegram.org/method/account.changeAuthorizationSettings
index 17d64ffaf0..5afc64e86a 100644
--- a/data/corefork.telegram.org/method/account.changeAuthorizationSettings
+++ b/data/corefork.telegram.org/method/account.changeAuthorizationSettings
@@ -2,12 +2,34 @@
- Page not found
+ account.changeAuthorizationSettings
-
-
+
+
-
+
@@ -36,10 +58,60 @@
-
- Page not found
+
+ account.changeAuthorizationSettings
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+---functions---
+account.changeAuthorizationSettings#40f48462 flags:# hash:long encrypted_requests_disabled:flags.0?Bool call_requests_disabled:flags.1?Bool = Bool;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+flags
+#
+Flags, see TL conditional fields
+
+
+hash
+long
+
+
+
+encrypted_requests_disabled
+flags.0?Bool
+
+
+
+call_requests_disabled
+flags.1?Bool
+
+
+
+
+Result
+
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/account.changePhone b/data/corefork.telegram.org/method/account.changePhone
index 37722b2281..72ff282be4 100644
--- a/data/corefork.telegram.org/method/account.changePhone
+++ b/data/corefork.telegram.org/method/account.changePhone
@@ -102,6 +102,11 @@
400
+PHONE_CODE_EXPIRED
+The phone code you provided has expired, this may happen if it was sent to any chat on telegram (if the code is sent through a telegram chat (not the official account) to avoid it append or prepend to the code some chars).
+
+
+400
PHONE_NUMBER_INVALID
The phone number is invalid.
diff --git a/data/corefork.telegram.org/method/account.createTheme b/data/corefork.telegram.org/method/account.createTheme
index 18a88bc4da..7735ded5ae 100644
--- a/data/corefork.telegram.org/method/account.createTheme
+++ b/data/corefork.telegram.org/method/account.createTheme
@@ -87,7 +87,7 @@
settings
-flags.3?InputThemeSettings
+flags.3?Vector<InputThemeSettings>
Theme settings
diff --git a/data/corefork.telegram.org/method/account.getChatThemes b/data/corefork.telegram.org/method/account.getChatThemes
index 0d553b5f1a..2b2bd5d238 100644
--- a/data/corefork.telegram.org/method/account.getChatThemes
+++ b/data/corefork.telegram.org/method/account.getChatThemes
@@ -68,7 +68,7 @@
hash
-int
+long
Hash for pagination, for more info click here
diff --git a/data/corefork.telegram.org/method/account.installTheme b/data/corefork.telegram.org/method/account.installTheme
index 0b8df44fe4..2bb51e2c0a 100644
--- a/data/corefork.telegram.org/method/account.installTheme
+++ b/data/corefork.telegram.org/method/account.installTheme
@@ -77,15 +77,20 @@
Whether to install the dark version
-format
-flags.1?string
-Theme format, a string that identifies the theming engines supported by the client
-
-
theme
flags.1?InputTheme
Theme to install
+
+format
+flags.2?string
+Theme format, a string that identifies the theming engines supported by the client
+
+
+base_theme
+flags.3?BaseTheme
+
+
Result
diff --git a/data/corefork.telegram.org/method/account.saveAutoDownloadSettings b/data/corefork.telegram.org/method/account.saveAutoDownloadSettings
index ec64d0f2b7..8761953f8a 100644
--- a/data/corefork.telegram.org/method/account.saveAutoDownloadSettings
+++ b/data/corefork.telegram.org/method/account.saveAutoDownloadSettings
@@ -56,41 +56,40 @@
boolTrue#997275b5 = Bool;
---functions---
account.saveAutoDownloadSettings#76f36233 flags:# low:flags.0?true high:flags.1?true settings:AutoDownloadSettings = Bool;
-Parameters
+Parameters
Name
-Type
+Type
Description
flags
-#
+#
Flags, see TL conditional fields
low
-flags.0?true
+flags.0?true
Whether to save media in the low data usage preset
high
-flags.1?true
+flags.1?true
Whether to save media in the high data usage preset
settings
-AutoDownloadSettings
+AutoDownloadSettings
Media autodownload settings
-Result
-
-
+Result
+
diff --git a/data/corefork.telegram.org/method/account.setAuthorizationTTL b/data/corefork.telegram.org/method/account.setAuthorizationTTL
index 17d64ffaf0..579c583637 100644
--- a/data/corefork.telegram.org/method/account.setAuthorizationTTL
+++ b/data/corefork.telegram.org/method/account.setAuthorizationTTL
@@ -2,12 +2,30 @@
- Page not found
+ account.setAuthorizationTTL
-
-
+
+
-
+
@@ -36,10 +54,45 @@
-
- Page not found
+
+ account.setAuthorizationTTL
- The page has not been saved
+
diff --git a/data/corefork.telegram.org/method/account.updateTheme b/data/corefork.telegram.org/method/account.updateTheme
index 2e5cc50ea7..d10b175ede 100644
--- a/data/corefork.telegram.org/method/account.updateTheme
+++ b/data/corefork.telegram.org/method/account.updateTheme
@@ -97,7 +97,7 @@
settings
-flags.3?InputThemeSettings
+flags.3?Vector<InputThemeSettings>
Theme settings
diff --git a/data/corefork.telegram.org/method/auth.signIn b/data/corefork.telegram.org/method/auth.signIn
index 9d6af35ed2..6c753a9c48 100644
--- a/data/corefork.telegram.org/method/auth.signIn
+++ b/data/corefork.telegram.org/method/auth.signIn
@@ -120,6 +120,11 @@
PHONE_NUMBER_UNOCCUPIED
The code is valid but no user with the given number is registered.
+
+406
+UPDATE_APP_TO_LOGIN
+Please update to the latest version of MadelineProto to login.
+
Query example
diff --git a/data/corefork.telegram.org/method/channels.deleteParticipantHistory b/data/corefork.telegram.org/method/channels.deleteParticipantHistory
index 17d64ffaf0..f150c4e8c4 100644
--- a/data/corefork.telegram.org/method/channels.deleteParticipantHistory
+++ b/data/corefork.telegram.org/method/channels.deleteParticipantHistory
@@ -2,12 +2,36 @@
- Page not found
+ channels.deleteParticipantHistory
-
-
+
+
-
+
@@ -36,10 +60,49 @@
-
- Page not found
+
+ channels.deleteParticipantHistory
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory;
+---functions---
+channels.deleteParticipantHistory#367544db channel:InputChannel participant:InputPeer = messages.AffectedHistory;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+channel
+InputChannel
+
+
+
+participant
+InputPeer
+
+
+
+
+Result
+
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/channels.getSendAs b/data/corefork.telegram.org/method/channels.getSendAs
index 17d64ffaf0..fd202656be 100644
--- a/data/corefork.telegram.org/method/channels.getSendAs
+++ b/data/corefork.telegram.org/method/channels.getSendAs
@@ -2,12 +2,30 @@
- Page not found
+ channels.getSendAs
-
-
+
+
-
+
@@ -36,10 +54,44 @@
-
- Page not found
+
+ channels.getSendAs
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+channels.sendAsPeers#8356cda9 peers:Vector<Peer> chats:Vector<Chat> users:Vector<User> = channels.SendAsPeers;
+---functions---
+channels.getSendAs#dc770ee peer:InputPeer = channels.SendAsPeers;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+peer
+InputPeer
+
+
+
+
+Result
+
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/channels.getSponsoredMessages b/data/corefork.telegram.org/method/channels.getSponsoredMessages
index b2bdf67577..6bfb6552aa 100644
--- a/data/corefork.telegram.org/method/channels.getSponsoredMessages
+++ b/data/corefork.telegram.org/method/channels.getSponsoredMessages
@@ -55,30 +55,26 @@
messages.sponsoredMessages#65a4c7d5 messages:Vector<SponsoredMessage> chats:Vector<Chat> users:Vector<User> = messages.SponsoredMessages;
---functions---
channels.getSponsoredMessages#ec210fbf channel:InputChannel = messages.SponsoredMessages;
-Parameters
+Parameters
Name
-Type
+Type
Description
channel
-InputChannel
+InputChannel
Peer
-Result
+Result
-
-Related pages
-Sponsored messages
-How to implement sponsored messages
-
+
diff --git a/data/corefork.telegram.org/method/channels.joinChannel b/data/corefork.telegram.org/method/channels.joinChannel
index 5e58948575..6f7ccaf5ce 100644
--- a/data/corefork.telegram.org/method/channels.joinChannel
+++ b/data/corefork.telegram.org/method/channels.joinChannel
@@ -127,6 +127,11 @@
400
+INVITE_REQUEST_SENT
+
+
+
+400
MSG_ID_INVALID
Invalid message ID provided.
diff --git a/data/corefork.telegram.org/method/channels.reportSpam b/data/corefork.telegram.org/method/channels.reportSpam
index 5f5a2f128a..d96a570957 100644
--- a/data/corefork.telegram.org/method/channels.reportSpam
+++ b/data/corefork.telegram.org/method/channels.reportSpam
@@ -72,9 +72,9 @@
Supergroup
-user_id
-InputUser
-ID of the user that sent the spam messages
+participant
+InputPeer
+
id
diff --git a/data/corefork.telegram.org/method/channels.viewSponsoredMessage b/data/corefork.telegram.org/method/channels.viewSponsoredMessage
index 97127bf80f..a7d49baa13 100644
--- a/data/corefork.telegram.org/method/channels.viewSponsoredMessage
+++ b/data/corefork.telegram.org/method/channels.viewSponsoredMessage
@@ -56,31 +56,31 @@
boolTrue#997275b5 = Bool;
---functions---
channels.viewSponsoredMessage#beaedb94 channel:InputChannel random_id:bytes = Bool;
-Parameters
+Parameters
Name
-Type
+Type
Description
channel
-InputChannel
+InputChannel
Peer
random_id
-bytes
+bytes
Message ID
-Result
+Result
-Possible errors
+Possible errors
@@ -97,11 +97,8 @@
-
-Related pages
-Sponsored messages
-How to implement sponsored messages
-
+Errors
+
diff --git a/data/corefork.telegram.org/method/messages.deleteChat b/data/corefork.telegram.org/method/messages.deleteChat
index 5b24a20134..f566b8e554 100644
--- a/data/corefork.telegram.org/method/messages.deleteChat
+++ b/data/corefork.telegram.org/method/messages.deleteChat
@@ -87,6 +87,11 @@
400
+CHAT_ID_INVALID
+The provided chat id is invalid.
+
+
+400
PEER_ID_INVALID
The provided peer id is invalid.
diff --git a/data/corefork.telegram.org/method/messages.deleteHistory b/data/corefork.telegram.org/method/messages.deleteHistory
index 48a66a1d59..593ddf9735 100644
--- a/data/corefork.telegram.org/method/messages.deleteHistory
+++ b/data/corefork.telegram.org/method/messages.deleteHistory
@@ -90,6 +90,16 @@
int
Maximum ID of message to delete
+
+min_date
+flags.2?int
+
+
+
+max_date
+flags.3?int
+
+
Result
diff --git a/data/corefork.telegram.org/method/messages.editExportedChatInvite b/data/corefork.telegram.org/method/messages.editExportedChatInvite
index bd8e093c4f..a955bd7360 100644
--- a/data/corefork.telegram.org/method/messages.editExportedChatInvite
+++ b/data/corefork.telegram.org/method/messages.editExportedChatInvite
@@ -96,6 +96,16 @@
flags.1?int
Maximum number of users that can join using this link
+
+request_needed
+flags.3?Bool
+
+
+
+title
+flags.4?string
+
+
Result
diff --git a/data/corefork.telegram.org/method/messages.exportChatInvite b/data/corefork.telegram.org/method/messages.exportChatInvite
index 19c5969170..7bc744cb39 100644
--- a/data/corefork.telegram.org/method/messages.exportChatInvite
+++ b/data/corefork.telegram.org/method/messages.exportChatInvite
@@ -76,6 +76,11 @@
Legacy flag, reproducing legacy behavior of this method: if set, revokes all previous links before creating a new one. Kept for bot API BC, should not be used by modern clients.
+request_needed
+flags.3?true
+
+
+
peer
InputPeer
Chat
@@ -90,6 +95,11 @@
flags.1?int
Maximum number of users that can join using this link
+
+title
+flags.4?string
+
+
Result
diff --git a/data/corefork.telegram.org/method/messages.forwardMessages b/data/corefork.telegram.org/method/messages.forwardMessages
index 2b558b304f..8727df4f20 100644
--- a/data/corefork.telegram.org/method/messages.forwardMessages
+++ b/data/corefork.telegram.org/method/messages.forwardMessages
@@ -102,6 +102,11 @@
Whether to strip captions from media
+noforwards
+flags.14?true
+
+
+
from_peer
InputPeer
Source of messages
@@ -126,6 +131,11 @@
flags.10?int
Scheduled message date for scheduled messages
+
+send_as
+flags.13?InputPeer
+
+
Result
@@ -257,6 +267,11 @@
400
+SEND_AS_PEER_INVALID
+You can't send messages as the specified peer.
+
+
+400
SLOWMODE_MULTI_MSGS_DISABLED
Slowmode is enabled, you cannot forward multiple messages to this group.
diff --git a/data/corefork.telegram.org/method/messages.getAdminsWithInvites b/data/corefork.telegram.org/method/messages.getAdminsWithInvites
index 43c0a7bfc5..0674fba21f 100644
--- a/data/corefork.telegram.org/method/messages.getAdminsWithInvites
+++ b/data/corefork.telegram.org/method/messages.getAdminsWithInvites
@@ -73,7 +73,29 @@
Result
-
+messages.ChatAdminsWithInvites
+Possible errors
+
+
+
+Code
+Type
+Description
+
+
+
+
+400
+CHAT_ADMIN_REQUIRED
+You must be an admin in this chat to do this.
+
+
+403
+CHAT_WRITE_FORBIDDEN
+You can't write in this chat.
+
+
+
diff --git a/data/corefork.telegram.org/method/messages.getAvailableReactions b/data/corefork.telegram.org/method/messages.getAvailableReactions
index 17d64ffaf0..fa93254446 100644
--- a/data/corefork.telegram.org/method/messages.getAvailableReactions
+++ b/data/corefork.telegram.org/method/messages.getAvailableReactions
@@ -2,12 +2,30 @@
- Page not found
+ messages.getAvailableReactions
-
-
+
+
-
+
@@ -36,10 +54,45 @@
-
- Page not found
+
+ messages.getAvailableReactions
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.availableReactionsNotModified#9f071957 = messages.AvailableReactions;
+messages.availableReactions#768e3aad hash:int reactions:Vector<AvailableReaction> = messages.AvailableReactions;
+---functions---
+messages.getAvailableReactions#18dea0ac hash:int = messages.AvailableReactions;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+hash
+int
+
+
+
+
+Result
+
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/messages.getChatInviteImporters b/data/corefork.telegram.org/method/messages.getChatInviteImporters
index e684d01121..f7609d765f 100644
--- a/data/corefork.telegram.org/method/messages.getChatInviteImporters
+++ b/data/corefork.telegram.org/method/messages.getChatInviteImporters
@@ -66,16 +66,31 @@
+flags
+#
+Flags, see TL conditional fields
+
+
+requested
+flags.0?true
+
+
+
peer
InputPeer
Chat
link
-string
+flags.1?string
Invite link
+q
+flags.2?string
+
+
+
offset_date
int
Offsets for pagination, for more info click here
@@ -94,6 +109,23 @@
Result
+Possible errors
+
+
+
+Code
+Type
+Description
+
+
+
+
+400
+CHAT_ADMIN_REQUIRED
+You must be an admin in this chat to do this.
+
+
+
Related pages
Pagination in the API
How to fetch results from large lists of objects.
diff --git a/data/corefork.telegram.org/method/messages.getExportedChatInvites b/data/corefork.telegram.org/method/messages.getExportedChatInvites
index 397ac8c5e4..de67189d1f 100644
--- a/data/corefork.telegram.org/method/messages.getExportedChatInvites
+++ b/data/corefork.telegram.org/method/messages.getExportedChatInvites
@@ -104,6 +104,28 @@
Result
+Possible errors
+
+
+
+Code
+Type
+Description
+
+
+
+
+400
+ADMIN_ID_INVALID
+The specified admin ID is invalid.
+
+
+400
+CHAT_ADMIN_REQUIRED
+You must be an admin in this chat to do this.
+
+
+
Related pages
Pagination in the API
How to fetch results from large lists of objects.
diff --git a/data/corefork.telegram.org/method/messages.getOnlines b/data/corefork.telegram.org/method/messages.getOnlines
index 42a946da25..37eb283c09 100644
--- a/data/corefork.telegram.org/method/messages.getOnlines
+++ b/data/corefork.telegram.org/method/messages.getOnlines
@@ -91,6 +91,11 @@
400
+CHAT_ID_INVALID
+The provided chat id is invalid.
+
+
+400
PEER_ID_INVALID
The provided peer id is invalid.
diff --git a/data/corefork.telegram.org/method/messages.getSearchResultsCalendar b/data/corefork.telegram.org/method/messages.getSearchResultsCalendar
index 17d64ffaf0..2e33166462 100644
--- a/data/corefork.telegram.org/method/messages.getSearchResultsCalendar
+++ b/data/corefork.telegram.org/method/messages.getSearchResultsCalendar
@@ -2,12 +2,46 @@
- Page not found
+ messages.getSearchResultsCalendar
-
-
+
+
-
+
@@ -36,10 +70,59 @@
-
- Page not found
+
+ messages.getSearchResultsCalendar
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.searchResultsCalendar#147ee23c flags:# inexact:flags.0?true count:int min_date:int min_msg_id:int offset_id_offset:flags.1?int periods:Vector<SearchResultsCalendarPeriod> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.SearchResultsCalendar;
+---functions---
+messages.getSearchResultsCalendar#49f0bde9 peer:InputPeer filter:MessagesFilter offset_id:int offset_date:int = messages.SearchResultsCalendar;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+peer
+InputPeer
+
+
+
+filter
+MessagesFilter
+
+
+
+offset_id
+int
+
+
+
+offset_date
+int
+
+
+
+
+Result
+messages.SearchResultsCalendar
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/messages.getSearchResultsPositions b/data/corefork.telegram.org/method/messages.getSearchResultsPositions
index 17d64ffaf0..35758e3a95 100644
--- a/data/corefork.telegram.org/method/messages.getSearchResultsPositions
+++ b/data/corefork.telegram.org/method/messages.getSearchResultsPositions
@@ -2,12 +2,46 @@
- Page not found
+ messages.getSearchResultsPositions
-
-
+
+
-
+
@@ -36,10 +70,59 @@
-
- Page not found
+
+ messages.getSearchResultsPositions
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.searchResultsPositions#53b22baf count:int positions:Vector<SearchResultsPosition> = messages.SearchResultsPositions;
+---functions---
+messages.getSearchResultsPositions#6e9583a3 peer:InputPeer filter:MessagesFilter offset_id:int limit:int = messages.SearchResultsPositions;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+peer
+InputPeer
+
+
+
+filter
+MessagesFilter
+
+
+
+offset_id
+int
+
+
+
+limit
+int
+
+
+
+
+Result
+messages.SearchResultsPositions
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/messages.getStickerSet b/data/corefork.telegram.org/method/messages.getStickerSet
index 86e949726f..bb7fdc7fe5 100644
--- a/data/corefork.telegram.org/method/messages.getStickerSet
+++ b/data/corefork.telegram.org/method/messages.getStickerSet
@@ -71,6 +71,11 @@
InputStickerSet
Stickerset
+
+hash
+int
+
+
Result
diff --git a/data/corefork.telegram.org/method/messages.getUnreadReactions b/data/corefork.telegram.org/method/messages.getUnreadReactions
index 17d64ffaf0..9f0a9b5711 100644
--- a/data/corefork.telegram.org/method/messages.getUnreadReactions
+++ b/data/corefork.telegram.org/method/messages.getUnreadReactions
@@ -2,12 +2,52 @@
- Page not found
+ messages.getUnreadReactions
-
-
+
+
-
+
@@ -36,10 +76,72 @@
-
- Page not found
+
+ messages.getUnreadReactions
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+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#64479808 flags:# inexact:flags.1?true pts:int count: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;
+---functions---
+messages.getUnreadReactions#e85bae1a peer:InputPeer offset_id:int add_offset:int limit:int max_id:int min_id:int = messages.Messages;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+peer
+InputPeer
+
+
+
+offset_id
+int
+
+
+
+add_offset
+int
+
+
+
+limit
+int
+
+
+
+max_id
+int
+
+
+
+min_id
+int
+
+
+
+
+Result
+
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/messages.hideAllChatJoinRequests b/data/corefork.telegram.org/method/messages.hideAllChatJoinRequests
index 17d64ffaf0..f00ac2d706 100644
--- a/data/corefork.telegram.org/method/messages.hideAllChatJoinRequests
+++ b/data/corefork.telegram.org/method/messages.hideAllChatJoinRequests
@@ -2,12 +2,38 @@
- Page not found
+ messages.hideAllChatJoinRequests
-
-
+
+
-
+
@@ -36,10 +62,65 @@
-
- Page not found
+
+ messages.hideAllChatJoinRequests
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#313bc7f8 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int user_id:long message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
+updateShortChatMessage#4d6deea5 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int from_id:long chat_id:long message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+updateShortSentMessage#9015e101 flags:# out:flags.1?true id:int pts:int pts_count:int date:int media:flags.9?MessageMedia entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
+---functions---
+messages.hideAllChatJoinRequests#e085f4ea flags:# approved:flags.0?true peer:InputPeer link:flags.1?string = Updates;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+flags
+#
+Flags, see TL conditional fields
+
+
+approved
+flags.0?true
+
+
+
+peer
+InputPeer
+
+
+
+link
+flags.1?string
+
+
+
+
+Result
+
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/messages.hideChatJoinRequest b/data/corefork.telegram.org/method/messages.hideChatJoinRequest
index 17d64ffaf0..ab1f657942 100644
--- a/data/corefork.telegram.org/method/messages.hideChatJoinRequest
+++ b/data/corefork.telegram.org/method/messages.hideChatJoinRequest
@@ -2,12 +2,38 @@
- Page not found
+ messages.hideChatJoinRequest
-
-
+
+
-
+
@@ -36,10 +62,65 @@
-
- Page not found
+
+ messages.hideChatJoinRequest
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#313bc7f8 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int user_id:long message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
+updateShortChatMessage#4d6deea5 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int from_id:long chat_id:long message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+updateShortSentMessage#9015e101 flags:# out:flags.1?true id:int pts:int pts_count:int date:int media:flags.9?MessageMedia entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
+---functions---
+messages.hideChatJoinRequest#7fe7e815 flags:# approved:flags.0?true peer:InputPeer user_id:InputUser = Updates;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+flags
+#
+Flags, see TL conditional fields
+
+
+approved
+flags.0?true
+
+
+
+peer
+InputPeer
+
+
+
+user_id
+InputUser
+
+
+
+
+Result
+
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/messages.importChatInvite b/data/corefork.telegram.org/method/messages.importChatInvite
index 2d9c45b648..8de56011ba 100644
--- a/data/corefork.telegram.org/method/messages.importChatInvite
+++ b/data/corefork.telegram.org/method/messages.importChatInvite
@@ -127,6 +127,11 @@
400
+INVITE_REQUEST_SENT
+
+
+
+400
MSG_ID_INVALID
Invalid message ID provided.
diff --git a/data/corefork.telegram.org/method/messages.readReactions b/data/corefork.telegram.org/method/messages.readReactions
index 17d64ffaf0..c78b934815 100644
--- a/data/corefork.telegram.org/method/messages.readReactions
+++ b/data/corefork.telegram.org/method/messages.readReactions
@@ -2,12 +2,30 @@
- Page not found
+ messages.readReactions
-
-
+
+
-
+
@@ -36,10 +54,44 @@
-
- Page not found
+
+ messages.readReactions
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory;
+---functions---
+messages.readReactions#82e251d7 peer:InputPeer = messages.AffectedHistory;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+peer
+InputPeer
+
+
+
+
+Result
+
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/messages.saveDefaultSendAs b/data/corefork.telegram.org/method/messages.saveDefaultSendAs
index 17d64ffaf0..995e2e4f57 100644
--- a/data/corefork.telegram.org/method/messages.saveDefaultSendAs
+++ b/data/corefork.telegram.org/method/messages.saveDefaultSendAs
@@ -2,12 +2,36 @@
- Page not found
+ messages.saveDefaultSendAs
-
-
+
+
-
+
@@ -36,10 +60,50 @@
-
- Page not found
+
+ messages.saveDefaultSendAs
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+boolFalse#bc799737 = Bool;
+boolTrue#997275b5 = Bool;
+---functions---
+messages.saveDefaultSendAs#ccfddf96 peer:InputPeer send_as:InputPeer = Bool;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+peer
+InputPeer
+
+
+
+send_as
+InputPeer
+
+
+
+
+Result
+
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/messages.sendEncrypted b/data/corefork.telegram.org/method/messages.sendEncrypted
index 54956fc117..6159d0b23b 100644
--- a/data/corefork.telegram.org/method/messages.sendEncrypted
+++ b/data/corefork.telegram.org/method/messages.sendEncrypted
@@ -117,6 +117,11 @@
400
+DATA_TOO_LONG
+Data too long.
+
+
+400
ENCRYPTION_DECLINED
The secret chat was declined.
diff --git a/data/corefork.telegram.org/method/messages.sendInlineBotResult b/data/corefork.telegram.org/method/messages.sendInlineBotResult
index 20f24981c3..b112d788dd 100644
--- a/data/corefork.telegram.org/method/messages.sendInlineBotResult
+++ b/data/corefork.telegram.org/method/messages.sendInlineBotResult
@@ -126,6 +126,11 @@
flags.10?int
Scheduled message date for scheduled messages
+
+send_as
+flags.13?InputPeer
+
+
Result
diff --git a/data/corefork.telegram.org/method/messages.sendMedia b/data/corefork.telegram.org/method/messages.sendMedia
index c126186ba0..e9648ce8d1 100644
--- a/data/corefork.telegram.org/method/messages.sendMedia
+++ b/data/corefork.telegram.org/method/messages.sendMedia
@@ -92,6 +92,11 @@
Clear the draft
+noforwards
+flags.14?true
+
+
+
peer
InputPeer
Destination
@@ -131,6 +136,11 @@
flags.10?int
Scheduled message date for scheduled messages
+
+send_as
+flags.13?InputPeer
+
+
Result
@@ -391,6 +401,11 @@
There are too many scheduled messages.
+400
+SEND_AS_PEER_INVALID
+You can't send messages as the specified peer.
+
+
420
SLOWMODE_WAIT_X
Slowmode is enabled in this chat: you must wait for the specified number of seconds before sending another message to the chat.
diff --git a/data/corefork.telegram.org/method/messages.sendMessage b/data/corefork.telegram.org/method/messages.sendMessage
index f65d5614e2..5a6cc5d5dc 100644
--- a/data/corefork.telegram.org/method/messages.sendMessage
+++ b/data/corefork.telegram.org/method/messages.sendMessage
@@ -97,6 +97,11 @@
Clear the draft field
+noforwards
+flags.14?true
+
+
+
peer
InputPeer
The destination where the message will be sent
@@ -131,6 +136,11 @@
flags.10?int
Scheduled message date for scheduled messages
+
+send_as
+flags.13?InputPeer
+
+
Result
@@ -291,6 +301,11 @@
There are too many scheduled messages.
+400
+SEND_AS_PEER_INVALID
+You can't send messages as the specified peer.
+
+
420
SLOWMODE_WAIT_X
Slowmode is enabled in this chat: you must wait for the specified number of seconds before sending another message to the chat.
diff --git a/data/corefork.telegram.org/method/messages.sendMultiMedia b/data/corefork.telegram.org/method/messages.sendMultiMedia
index 8fb52a6c38..58d8e5d465 100644
--- a/data/corefork.telegram.org/method/messages.sendMultiMedia
+++ b/data/corefork.telegram.org/method/messages.sendMultiMedia
@@ -92,6 +92,11 @@
Whether to clear drafts
+noforwards
+flags.14?true
+
+
+
peer
InputPeer
The destination chat
@@ -111,6 +116,11 @@
flags.10?int
Scheduled message date for scheduled messages
+
+send_as
+flags.13?InputPeer
+
+
Result
diff --git a/data/corefork.telegram.org/method/messages.sendReaction b/data/corefork.telegram.org/method/messages.sendReaction
index 3de5238fa1..461ffabe00 100644
--- a/data/corefork.telegram.org/method/messages.sendReaction
+++ b/data/corefork.telegram.org/method/messages.sendReaction
@@ -77,6 +77,11 @@
Flags, see TL conditional fields
+big
+flags.1?true
+
+
+
peer
InputPeer
Peer
diff --git a/data/corefork.telegram.org/method/messages.setChatAvailableReactions b/data/corefork.telegram.org/method/messages.setChatAvailableReactions
index 17d64ffaf0..a269519c6b 100644
--- a/data/corefork.telegram.org/method/messages.setChatAvailableReactions
+++ b/data/corefork.telegram.org/method/messages.setChatAvailableReactions
@@ -2,12 +2,36 @@
- Page not found
+ messages.setChatAvailableReactions
-
-
+
+
-
+
@@ -36,10 +60,55 @@
-
- Page not found
+
+ messages.setChatAvailableReactions
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#313bc7f8 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int user_id:long message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
+updateShortChatMessage#4d6deea5 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int from_id:long chat_id:long message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+updateShortSentMessage#9015e101 flags:# out:flags.1?true id:int pts:int pts_count:int date:int media:flags.9?MessageMedia entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
+---functions---
+messages.setChatAvailableReactions#14050ea6 peer:InputPeer available_reactions:Vector<string> = Updates;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+peer
+InputPeer
+
+
+
+available_reactions
+Vector<string>
+
+
+
+
+Result
+
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/messages.setDefaultReaction b/data/corefork.telegram.org/method/messages.setDefaultReaction
index 17d64ffaf0..200a12e351 100644
--- a/data/corefork.telegram.org/method/messages.setDefaultReaction
+++ b/data/corefork.telegram.org/method/messages.setDefaultReaction
@@ -2,12 +2,30 @@
- Page not found
+ messages.setDefaultReaction
-
-
+
+
-
+
@@ -36,10 +54,45 @@
-
- Page not found
+
+ messages.setDefaultReaction
- The page has not been saved
+
diff --git a/data/corefork.telegram.org/method/messages.setInlineBotResults b/data/corefork.telegram.org/method/messages.setInlineBotResults
index c0a46eb1fd..707b6ccae3 100644
--- a/data/corefork.telegram.org/method/messages.setInlineBotResults
+++ b/data/corefork.telegram.org/method/messages.setInlineBotResults
@@ -251,6 +251,11 @@
The specified sticker document is invalid.
+400
+URL_INVALID
+Invalid URL provided.
+
+
403
USER_BOT_INVALID
This method can only be called by a bot.
diff --git a/data/corefork.telegram.org/method/messages.toggleNoForwards b/data/corefork.telegram.org/method/messages.toggleNoForwards
index 17d64ffaf0..e56e3c4bdc 100644
--- a/data/corefork.telegram.org/method/messages.toggleNoForwards
+++ b/data/corefork.telegram.org/method/messages.toggleNoForwards
@@ -2,12 +2,36 @@
- Page not found
+ messages.toggleNoForwards
-
-
+
+
-
+
@@ -36,10 +60,55 @@
-
- Page not found
+
+ messages.toggleNoForwards
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+updatesTooLong#e317af7e = Updates;
+updateShortMessage#313bc7f8 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int user_id:long message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
+updateShortChatMessage#4d6deea5 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int from_id:long chat_id:long message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
+updateShort#78d4dec1 update:Update date:int = Updates;
+updatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;
+updates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;
+updateShortSentMessage#9015e101 flags:# out:flags.1?true id:int pts:int pts_count:int date:int media:flags.9?MessageMedia entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;
+---functions---
+messages.toggleNoForwards#b11eafa2 peer:InputPeer enabled:Bool = Updates;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+peer
+InputPeer
+
+
+
+enabled
+Bool
+
+
+
+
+Result
+
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/messages.translateText b/data/corefork.telegram.org/method/messages.translateText
index 17d64ffaf0..a4a1518371 100644
--- a/data/corefork.telegram.org/method/messages.translateText
+++ b/data/corefork.telegram.org/method/messages.translateText
@@ -2,12 +2,36 @@
- Page not found
+ messages.translateText
-
-
+
+
-
+
@@ -36,10 +60,70 @@
-
- Page not found
+
+ messages.translateText
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.translateNoResult#67ca4737 = messages.TranslatedText;
+messages.translateResultText#a214f7d0 text:string = messages.TranslatedText;
+---functions---
+messages.translateText#24ce6dee flags:# peer:flags.0?InputPeer msg_id:flags.0?int text:flags.1?string from_lang:flags.2?string to_lang:string = messages.TranslatedText;
+Parameters
+
+
+
+Name
+Type
+Description
+
+
+
+
+flags
+#
+Flags, see TL conditional fields
+
+
+peer
+flags.0?InputPeer
+
+
+
+msg_id
+flags.0?int
+
+
+
+text
+flags.1?string
+
+
+
+from_lang
+flags.2?string
+
+
+
+to_lang
+string
+
+
+
+
+Result
+
+Bots can use this method
diff --git a/data/corefork.telegram.org/method/phone.createGroupCall b/data/corefork.telegram.org/method/phone.createGroupCall
index 4ea486ac6d..5d736a1c8b 100644
--- a/data/corefork.telegram.org/method/phone.createGroupCall
+++ b/data/corefork.telegram.org/method/phone.createGroupCall
@@ -77,6 +77,11 @@
Flags, see TL conditional fields
+rtmp_stream
+flags.2?true
+
+
+
peer
InputPeer
Associate the group call or livestream to the provided group/supergroup/channel
@@ -117,6 +122,11 @@
400
+PEER_ID_INVALID
+The provided peer id is invalid.
+
+
+400
SCHEDULE_DATE_INVALID
Invalid schedule date provided.
diff --git a/data/corefork.telegram.org/method/stickers.createStickerSet b/data/corefork.telegram.org/method/stickers.createStickerSet
index d05e9f3835..16998344e8 100644
--- a/data/corefork.telegram.org/method/stickers.createStickerSet
+++ b/data/corefork.telegram.org/method/stickers.createStickerSet
@@ -82,6 +82,11 @@
Whether this is an animated stickerset
+videos
+flags.4?true
+
+
+
user_id
InputUser
Stickerset owner
diff --git a/data/corefork.telegram.org/methods.html b/data/corefork.telegram.org/methods.html
index c7575364c9..a31c964ef4 100644
--- a/data/corefork.telegram.org/methods.html
+++ b/data/corefork.telegram.org/methods.html
@@ -39,7 +39,7 @@
Methods
- Accepting the Terms of Service
+ Accepting the Terms of Service
@@ -50,7 +50,7 @@
help.getTermsOfServiceUpdate
-Look for updates of telegram's terms of service
+Look for updates of telegram's terms of service
help.acceptTermsOfService
@@ -58,7 +58,7 @@
-Dealing with spam and ToS violations
+Dealing with spam and ToS violations
@@ -69,7 +69,7 @@
account.reportPeer
-Report a peer for violation of telegram's Terms of Service
+Report a peer for violation of telegram's Terms of Service
account.reportProfilePhoto
@@ -81,7 +81,7 @@
messages.report
-Report a message in a chat for violation of telegram's Terms of Service
+Report a message in a chat for violation of telegram's Terms of Service
messages.reportSpam
@@ -93,7 +93,7 @@
-Fetching configuration
+Fetching configuration
@@ -104,7 +104,7 @@
help.getAppChangelog
-Get changelog of current app.
Typically, an updates constructor will be returned, containing one or more updateServiceNotification updates with app-specific changelogs.
+Get changelog of current app.
Typically, an updates constructor will be returned, containing one or more updateServiceNotification updates with app-specific changelogs.
help.getAppConfig
@@ -128,7 +128,7 @@
help.getSupport
-Returns the support user for the 'ask a question' feature.
+Returns the support user for the 'ask a question' feature.
help.getSupportName
@@ -144,7 +144,7 @@
-Login via QR code
+Login via QR code
@@ -155,7 +155,7 @@
auth.exportLoginToken
-Generate a login token, for login via QR code.
The generated login token should be encoded using base64url, then shown as a tg://login?token=base64encodedtoken
URL in the QR code.
For more info, see login via QR code.
+Generate a login token, for login via QR code.
The generated login token should be encoded using base64url, then shown as a tg://login?token=base64encodedtoken
URL in the QR code.
For more info, see login via QR code.
auth.acceptLoginToken
@@ -167,7 +167,7 @@
-Miscellaneous
+Miscellaneous
@@ -202,7 +202,7 @@
-Registration/Authorization
+Registration/Authorization
@@ -265,7 +265,7 @@
auth.resetAuthorizations
-Terminates all user's authorized sessions except for the current one.
After calling this method it is necessary to reregister the current device using the method account.registerDevice
+Terminates all user's authorized sessions except for the current one.
After calling this method it is necessary to reregister the current device using the method account.registerDevice
auth.sendCode
@@ -281,7 +281,7 @@
-Working with GDPR export
+Working with GDPR export
@@ -300,7 +300,7 @@
messages.getSplitRanges
-Get message ranges for saving the user's chat history
+Get message ranges for saving the user's chat history
channels.getLeftChannels
@@ -316,7 +316,7 @@
-Working with GIFs (actually MPEG4 GIFs)
+Working with GIFs (actually MPEG4 GIFs)
@@ -339,7 +339,7 @@
-Working with Public Service Announcement and MTProxy channels
+Working with Public Service Announcement and MTProxy channels
@@ -358,7 +358,7 @@
-Working with TSF (internal use only)
+Working with TSF (internal use only)
@@ -377,7 +377,7 @@
-Working with 2FA login
+Working with 2FA login
@@ -416,7 +416,7 @@
-Working with Seamless Telegram Login
+Working with Seamless Telegram Login
@@ -447,7 +447,7 @@
-Working with VoIP calls
+Working with VoIP calls
@@ -470,7 +470,7 @@
phone.getCallConfig
-Get phone call configuration to be passed to libtgvoip's shared config
+Get phone call configuration to be passed to libtgvoip's shared config
phone.receivedCall
@@ -498,7 +498,7 @@
-Working with channels/supergroups/geogroups
+Working with channels/supergroups/geogroups
@@ -565,7 +565,7 @@
channels.getAdminedPublicChannels
-Get channels/supergroups/geogroups we're admin in. Usually called when the user exceeds the limit for owned public channels/supergroups/geogroups, and the user is given the choice to remove one of his channels/supergroups/geogroups.
+Get channels/supergroups/geogroups we're admin in. Usually called when the user exceeds the limit for owned public channels/supergroups/geogroups, and the user is given the choice to remove one of his channels/supergroups/geogroups.
channels.getChannels
@@ -577,7 +577,7 @@
channels.getGroupsForDiscussion
-Get all groups that can be used as discussion groups.
Returned legacy group chats must be first upgraded to supergroups before they can be set as a discussion group.
To set a returned supergroup as a discussion group, access to its old messages must be enabled using channels.togglePreHistoryHidden, first.
+Get all groups that can be used as discussion groups.
Returned legacy group chats must be first upgraded to supergroups before they can be set as a discussion group.
To set a returned supergroup as a discussion group, access to its old messages must be enabled using channels.togglePreHistoryHidden, first.
channels.getMessages
@@ -633,7 +633,7 @@
-Working with chats/supergroups/channels
+Working with chats/supergroups/channels
@@ -748,7 +748,7 @@
-Working with deep links
+Working with deep links
@@ -771,7 +771,7 @@
-Working with files
+Working with files
@@ -830,7 +830,7 @@
-Working with instant view pages
+Working with instant view pages
@@ -849,7 +849,7 @@
-Working with secret chats
+Working with secret chats
@@ -900,7 +900,7 @@
-Working with telegram passport
+Working with telegram passport
@@ -959,11 +959,11 @@
users.setSecureValueErrors
-Notify the user that the sent passport data contains some errors The user will not be able to re-submit their Passport data to you until the errors are fixed (the contents of the field for which you returned the error must change).
Use this if the data submitted by the user doesn't satisfy the standards your service requires for any reason. For example, if a birthday date seems invalid, a submitted document is blurry, a scan shows evidence of tampering, etc. Supply some details in the error message to make sure the user knows how to correct the issues.
+Notify the user that the sent passport data contains some errors The user will not be able to re-submit their Passport data to you until the errors are fixed (the contents of the field for which you returned the error must change).
Use this if the data submitted by the user doesn't satisfy the standards your service requires for any reason. For example, if a birthday date seems invalid, a submitted document is blurry, a scan shows evidence of tampering, etc. Supply some details in the error message to make sure the user knows how to correct the issues.
-Working with updates
+Working with updates
@@ -986,7 +986,7 @@
-Working with bot inline queries and callback buttons
+Working with bot inline queries and callback buttons
@@ -1021,7 +1021,7 @@
-Working with bots
+Working with bots
@@ -1044,7 +1044,7 @@
-Working with bots (internal bot API use)
+Working with bots (internal bot API use)
@@ -1063,11 +1063,11 @@
help.setBotUpdatesStatus
-Informs the server about the number of pending bot updates if they haven't been processed for a long time; for bots only
+Informs the server about the number of pending bot updates if they haven't been processed for a long time; for bots only
-Working with cloud themes
+Working with cloud themes
@@ -1114,7 +1114,7 @@
-Working with contacts and top peers
+Working with contacts and top peers
@@ -1161,7 +1161,7 @@
contacts.getContacts
-Returns the current user's contact list.
+Returns the current user's contact list.
contacts.getLocated
@@ -1205,7 +1205,7 @@
-Working with credit cards
+Working with credit cards
@@ -1220,7 +1220,7 @@
-Working with dialogs
+Working with dialogs
@@ -1263,7 +1263,7 @@
messages.hidePeerSettingsBar
-Should be called after the user hides the report spam/add as contact bar of a new chat, effectively prevents the user from executing the actions specified in the peer's settings.
+Should be called after the user hides the report spam/add as contact bar of a new chat, effectively prevents the user from executing the actions specified in the peer's settings.
messages.getOnlines
@@ -1283,7 +1283,7 @@
-Working with drafts
+Working with drafts
@@ -1306,7 +1306,7 @@
-Working with emoji keywords
+Working with emoji keywords
@@ -1333,7 +1333,7 @@
-Working with folders
+Working with folders
@@ -1368,7 +1368,7 @@
-Working with games
+Working with games
@@ -1395,7 +1395,7 @@
-Working with group calls & live streaming
+Working with group calls & live streaming
@@ -1482,7 +1482,7 @@
-Working with imported chats
+Working with imported chats
@@ -1497,7 +1497,7 @@
messages.startHistoryImport
-Complete the history import process, importing all messages into the chat.
To be called only after initializing the import with messages.initHistoryImport and uploading all files using messages.uploadImportedMedia.
+Complete the history import process, importing all messages into the chat.
To be called only after initializing the import with messages.initHistoryImport and uploading all files using messages.uploadImportedMedia.
messages.checkHistoryImportPeer
@@ -1513,7 +1513,7 @@
-Working with localization packs
+Working with localization packs
@@ -1544,7 +1544,7 @@
-Working with media autodownload settings
+Working with media autodownload settings
@@ -1563,7 +1563,7 @@
-Working with message threads
+Working with message threads
@@ -1590,7 +1590,7 @@
-Working with message reactions
+Working with message reactions
@@ -1613,7 +1613,7 @@
-Working with messages
+Working with messages
@@ -1644,7 +1644,7 @@
messages.getMessageEditData
-Find out if a media message's caption can be edited
+Find out if a media message's caption can be edited
messages.getMessages
@@ -1712,7 +1712,7 @@
-Working with notification settings
+Working with notification settings
@@ -1751,7 +1751,7 @@
-Working with other users
+Working with other users
@@ -1770,7 +1770,7 @@
-Working with payments
+Working with payments
@@ -1809,7 +1809,7 @@
messages.setBotPrecheckoutResults
-Once the user has confirmed their payment and shipping details, the bot receives an updateBotPrecheckoutQuery update.
Use this method to respond to such pre-checkout queries.
Note: Telegram must receive an answer within 10 seconds after the pre-checkout query was sent.
+Once the user has confirmed their payment and shipping details, the bot receives an updateBotPrecheckoutQuery update.
Use this method to respond to such pre-checkout queries.
Note: Telegram must receive an answer within 10 seconds after the pre-checkout query was sent.
payments.getPaymentReceipt
@@ -1817,7 +1817,7 @@
-Working with polls
+Working with polls
@@ -1840,7 +1840,7 @@
-Working with scheduled messages
+Working with scheduled messages
@@ -1867,7 +1867,7 @@
-Working with sensitive content (NSFW)
+Working with sensitive content (NSFW)
@@ -1886,7 +1886,7 @@
-Working with sponsored messages
+Working with sponsored messages
@@ -1905,7 +1905,7 @@
-Working with sponsored proxies
+Working with sponsored proxies
@@ -1920,7 +1920,7 @@
-Working with statistics
+Working with statistics
@@ -1939,7 +1939,7 @@
stats.getMessagePublicForwards
-Obtains a list of messages, indicating to which other public channels was a channel message forwarded.
Will return a list of messages with peer_id
equal to the public channel to which this message was forwarded.
+Obtains a list of messages, indicating to which other public channels was a channel message forwarded.
Will return a list of messages with peer_id
equal to the public channel to which this message was forwarded.
stats.getMegagroupStats
@@ -1951,7 +1951,7 @@
-Working with stickers
+Working with stickers
@@ -2066,7 +2066,7 @@
-Working with the user's account
+Working with the user's account
@@ -2085,7 +2085,7 @@
account.deleteAccount
-Delete the user's account from the telegram servers. Can be used, for example, to delete the account of a user that provided the login code, but forgot the 2FA password and no recovery method is configured.
+Delete the user's account from the telegram servers. Can be used, for example, to delete the account of a user that provided the login code, but forgot the 2FA password and no recovery method is configured.
account.getAccountTTL
@@ -2133,7 +2133,7 @@
-Working with user profile pictures
+Working with user profile pictures
@@ -2160,7 +2160,7 @@
-Working with usernames
+Working with usernames
@@ -2191,7 +2191,7 @@
-Working with wallpapers
+Working with wallpapers
@@ -2230,7 +2230,81 @@
-
+Other
+
+
+
+Name
+Description
+
+
+
+
+channels.deleteParticipantHistory
+
+
+
+account.changeAuthorizationSettings
+
+
+
+messages.toggleNoForwards
+
+
+
+messages.getAvailableReactions
+
+
+
+messages.saveDefaultSendAs
+
+
+
+messages.setDefaultReaction
+
+
+
+messages.getSearchResultsCalendar
+
+
+
+messages.hideChatJoinRequest
+
+
+
+messages.hideAllChatJoinRequests
+
+
+
+messages.translateText
+
+
+
+messages.getUnreadReactions
+
+
+
+messages.readReactions
+
+
+
+messages.setChatAvailableReactions
+
+
+
+channels.getSendAs
+
+
+
+messages.getSearchResultsPositions
+
+
+
+account.setAuthorizationTTL
+
+
+
+
diff --git a/data/corefork.telegram.org/mtproto/mtproto-transports.html b/data/corefork.telegram.org/mtproto/mtproto-transports.html
index 88d72e683a..56c94a6bbb 100644
--- a/data/corefork.telegram.org/mtproto/mtproto-transports.html
+++ b/data/corefork.telegram.org/mtproto/mtproto-transports.html
@@ -47,21 +47,22 @@ Padded…">
-Here's a list of MTProto transport protocols (see the ISO/OSI recap for a full explanation):
+Here's a list of MTProto transport protocols (see the ISO/OSI recap for a full explanation):
-The server recognizes these different protocols (and distinguishes them from HTTP, too) by the header.
Additionally, the following transport features can be used:
+The server recognizes these different protocols (and distinguishes them from HTTP, too) by the header.
+Additionally, the following transport features can be used:
Example implementations for these protocols can be seen in tdlib and MadelineProto.
-Abridged
+Abridged
The lightest protocol available.
- Overhead: Very small
@@ -77,7 +78,8 @@ OR
+-+---+----...----+
|h|len| payload +
+-+---+----...----+
-Before sending anything into the underlying socket (see transports), the client must first send 0xef
as the first byte (the server will not send 0xef
as the first byte in the first reply).
Then, payloads are wrapped in the following envelope:
+Before sending anything into the underlying socket (see transports), the client must first send 0xef
as the first byte (the server will not send 0xef
as the first byte in the first reply).
+Then, payloads are wrapped in the following envelope:
- Length: payload length, divided by four, and encoded as a single byte, only if the resulting packet length is a value between
0x01..0x7e
.
- Payload: the MTProto payload
@@ -88,7 +90,7 @@ OR
- Length: payload length, divided by four, and encoded as 3 length bytes (little endian)
- Payload: the MTProto payload
-Intermediate
+Intermediate
In case 4-byte data alignment is needed, an intermediate version of the original protocol may be used.
- Overhead: small
@@ -99,19 +101,21 @@ OR
+----+----...----+
+len.+ payload +
+----+----...----+
-Before sending anything into the underlying socket (see transports), the client must first send 0xeeeeeeee
as the first int (four bytes, the server will not send 0xeeeeeeee
as the first int in the first reply).
Then, payloads are wrapped in the following envelope:
+Before sending anything into the underlying socket (see transports), the client must first send 0xeeeeeeee
as the first int (four bytes, the server will not send 0xeeeeeeee
as the first int in the first reply).
+Then, payloads are wrapped in the following envelope:
- Length: payload length encoded as 4 length bytes (little endian)
- Payload: the MTProto payload
-Padded intermediate
+Padded intermediate
Padded version of the intermediate protocol, to use with obfuscation enabled to bypass ISP blocks.
- Overhead: small-medium
- Minimum envelope length: random
- Maximum envelope length: random
-Before sending anything into the underlying socket (see transports), the client must first send 0xdddddddd
as the first int (four bytes, the server will not send 0xdddddddd
as the first int in the first reply).
Then, payloads are wrapped in the following envelope:
+Before sending anything into the underlying socket (see transports), the client must first send 0xdddddddd
as the first int (four bytes, the server will not send 0xdddddddd
as the first int in the first reply).
+Then, payloads are wrapped in the following envelope:
+----+----...----+----...----+
|tlen| payload | padding |
+----+----...----+----...----+
@@ -121,7 +125,7 @@ OR
Payload: the MTProto payload
Padding: A random padding string of length 0-15
-Full
+Full
The basic MTProto transport protocol
- Overhead: medium
@@ -139,32 +143,42 @@ OR
- payload: MTProto payload
- crc: 4 CRC32 bytes computed using length, sequence number, and payload together.
-Transport features
+Transport features
Additionally, the following transport features can be used:
-Quick ack
-These MTProto transport protocols have support for quick acknowledgment.
In this case, the client sets the highest-order length bit in the query packet, and the server responds with a special 4 bytes as a separate packet.
They are the 32 higher-order bits of SHA256 of the encrypted portion of the packet prepended by 32 bytes from the authorization key (the same hash as computed for verifying the message key), with the most significant bit set to make clear that this is not the length of a regular server response packet; if the abridged version is used, bswap is applied to these four bytes.
-Transport errors
+Quick ack
+These MTProto transport protocols have support for quick acknowledgment.
+In this case, the client sets the highest-order length bit in the query packet, and the server responds with a special 4 bytes as a separate packet.
+They are the 32 higher-order bits of SHA256 of the encrypted portion of the packet prepended by 32 bytes from the authorization key (the same hash as computed for verifying the message key), with the most significant bit set to make clear that this is not the length of a regular server response packet; if the abridged version is used, bswap is applied to these four bytes.
+Transport errors
In the event of a transport error (missing auth key, transport flood, etc.), the server may send a packet with a signed little-endian number of 4 bytes, whose absolute value contains the error code (the error itself is actually negative).
For example, error Code 403 corresponds to situations where the corresponding HTTP error would have been returned by the HTTP protocol.
Error 404 (auth key not found) is returned when the specified auth key ID cannot be found by the DC.
Error 429 (transport flood) is returned when too many transport connections are established to the same IP in a too short lapse of time, or if any of the container/service message limits are reached.
Error 444 (invalid DC) is returned while creating an auth key, connecting to an MTProxy or in other contexts if an invalid DC ID is specified.
-Transport obfuscation
+Transport obfuscation
Transport obfuscation is required to use the websocket transports.
Transport obfuscation to prevent ISP blocks is implemented using the following protocol, situated under the MTProto transport in the ISO/OSI stack, see the recap; this means that the payload is first wrapped in the MTProto transport envelope (all transports are supported), and then obfuscated:
-Prior to establishing the connection (and eventually sending the protocol header of a specific MTProto transport), a 64-byte (512-bit) random initialization payload is generated.
During the generation process, special care must be taken in order to avoid a situation where that the first int (first four bytes) of the random string are equal to one of the known protocol identifiers (see above).
In particular, the first four bytes must not be equal to 0xdddddddd
(padded intermediate), 0xeeeeeeee
(intermediate), POST
, GET
, HEAD
, or any of the HTTP methods that are accepted by the MTProto servers.
The first byte must also not be equal to 0xef
(abridged).
Bytes 4-8
must also not be equal to 0x00000000
, since that would indicate use of the full transport with the initial TCP sequence number (0).
+Prior to establishing the connection (and eventually sending the protocol header of a specific MTProto transport), a 64-byte (512-bit) random initialization payload is generated.
+During the generation process, special care must be taken in order to avoid a situation where that the first int (first four bytes) of the random string are equal to one of the known protocol identifiers (see above).
+In particular, the first four bytes must not be equal to 0xdddddddd
(padded intermediate), 0xeeeeeeee
(intermediate), POST
, GET
, HEAD
, or any of the HTTP methods that are accepted by the MTProto servers.
+The first byte must also not be equal to 0xef
(abridged).
+Bytes 4-8
must also not be equal to 0x00000000
, since that would indicate use of the full transport with the initial TCP sequence number (0).
The protocol identifier, if present, must be inserted in the initialization payload at byte offset 56
: if its length is less than 4, it must be padded using the protocol identifier itself, to make its length 4 (0xef
=> 0xefefefef
): the standalone protocol identifier must be not be sent aftwerwards.
-This protocol is also (but not exclusively) used when connecting to MTProxies: only in this case, the DC ID in a specially encoded form must also be inserted in the initialization payload at offset 60
.
The encoding simply consist of the DC ID in two-byte signed little-endian form; 10000
has to be added to the DC ID to connect to the test servers; it has to be made negative if the DC we're connecting to is a media (not CDN) DC.
+This protocol is also (but not exclusively) used when connecting to MTProxies: only in this case, the DC ID in a specially encoded form must also be inserted in the initialization payload at offset 60
.
+The encoding simply consist of the DC ID in two-byte signed little-endian form; 10000
has to be added to the DC ID to connect to the test servers; it has to be made negative if the DC we're connecting to is a media (not CDN) DC.
Next, a secondary initialization payload is generated by reversing the primary initialization payload.
Two keys are extracted from both initialization payloads, using bytes at offsets 8-40
: the key extracted from the primary payload is used as encryption key, the key extracted from the secondary payload is used as decryption key.
Two IVs are extracted from both initialization payloads, using bytes at offsets 40-56
: the IV extracted from the primary payload is used as encryption IV, the IV extracted from the secondary payload is used as decryption IV.
-Only if using MTProxy, the secret is used to provide connection with the MTProxy server.
The secret is a 16-byte string, usually distributed in its hexadecimal form along with the MTProxy host and port.
-Often, a 17-byte version of the secret can be found: this simply indicates that the client should use a specific MTProto transport (based on the first byte, usually it's 0xdd
, to indicate that the padded intermediate protocol should be used 0xdddddddd
; however, clients should default to the padded intermediate transport whenever an additional byte in the secret is encountered).
-The extracted encryption and decryption keys must be concatenated with the secret (the first byte of which should be ignored if it's the 17-byte version), and the SHA256 hash of such string should be used as encryption/decryption key.
+Only if using MTProxy, the secret is used to provide connection with the MTProxy server.
+The secret is a 16-byte string, usually distributed in its hexadecimal form along with the MTProxy host and port.
+Often, a 17-byte version of the secret can be found: this simply indicates that the client should use a specific MTProto transport (based on the first byte, usually it's 0xdd
, to indicate that the padded intermediate protocol should be used 0xdddddddd
; however, clients should default to the padded intermediate transport whenever an additional byte in the secret is encountered).
+The extracted encryption and decryption keys must be concatenated with the secret (the first byte of which should be ignored if it's the 17-byte version), and the SHA256 hash of such string should be used as encryption/decryption key.
The obtained encryption and decryption key/IV pairs must then be used with AES-256-CTR to encrypt and decrypt all outgoing and incoming payloads.
-The first thing that must be encrypted using the encryption key is the initialization payload itself.
Then bytes 56-64
of the encrypted initialization payload are substituted in the original initialization payload: this is the part that contains the constant MTProto transport protocol identifier and the DC ID (only for MTProxies).
+The first thing that must be encrypted using the encryption key is the initialization payload itself.
+Then bytes 56-64
of the encrypted initialization payload are substituted in the original initialization payload: this is the part that contains the constant MTProto transport protocol identifier and the DC ID (only for MTProxies).
The final initialization payload must then be sent in the socket as first 64 bytes after the TCP handshake.
-Example pseudocode for the generation of an MTProxy connection payload (media DC 4) using the obfuscated padded intermediate transport.
Warning: do not use the specified proxy secret in any MTProxy exposed on the internet.
+Example pseudocode for the generation of an MTProxy connection payload (media DC 4) using the obfuscated padded intermediate transport.
+Warning: do not use the specified proxy secret in any MTProxy exposed on the internet.
protocol := 0xdddddddd
dc := 0xfcff
@@ -201,8 +215,7 @@ encryptedInit := CTR(encryptKey, encryptIV, init)
finalInit := substr(init, 0, 56) + substr(encryptedInit, 56, 8)
-write(finalInit)
-
+write(finalInit)
diff --git a/data/corefork.telegram.org/type/AvailableReaction.html b/data/corefork.telegram.org/type/AvailableReaction.html
index 0780c13516..ed847c1a35 100644
--- a/data/corefork.telegram.org/type/AvailableReaction.html
+++ b/data/corefork.telegram.org/type/AvailableReaction.html
@@ -2,12 +2,20 @@
- Page not found
+ AvailableReaction
-
-
+
+
-
+
@@ -36,10 +44,37 @@
-
- Page not found
+
+ AvailableReaction
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+availableReaction#c077ec01 flags:# inactive:flags.0?true reaction:string title:string static_icon:Document appear_animation:Document select_animation:Document activate_animation:Document effect_animation:Document around_animation:flags.1?Document center_icon:flags.1?Document = AvailableReaction;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+availableReaction
+
+
+
+
diff --git a/data/corefork.telegram.org/type/Bool.html b/data/corefork.telegram.org/type/Bool.html
index 5588014a09..f81b4fc573 100644
--- a/data/corefork.telegram.org/type/Bool.html
+++ b/data/corefork.telegram.org/type/Bool.html
@@ -209,10 +209,6 @@
-auth.logOut
-Logs out the user.
-
-
auth.resetAuthorizations
Terminates all user's authorized sessions except for the current one.
After calling this method it is necessary to reregister the current device using the method account.registerDevice
@@ -644,6 +640,22 @@
channels.viewSponsoredMessage
Mark a specific sponsored message as read
+
+messages.saveDefaultSendAs
+
+
+
+account.setAuthorizationTTL
+
+
+
+account.changeAuthorizationSettings
+
+
+
+messages.setDefaultReaction
+
+
diff --git a/data/corefork.telegram.org/type/ChannelAdminLogEventAction.html b/data/corefork.telegram.org/type/ChannelAdminLogEventAction.html
index 4aad102c44..33b596ef80 100644
--- a/data/corefork.telegram.org/type/ChannelAdminLogEventAction.html
+++ b/data/corefork.telegram.org/type/ChannelAdminLogEventAction.html
@@ -225,6 +225,22 @@
channelAdminLogEventActionChangeHistoryTTL
The Time-To-Live of messages in this chat was changed
+
+channelAdminLogEventActionParticipantJoinByRequest
+
+
+
+channelAdminLogEventActionToggleNoForwards
+
+
+
+channelAdminLogEventActionSendMessage
+
+
+
+channelAdminLogEventActionChangeAvailableReactions
+
+
diff --git a/data/corefork.telegram.org/type/ChatTheme.html b/data/corefork.telegram.org/type/ChatTheme.html
index 8dca54ecc3..50291e9445 100644
--- a/data/corefork.telegram.org/type/ChatTheme.html
+++ b/data/corefork.telegram.org/type/ChatTheme.html
@@ -52,22 +52,7 @@
-
-Constructors
-
-
-
-Constructor
-Description
-
-
-
-
-chatTheme
-A chat theme
-
-
-
+
diff --git a/data/corefork.telegram.org/type/KeyboardButton.html b/data/corefork.telegram.org/type/KeyboardButton.html
index c1f83d7626..41c52fba0e 100644
--- a/data/corefork.telegram.org/type/KeyboardButton.html
+++ b/data/corefork.telegram.org/type/KeyboardButton.html
@@ -118,6 +118,14 @@
keyboardButtonRequestPoll
A button that allows the user to create and send a poll when pressed; available only in private
+
+inputKeyboardButtonUserProfile
+
+
+
+keyboardButtonUserProfile
+
+
diff --git a/data/corefork.telegram.org/type/MessageAction.html b/data/corefork.telegram.org/type/MessageAction.html
index be54e707e1..cc9812317c 100644
--- a/data/corefork.telegram.org/type/MessageAction.html
+++ b/data/corefork.telegram.org/type/MessageAction.html
@@ -207,6 +207,10 @@
messageActionSetChatTheme
The chat theme was changed
+
+messageActionChatJoinedByRequest
+
+
diff --git a/data/corefork.telegram.org/type/MessageEntity.html b/data/corefork.telegram.org/type/MessageEntity.html
index 1f98f925d6..d959b509fa 100644
--- a/data/corefork.telegram.org/type/MessageEntity.html
+++ b/data/corefork.telegram.org/type/MessageEntity.html
@@ -157,6 +157,10 @@
messageEntityBankCard
Indicates a credit card number
+
+messageEntitySpoiler
+
+
diff --git a/data/corefork.telegram.org/type/MessagePeerReaction.html b/data/corefork.telegram.org/type/MessagePeerReaction.html
index 0780c13516..4b420cc127 100644
--- a/data/corefork.telegram.org/type/MessagePeerReaction.html
+++ b/data/corefork.telegram.org/type/MessagePeerReaction.html
@@ -2,12 +2,20 @@
- Page not found
+ MessagePeerReaction
-
-
+
+
-
+
@@ -36,10 +44,37 @@
-
- Page not found
+
+ MessagePeerReaction
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messagePeerReaction#51b67eff flags:# big:flags.0?true unread:flags.1?true peer_id:Peer reaction:string = MessagePeerReaction;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+messagePeerReaction
+
+
+
+
diff --git a/data/corefork.telegram.org/type/MessageReactions.html b/data/corefork.telegram.org/type/MessageReactions.html
index f8aad62c31..0a5825e491 100644
--- a/data/corefork.telegram.org/type/MessageReactions.html
+++ b/data/corefork.telegram.org/type/MessageReactions.html
@@ -52,7 +52,22 @@
-messageReactions#4f2b9479 flags:# min:flags.0?true can_see_list:flags.2?true results:Vector<ReactionCount> recent_reactions:flags.1?Vector<MessagePeerReaction> = MessageReactions;
+messageReactions#4f2b9479 flags:# min:flags.0?true can_see_list:flags.2?true results:Vector<ReactionCount> recent_reactions:flags.1?Vector<MessagePeerReaction> = MessageReactions;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+messageReactions
+Message reactions
+
+
+
diff --git a/data/corefork.telegram.org/type/MessageUserReaction.html b/data/corefork.telegram.org/type/MessageUserReaction.html
new file mode 100644
index 0000000000..790d8f5ecb
--- /dev/null
+++ b/data/corefork.telegram.org/type/MessageUserReaction.html
@@ -0,0 +1,128 @@
+
+
+
+
+ MessageUserReaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/corefork.telegram.org/type/PeerSettings.html b/data/corefork.telegram.org/type/PeerSettings.html
index fec0facaca..aa54912b35 100644
--- a/data/corefork.telegram.org/type/PeerSettings.html
+++ b/data/corefork.telegram.org/type/PeerSettings.html
@@ -67,21 +67,6 @@
+ Peer settings
-
-Methods
-
-
-
-Method
-Description
-
-
-
-
-messages.getPeerSettings
-Get peer settings
-
-
diff --git a/data/corefork.telegram.org/type/ReactionCount.html b/data/corefork.telegram.org/type/ReactionCount.html
index c0bb0e7e1d..346be39808 100644
--- a/data/corefork.telegram.org/type/ReactionCount.html
+++ b/data/corefork.telegram.org/type/ReactionCount.html
@@ -52,7 +52,22 @@
-reactionCount#6fb250d1 flags:# chosen:flags.0?true reaction:string count:int = ReactionCount;
+reactionCount#6fb250d1 flags:# chosen:flags.0?true reaction:string count:int = ReactionCount;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+reactionCount
+Reactions
+
+
+
diff --git a/data/corefork.telegram.org/type/SearchResultsCalendarPeriod.html b/data/corefork.telegram.org/type/SearchResultsCalendarPeriod.html
index 0780c13516..36d8a21d10 100644
--- a/data/corefork.telegram.org/type/SearchResultsCalendarPeriod.html
+++ b/data/corefork.telegram.org/type/SearchResultsCalendarPeriod.html
@@ -2,12 +2,20 @@
- Page not found
+ SearchResultsCalendarPeriod
-
-
+
+
-
+
@@ -36,10 +44,37 @@
-
- Page not found
+
+ SearchResultsCalendarPeriod
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+searchResultsCalendarPeriod#c9b0539f date:int min_msg_id:int max_msg_id:int count:int = SearchResultsCalendarPeriod;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+searchResultsCalendarPeriod
+
+
+
+
diff --git a/data/corefork.telegram.org/type/SearchResultsPosition.html b/data/corefork.telegram.org/type/SearchResultsPosition.html
index 0780c13516..35c119b564 100644
--- a/data/corefork.telegram.org/type/SearchResultsPosition.html
+++ b/data/corefork.telegram.org/type/SearchResultsPosition.html
@@ -2,12 +2,20 @@
- Page not found
+ SearchResultsPosition
-
-
+
+
-
+
@@ -36,10 +44,37 @@
-
- Page not found
+
+ SearchResultsPosition
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+searchResultPosition#7f648b67 msg_id:int date:int offset:int = SearchResultsPosition;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+searchResultPosition
+
+
+
+
diff --git a/data/corefork.telegram.org/type/Update.html b/data/corefork.telegram.org/type/Update.html
index ee56835e88..271836de13 100644
--- a/data/corefork.telegram.org/type/Update.html
+++ b/data/corefork.telegram.org/type/Update.html
@@ -529,6 +529,18 @@
updateBotCommands
The command set of a certain bot in a certain chat has changed.
+
+updatePendingJoinRequests
+
+
+
+updateBotChatInviteRequester
+
+
+
+updateMessageReactions
+New message reactions are available
+
diff --git a/data/corefork.telegram.org/type/Updates.html b/data/corefork.telegram.org/type/Updates.html
index e6271b3738..89f5a0adc2 100644
--- a/data/corefork.telegram.org/type/Updates.html
+++ b/data/corefork.telegram.org/type/Updates.html
@@ -437,6 +437,30 @@
messages.setChatTheme
Change the chat theme of a certain chat
+
+messages.hideChatJoinRequest
+
+
+
+messages.hideAllChatJoinRequests
+
+
+
+messages.toggleNoForwards
+
+
+
+messages.sendReaction
+Send reaction to message
+
+
+messages.getMessagesReactions
+Get message reactions
+
+
+messages.setChatAvailableReactions
+
+
diff --git a/data/corefork.telegram.org/type/UserFull.html b/data/corefork.telegram.org/type/UserFull.html
index b443b0b2c2..e016e5c87e 100644
--- a/data/corefork.telegram.org/type/UserFull.html
+++ b/data/corefork.telegram.org/type/UserFull.html
@@ -67,21 +67,6 @@
Extended user info
-
-Methods
-
-
-
-Method
-Description
-
-
-
-
-users.getFullUser
-Returns extended user info by ID.
-
-
diff --git a/data/corefork.telegram.org/type/account.ChatThemes b/data/corefork.telegram.org/type/account.ChatThemes
index 4e9c81d0f3..253aa2b11d 100644
--- a/data/corefork.telegram.org/type/account.ChatThemes
+++ b/data/corefork.telegram.org/type/account.ChatThemes
@@ -52,41 +52,7 @@
-
-Constructors
-
-
-
-Constructor
-Description
-
-
-
-
-account.chatThemesNotModified
-The available chat themes were not modified
-
-
-account.chatThemes
-Available chat themes
-
-
-
-Methods
-
-
-
-Method
-Description
-
-
-
-
-account.getChatThemes
-Get all available chat themes
-
-
-
+
diff --git a/data/corefork.telegram.org/type/account.Themes b/data/corefork.telegram.org/type/account.Themes
index 7eaadbae69..9b4a2859dd 100644
--- a/data/corefork.telegram.org/type/account.Themes
+++ b/data/corefork.telegram.org/type/account.Themes
@@ -91,6 +91,10 @@
account.getThemes
Get installed themes
+
+account.getChatThemes
+Get all available chat themes
+
diff --git a/data/corefork.telegram.org/type/auth.CodeType b/data/corefork.telegram.org/type/auth.CodeType
index d345b6e070..eaa6922d89 100644
--- a/data/corefork.telegram.org/type/auth.CodeType
+++ b/data/corefork.telegram.org/type/auth.CodeType
@@ -77,6 +77,10 @@
auth.codeTypeFlashCall
Type of verification code that will be sent next if you call the resendCode method: SMS code
+
+auth.codeTypeMissedCall
+
+
diff --git a/data/corefork.telegram.org/type/auth.LoggedOut b/data/corefork.telegram.org/type/auth.LoggedOut
index 0780c13516..588fc9a10a 100644
--- a/data/corefork.telegram.org/type/auth.LoggedOut
+++ b/data/corefork.telegram.org/type/auth.LoggedOut
@@ -2,12 +2,30 @@
- Page not found
+ auth.LoggedOut
-
-
+
+
-
+
@@ -36,10 +54,56 @@
-
- Page not found
+
+ auth.LoggedOut
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+auth.loggedOut#c3a2835f flags:# future_auth_token:flags.0?bytes = auth.LoggedOut;
+
+---functions---
+
+auth.logOut#3e72ba19 = auth.LoggedOut;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+auth.loggedOut
+
+
+
+
+Methods
+
+
+
+Method
+Description
+
+
+
+
+auth.logOut
+Logs out the user.
+
+
+
diff --git a/data/corefork.telegram.org/type/auth.SentCodeType b/data/corefork.telegram.org/type/auth.SentCodeType
index 8878b72279..e26a05f07f 100644
--- a/data/corefork.telegram.org/type/auth.SentCodeType
+++ b/data/corefork.telegram.org/type/auth.SentCodeType
@@ -82,6 +82,10 @@
auth.sentCodeTypeFlashCall
The code will be sent via a flash phone call, that will be closed immediately. The phone code will then be the phone number itself, just make sure that the phone number matches the specified pattern.
+
+auth.sentCodeTypeMissedCall
+
+
diff --git a/data/corefork.telegram.org/type/channels.SendAsPeers b/data/corefork.telegram.org/type/channels.SendAsPeers
index 0780c13516..616ea40a7d 100644
--- a/data/corefork.telegram.org/type/channels.SendAsPeers
+++ b/data/corefork.telegram.org/type/channels.SendAsPeers
@@ -2,12 +2,30 @@
- Page not found
+ channels.SendAsPeers
-
-
+
+
-
+
@@ -36,10 +54,56 @@
-
- Page not found
+
+ channels.SendAsPeers
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+channels.sendAsPeers#8356cda9 peers:Vector<Peer> chats:Vector<Chat> users:Vector<User> = channels.SendAsPeers;
+
+---functions---
+
+channels.getSendAs#dc770ee peer:InputPeer = channels.SendAsPeers;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+channels.sendAsPeers
+
+
+
+
+Methods
+
+
+
+Method
+Description
+
+
+
+
+channels.getSendAs
+
+
+
+
diff --git a/data/corefork.telegram.org/type/messages.AffectedHistory b/data/corefork.telegram.org/type/messages.AffectedHistory
index 65743b3d4a..0d7e08b1e9 100644
--- a/data/corefork.telegram.org/type/messages.AffectedHistory
+++ b/data/corefork.telegram.org/type/messages.AffectedHistory
@@ -91,10 +91,6 @@
Deletes communication history.
-channels.deleteUserHistory
-Delete all messages sent by a certain user in a supergroup
-
-
messages.readMentions
Mark mentions as read
@@ -102,6 +98,14 @@
messages.unpinAllMessages
Unpin all pinned messages
+
+channels.deleteParticipantHistory
+
+
+
+messages.readReactions
+
+
diff --git a/data/corefork.telegram.org/type/messages.AvailableReactions b/data/corefork.telegram.org/type/messages.AvailableReactions
index 0780c13516..0a6dd16925 100644
--- a/data/corefork.telegram.org/type/messages.AvailableReactions
+++ b/data/corefork.telegram.org/type/messages.AvailableReactions
@@ -2,12 +2,28 @@
- Page not found
+ messages.AvailableReactions
-
-
+
+
-
+
@@ -36,10 +52,61 @@
-
- Page not found
+
+ messages.AvailableReactions
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.availableReactionsNotModified#9f071957 = messages.AvailableReactions;
+messages.availableReactions#768e3aad hash:int reactions:Vector<AvailableReaction> = messages.AvailableReactions;
+
+---functions---
+
+messages.getAvailableReactions#18dea0ac hash:int = messages.AvailableReactions;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+messages.availableReactionsNotModified
+
+
+
+messages.availableReactions
+
+
+
+
+Methods
+
+
+
+Method
+Description
+
+
+
+
+messages.getAvailableReactions
+
+
+
+
diff --git a/data/corefork.telegram.org/type/messages.MessageReactionsList b/data/corefork.telegram.org/type/messages.MessageReactionsList
index 0780c13516..7d8ed1dc46 100644
--- a/data/corefork.telegram.org/type/messages.MessageReactionsList
+++ b/data/corefork.telegram.org/type/messages.MessageReactionsList
@@ -2,12 +2,28 @@
- Page not found
+ messages.MessageReactionsList
-
-
+
+
-
+
@@ -36,10 +52,56 @@
-
- Page not found
+
+ messages.MessageReactionsList
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.messageReactionsList#31bd492d flags:# count:int reactions:Vector<MessagePeerReaction> chats:Vector<Chat> users:Vector<User> next_offset:flags.0?string = messages.MessageReactionsList;
+
+---functions---
+
+messages.getMessageReactionsList#e0ee6b77 flags:# peer:InputPeer id:int reaction:flags.0?string offset:flags.1?string limit:int = messages.MessageReactionsList;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+messages.messageReactionsList
+
+
+
+
+Methods
+
+
+
+Method
+Description
+
+
+
+
+messages.getMessageReactionsList
+Get full message reaction list
+
+
+
diff --git a/data/corefork.telegram.org/type/messages.Messages b/data/corefork.telegram.org/type/messages.Messages
index cac1bab863..33250363fa 100644
--- a/data/corefork.telegram.org/type/messages.Messages
+++ b/data/corefork.telegram.org/type/messages.Messages
@@ -153,6 +153,10 @@
stats.getMessagePublicForwards
Obtains a list of messages, indicating to which other public channels was a channel message forwarded.
+
+messages.getUnreadReactions
+
+
diff --git a/data/corefork.telegram.org/type/messages.PeerSettings b/data/corefork.telegram.org/type/messages.PeerSettings
index 0780c13516..ef376e9949 100644
--- a/data/corefork.telegram.org/type/messages.PeerSettings
+++ b/data/corefork.telegram.org/type/messages.PeerSettings
@@ -2,12 +2,30 @@
- Page not found
+ messages.PeerSettings
-
-
+
+
-
+
@@ -36,10 +54,56 @@
-
- Page not found
+
+ messages.PeerSettings
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.peerSettings#6880b94d settings:PeerSettings chats:Vector<Chat> users:Vector<User> = messages.PeerSettings;
+
+---functions---
+
+messages.getPeerSettings#efd9a6a2 peer:InputPeer = messages.PeerSettings;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+messages.peerSettings
+
+
+
+
+Methods
+
+
+
+Method
+Description
+
+
+
+
+messages.getPeerSettings
+Get peer settings
+
+
+
diff --git a/data/corefork.telegram.org/type/messages.SearchResultsCalendar b/data/corefork.telegram.org/type/messages.SearchResultsCalendar
index 0780c13516..e8034627ff 100644
--- a/data/corefork.telegram.org/type/messages.SearchResultsCalendar
+++ b/data/corefork.telegram.org/type/messages.SearchResultsCalendar
@@ -2,12 +2,28 @@
- Page not found
+ messages.SearchResultsCalendar
-
-
+
+
-
+
@@ -36,10 +52,56 @@
-
- Page not found
+
+ messages.SearchResultsCalendar
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.searchResultsCalendar#147ee23c flags:# inexact:flags.0?true count:int min_date:int min_msg_id:int offset_id_offset:flags.1?int periods:Vector<SearchResultsCalendarPeriod> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.SearchResultsCalendar;
+
+---functions---
+
+messages.getSearchResultsCalendar#49f0bde9 peer:InputPeer filter:MessagesFilter offset_id:int offset_date:int = messages.SearchResultsCalendar;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+messages.searchResultsCalendar
+
+
+
+
+Methods
+
+
+
+Method
+Description
+
+
+
+
+messages.getSearchResultsCalendar
+
+
+
+
diff --git a/data/corefork.telegram.org/type/messages.SearchResultsPositions b/data/corefork.telegram.org/type/messages.SearchResultsPositions
index 0780c13516..70177cacea 100644
--- a/data/corefork.telegram.org/type/messages.SearchResultsPositions
+++ b/data/corefork.telegram.org/type/messages.SearchResultsPositions
@@ -2,12 +2,28 @@
- Page not found
+ messages.SearchResultsPositions
-
-
+
+
-
+
@@ -36,10 +52,56 @@
-
- Page not found
+
+ messages.SearchResultsPositions
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.searchResultsPositions#53b22baf count:int positions:Vector<SearchResultsPosition> = messages.SearchResultsPositions;
+
+---functions---
+
+messages.getSearchResultsPositions#6e9583a3 peer:InputPeer filter:MessagesFilter offset_id:int limit:int = messages.SearchResultsPositions;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+messages.searchResultsPositions
+
+
+
+
+Methods
+
+
+
+Method
+Description
+
+
+
+
+messages.getSearchResultsPositions
+
+
+
+
diff --git a/data/corefork.telegram.org/type/messages.SponsoredMessages b/data/corefork.telegram.org/type/messages.SponsoredMessages
index 23c3f7563e..a2bcd084fe 100644
--- a/data/corefork.telegram.org/type/messages.SponsoredMessages
+++ b/data/corefork.telegram.org/type/messages.SponsoredMessages
@@ -4,10 +4,10 @@
messages.SponsoredMessages
-
+
-
+
@@ -57,7 +57,7 @@
---functions---
channels.getSponsoredMessages#ec210fbf channel:InputChannel = messages.SponsoredMessages;
-Constructors
+Constructors
@@ -72,7 +72,7 @@
-Methods
+Methods
@@ -86,11 +86,7 @@
Get a list of sponsored messages
-
-Related pages
-Sponsored messages
-How to implement sponsored messages
-
+
diff --git a/data/corefork.telegram.org/type/messages.StickerSet b/data/corefork.telegram.org/type/messages.StickerSet
index 523a4749ca..62f2e26bc1 100644
--- a/data/corefork.telegram.org/type/messages.StickerSet
+++ b/data/corefork.telegram.org/type/messages.StickerSet
@@ -77,6 +77,10 @@
messages.stickerSet
Stickerset and stickers inside it
+
+messages.stickerSetNotModified
+
+
Methods
diff --git a/data/corefork.telegram.org/type/messages.TranslatedText b/data/corefork.telegram.org/type/messages.TranslatedText
index 0780c13516..824ef1e15e 100644
--- a/data/corefork.telegram.org/type/messages.TranslatedText
+++ b/data/corefork.telegram.org/type/messages.TranslatedText
@@ -2,12 +2,30 @@
- Page not found
+ messages.TranslatedText
-
-
+
+
-
+
@@ -36,10 +54,61 @@
-
- Page not found
+
+ messages.TranslatedText
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+messages.translateNoResult#67ca4737 = messages.TranslatedText;
+messages.translateResultText#a214f7d0 text:string = messages.TranslatedText;
+
+---functions---
+
+messages.translateText#24ce6dee flags:# peer:flags.0?InputPeer msg_id:flags.0?int text:flags.1?string from_lang:flags.2?string to_lang:string = messages.TranslatedText;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+messages.translateNoResult
+
+
+
+messages.translateResultText
+
+
+
+
+Methods
+
+
+
+Method
+Description
+
+
+
+
+messages.translateText
+
+
+
+
diff --git a/data/corefork.telegram.org/type/users.UserFull b/data/corefork.telegram.org/type/users.UserFull
index 0780c13516..4bf4523052 100644
--- a/data/corefork.telegram.org/type/users.UserFull
+++ b/data/corefork.telegram.org/type/users.UserFull
@@ -2,12 +2,30 @@
- Page not found
+ users.UserFull
-
-
+
+
-
+
@@ -36,10 +54,56 @@
-
- Page not found
+
+ users.UserFull
- The page has not been saved
+
+
+ -
+ Layer 138
+
+
+
+
+users.userFull#3b6d152e full_user:UserFull chats:Vector<Chat> users:Vector<User> = users.UserFull;
+
+---functions---
+
+users.getFullUser#b60f5918 id:InputUser = users.UserFull;
+Constructors
+
+
+
+Constructor
+Description
+
+
+
+
+users.userFull
+
+
+
+
+Methods
+
+
+
+Method
+Description
+
+
+
+
+users.getFullUser
+Returns extended user info by ID.
+
+
+