diff --git a/README.md b/README.md
index ec41e9b..3b41ea4 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
[](https://www.nuget.org/packages/WTelegramClient/)
[](https://dev.azure.com/wiz0u/WTelegramClient/_build?definitionId=7)
-[](https://corefork.telegram.org/methods)
+[](https://corefork.telegram.org/methods)
[](https://dev.azure.com/wiz0u/WTelegramClient/_packaging?_a=package&feed=WTelegramClient&package=WTelegramClient&protocolType=NuGet)
[](https://t.me/WTelegramClient)
[](http://wizou.fr/donate.html)
diff --git a/src/TL.Schema.cs b/src/TL.Schema.cs
index e9c3b96..569eb2f 100644
--- a/src/TL.Schema.cs
+++ b/src/TL.Schema.cs
@@ -45,7 +45,7 @@ namespace TL
[TLDef(0x35A95CB9)]
public class InputPeerChat : InputPeer
{
- /// Chat idientifier
+ /// Chat identifier
public long chat_id;
}
/// Defines a user for further interaction. See
@@ -116,7 +116,7 @@ namespace TL
public long user_id;
}
- /// Object defines a contact from the user's phonebook. Derived classes: See
+ /// Object defines a contact from the user's phone book. Derived classes: See
public abstract class InputContact : IObject { }
/// Phone contact. The client_id is just an arbitrary contact ID: it should be set, for example, to an incremental number when using contacts.importContacts, in order to retry importing only the contacts that weren't imported successfully. See
[TLDef(0xF392B7F4)]
@@ -162,7 +162,7 @@ namespace TL
/// Full name of the file
public override string Name => name;
}
- /// Assigns a big file (over 10Mb in size), saved in part using the method upload.saveBigFilePart. See
+ /// Assigns a big file (over 10 MB in size), saved in part using the method upload.saveBigFilePart. See
[TLDef(0xFA4F0BB5)]
public partial class InputFileBig : InputFileBase
{
@@ -229,7 +229,7 @@ namespace TL
/// GeoPoint
public InputGeoPoint geo_point;
}
- /// Phonebook contact See
+ /// Phone book contact See
[TLDef(0xF8AB7DFB)]
public class InputMediaContact : InputMedia
{
@@ -484,9 +484,9 @@ namespace TL
{
/// Flags, see TL conditional fields
public Flags flags;
- /// Latitide
+ /// Latitude
public double lat;
- /// Longtitude
+ /// Longitude
public double lon;
/// The estimated horizontal accuracy of the location, in meters; as defined by the sender.
[IfFlag(0)] public int accuracy_radius;
@@ -1061,11 +1061,11 @@ namespace TL
public abstract Peer GroupcallDefaultJoinAs { get; }
/// Emoji representing a specific chat theme
public abstract string ThemeEmoticon { get; }
- /// Pending join requests
+ /// Pending join requests »
public abstract int RequestsPending { get; }
/// IDs of users who requested to join recently
public abstract long[] RecentRequesters { get; }
- /// Allowed message reactions
+ /// Allowed message reactions »
public abstract string[] AvailableReactions { get; }
}
/// Detailed chat info See
@@ -1100,11 +1100,11 @@ namespace TL
[IfFlag(15)] public Peer groupcall_default_join_as;
/// Emoji representing a specific chat theme
[IfFlag(16)] public string theme_emoticon;
- /// Pending join requests
+ /// Pending join requests »
[IfFlag(17)] public int requests_pending;
/// IDs of users who requested to join recently
[IfFlag(17)] public long[] recent_requesters;
- /// Allowed message reactions
+ /// Allowed message reactions »
[IfFlag(18)] public string[] available_reactions;
[Flags] public enum Flags : uint
@@ -1161,11 +1161,11 @@ namespace TL
public override Peer GroupcallDefaultJoinAs => groupcall_default_join_as;
/// Emoji representing a specific chat theme
public override string ThemeEmoticon => theme_emoticon;
- /// Pending join requests
+ /// Pending join requests »
public override int RequestsPending => requests_pending;
/// IDs of users who requested to join recently
public override long[] RecentRequesters => recent_requesters;
- /// Allowed message reactions
+ /// Allowed message reactions »
public override string[] AvailableReactions => available_reactions;
}
/// Full info about a channel/supergroup See
@@ -1200,7 +1200,7 @@ namespace TL
public PeerNotifySettings notify_settings;
/// Invite link
[IfFlag(23)] public ExportedChatInvite exported_invite;
- /// Info about bots in the channel/supergrup
+ /// Info about bots in the channel/supergroup
public BotInfo[] bot_info;
/// The chat ID from which this group was migrated
[IfFlag(4)] public long migrated_from_chat_id;
@@ -1220,7 +1220,7 @@ namespace TL
[IfFlag(15)] public ChannelLocation location;
/// If specified, users in supergroups will only be able to send one message every slowmode_seconds seconds
[IfFlag(17)] public int slowmode_seconds;
- /// Indicates when the user will be allowed to send another message in the supergroup (unixdate)
+ /// Indicates when the user will be allowed to send another message in the supergroup (unixtime)
[IfFlag(18)] public DateTime slowmode_next_send_date;
/// If set, specifies the DC to use for fetching channel statistics
[IfFlag(12)] public int stats_dc;
@@ -1236,13 +1236,13 @@ namespace TL
[IfFlag(26)] public Peer groupcall_default_join_as;
/// Emoji representing a specific chat theme
[IfFlag(27)] public string theme_emoticon;
- /// Pending join requests
+ /// Pending join requests »
[IfFlag(28)] public int requests_pending;
/// IDs of users who requested to join recently
[IfFlag(28)] public long[] recent_requesters;
/// Default peer used for sending messages to this channel
[IfFlag(29)] public Peer default_send_as;
- /// Allowed message reactions
+ /// Allowed message reactions »
[IfFlag(30)] public string[] available_reactions;
[Flags] public enum Flags : uint
@@ -1253,7 +1253,7 @@ namespace TL
has_admins_count = 0x2,
/// Field has a value
has_kicked_count = 0x4,
- /// Can we vew the participant list?
+ /// Can we view the participant list?
can_view_participants = 0x8,
/// Field has a value
has_migrated_from_chat_id = 0x10,
@@ -1321,7 +1321,7 @@ namespace TL
public override PeerNotifySettings NotifySettings => notify_settings;
/// Invite link
public override ExportedChatInvite ExportedInvite => exported_invite;
- /// Info about bots in the channel/supergrup
+ /// Info about bots in the channel/supergroup
public override BotInfo[] BotInfo => bot_info;
/// Message ID of the last pinned message
public override int PinnedMsg => pinned_msg_id;
@@ -1335,11 +1335,11 @@ namespace TL
public override Peer GroupcallDefaultJoinAs => groupcall_default_join_as;
/// Emoji representing a specific chat theme
public override string ThemeEmoticon => theme_emoticon;
- /// Pending join requests
+ /// Pending join requests »
public override int RequestsPending => requests_pending;
/// IDs of users who requested to join recently
public override long[] RecentRequesters => recent_requesters;
- /// Allowed message reactions
+ /// Allowed message reactions »
public override string[] AvailableReactions => available_reactions;
}
@@ -1851,7 +1851,7 @@ namespace TL
[TLDef(0x7FCB13A8)]
public class MessageActionChatEditPhoto : MessageAction
{
- /// New group pofile photo
+ /// New group profile photo
public PhotoBase photo;
}
/// Group profile photo removed. See
@@ -1896,7 +1896,7 @@ namespace TL
[TLDef(0xEA3948E9)]
public class MessageActionChannelMigrateFrom : MessageAction
{
- /// The old chat tite
+ /// The old chat title
public string title;
/// The old chat ID
public long chat_id;
@@ -2071,7 +2071,7 @@ namespace TL
/// The emoji that identifies a chat theme
public string emoticon;
}
- /// See
+ /// A user was accepted into the group by an admin See
[TLDef(0xEBBCA3CB)]
public class MessageActionChatJoinedByRequest : MessageAction { }
@@ -2299,7 +2299,7 @@ namespace TL
{
/// Flags, see TL conditional fields
public Flags flags;
- /// Longtitude
+ /// Longitude
public double lon;
/// Latitude
public double lat;
@@ -2339,7 +2339,7 @@ namespace TL
}
}
- /// Oject contains info on user authorization. Derived classes: , See
+ /// Object contains info on user authorization. Derived classes: , See
public abstract class Auth_AuthorizationBase : IObject { }
/// Contains user authorization info. See
[TLDef(0x33FB7BB8)]
@@ -2347,7 +2347,7 @@ namespace TL
{
/// Flags, see TL conditional fields
public Flags flags;
- /// Iff setup_password_required is set, the user will be able to log into their account via SMS only once every this many days.
+ /// Iff setup_password_required is set and the user declines to set a 2-step verification password, they will be able to log into their account via SMS again only after this many days pass.
[IfFlag(1)] public int otherwise_relogin_days;
/// Temporary passport sessions
[IfFlag(0)] public int tmp_sessions;
@@ -2378,7 +2378,7 @@ namespace TL
}
}
- /// Data for copying of authorization between data centres. See
+ /// Data for copying of authorization between data centers. See
[TLDef(0xB434E2B8)]
public class Auth_ExportedAuthorization : IObject
{
@@ -2463,7 +2463,7 @@ namespace TL
}
}
- /// Peer settings See
+ /// List of actions that are possible when interacting with this user, to be shown as suggested actions in the chat bar See
[TLDef(0xA518110D)]
public class PeerSettings : IObject
{
@@ -2471,7 +2471,9 @@ namespace TL
public Flags flags;
/// Distance in meters between us and this peer
[IfFlag(6)] public int geo_distance;
+ /// If set, this is a private chat with an administrator of a chat or channel to which the user sent a join request, and this field contains the chat/channel's title.
[IfFlag(9)] public string request_chat_title;
+ /// If set, this is a private chat with an administrator of a chat or channel to which the user sent a join request, and this field contains the timestamp when the join request » was sent.
[IfFlag(9)] public DateTime request_chat_date;
[Flags] public enum Flags : uint
@@ -2486,16 +2488,17 @@ namespace TL
share_contact = 0x8,
/// Whether a special exception for contacts is needed
need_contacts_exception = 0x10,
- /// Whether we can report a geogroup is irrelevant for this location
+ /// Whether we can report a geogroup as irrelevant for this location
report_geo = 0x20,
/// Field has a value
has_geo_distance = 0x40,
- /// Whether this peer was automatically archived according to
+ /// Whether this peer was automatically archived according to and can be unarchived
autoarchived = 0x80,
- /// Whether we can invite members to a group or channel
+ /// If set, this is a recently created group chat to which new members can be invited
invite_members = 0x100,
/// Field has a value
has_request_chat_title = 0x200,
+ /// This flag is set if request_chat_title and request_chat_date fields are set and the join request » is related to a channel (otherwise if only the request fields are set, the join request » is related to a chat).
request_chat_broadcast = 0x400,
}
}
@@ -2590,6 +2593,10 @@ namespace TL
GeoIrrelevant = 0xDBD4FEED,
///Report for impersonation
Fake = 0xF5DDD6E7,
+ ///See
+ IllegalDrugs = 0x0A8EB2BE,
+ ///See
+ PersonalDetails = 0x9EC7863D,
}
/// Extended user info See
@@ -2620,6 +2627,7 @@ namespace TL
[IfFlag(14)] public int ttl_period;
/// Emoji associated with chat theme
[IfFlag(15)] public string theme_emoticon;
+ /// Anonymized text to be shown instead of the the user's name on forwarded messages
[IfFlag(16)] public string private_forward_name;
[Flags] public enum Flags : uint
@@ -2634,7 +2642,7 @@ namespace TL
has_bot_info = 0x8,
/// Whether this user can make VoIP calls
phone_calls_available = 0x10,
- /// Whether this user's privacy settings allow you to call him
+ /// Whether this user's privacy settings allow you to call them
phone_calls_private = 0x20,
/// Field has a value
has_pinned_msg_id = 0x40,
@@ -2698,11 +2706,11 @@ namespace TL
public Dictionary users;
}
- /// Info on succesfully imported contacts. See
+ /// Info on successfully imported contacts. See
[TLDef(0x77D01C3B)]
public class Contacts_ImportedContacts : IObject
{
- /// List of succesfully imported contacts
+ /// List of successfully imported contacts
public ImportedContact[] imported;
/// Popular contacts
public PopularContact[] popular_invites;
@@ -2783,7 +2791,7 @@ namespace TL
public override IPeerInfo UserOrChat(Peer peer) => null;
}
- /// Object contains infor on list of messages with auxiliary data. Derived classes: , , , See
+ /// Object contains information on list of messages with auxiliary data. Derived classes: , , , See
public abstract partial class Messages_MessagesBase : IObject, IPeerResolver
{
/// List of messages
@@ -2791,7 +2799,7 @@ namespace TL
/// returns a or for the given Peer
public abstract IPeerInfo UserOrChat(Peer peer);
}
- /// Full list of messages with auxilary data. See
+ /// Full list of messages with auxiliary data. See
[TLDef(0x8C718E87)]
public partial class Messages_Messages : Messages_MessagesBase, IPeerResolver
{
@@ -2907,7 +2915,7 @@ namespace TL
[TLDef(0xB45C69D1)]
public class Messages_AffectedHistory : IObject
{
- /// Number of events occured in a text box
+ /// Number of events occurred in a text box
public int pts;
/// Number of affected events
public int pts_count;
@@ -2977,7 +2985,7 @@ namespace TL
[TLDef(0x1BB00451)]
public class InputMessagesFilterPinned : MessagesFilter { }
- /// Object contains info on events occured. Derived classes: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , See
+ /// Object contains info on events occurred. Derived classes: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , See
public abstract class Update : IObject { }
/// New message in a private chat or in a legacy group. See
[TLDef(0x1F2B0AFD)]
@@ -2996,7 +3004,7 @@ namespace TL
{
/// id identifier of a respective
public int id;
- /// Previuosly transferred client random_id identifier
+ /// Previously transferred client random_id identifier
public long random_id;
}
/// Messages were deleted. See
@@ -3010,7 +3018,7 @@ namespace TL
/// Number of generated events
public int pts_count;
}
- /// The user is preparing a message; typing, recording, uploading, etc. This update is valid for 6 seconds. If no repeated update received after 6 seconds, it should be considered that the user stopped doing whatever he's been doing. See
+ /// The user is preparing a message; typing, recording, uploading, etc. This update is valid for 6 seconds. If no further updates of this kind are received after 6 seconds, it should be considered that the user stopped doing whatever they were doing See
[TLDef(0xC01E857F)]
public class UpdateUserTyping : Update
{
@@ -3019,7 +3027,7 @@ namespace TL
/// Action type
Param added in Layer 17.
public SendMessageAction action;
}
- /// The user is preparing a message in a group; typing, recording, uploading, etc. This update is valid for 6 seconds. If no repeated update received after 6 seconds, it should be considered that the user stopped doing whatever he's been doing. See
+ /// The user is preparing a message in a group; typing, recording, uploading, etc. This update is valid for 6 seconds. If no further updates of this kind are received after 6 seconds, it should be considered that the user stopped doing whatever they were doing See
[TLDef(0x83487AF0, inheritBefore = true)]
public class UpdateChatUserTyping : UpdateChat
{
@@ -3139,7 +3147,7 @@ namespace TL
[TLDef(0xBEC268EF)]
public class UpdateNotifySettings : Update
{
- /// Nofication source
+ /// Notification source
public NotifyPeerBase peer;
/// New notification settings
public PeerNotifySettings notify_settings;
@@ -4070,26 +4078,35 @@ namespace TL
/// New bot commands
public BotCommand[] commands;
}
- /// See
+ /// Someone has requested to join a chat or channel See
[TLDef(0x7063C3DB)]
public class UpdatePendingJoinRequests : Update
{
+ /// Chat or channel
public Peer peer;
+ /// Number of pending join requests » for the chat or channel
public int requests_pending;
+ /// IDs of users that have recently requested to join
public long[] recent_requesters;
}
- /// See
+ /// Someone has requested to join a chat or channel (bots only, users will receive an , instead) See
[TLDef(0x11DFA986)]
public class UpdateBotChatInviteRequester : Update
{
+ /// The chat or channel in question
public Peer peer;
+ /// When was the join request » made
public DateTime date;
+ /// The user ID that is asking to join the chat or channel
public long user_id;
+ /// Bio of the user
public string about;
+ /// Chat invite link that was used by the user to send the join request »
public ExportedChatInvite invite;
+ /// QTS event sequence identifier
public int qts;
}
- /// New message reactions are available See
+ /// New message reactions » are available See
[TLDef(0x154798C3)]
public class UpdateMessageReactions : Update
{
@@ -4105,9 +4122,9 @@ namespace TL
[TLDef(0xA56C2A3E)]
public class Updates_State : IObject
{
- /// Number of events occured in a text box
+ /// Number of events occurred in a text box
public int pts;
- /// Position in a sequence of updates in secret chats. For further detailes refer to article secret chats
Parameter was added in eigth layer.
+ /// Position in a sequence of updates in secret chats. For further details refer to article secret chats
public int qts;
/// Date of condition
public DateTime date;
@@ -4174,7 +4191,7 @@ namespace TL
[TLDef(0xA8FB1981)]
public partial class Updates_DifferenceSlice : Updates_DifferenceBase, IPeerResolver
{
- /// List of new messgaes
+ /// List of new messages
public MessageBase[] new_messages;
/// New messages from the encrypted event sequence
public EncryptedMessageBase[] new_encrypted_messages;
@@ -4187,7 +4204,7 @@ namespace TL
/// Intermediary state
public Updates_State intermediate_state;
- /// List of new messgaes
+ /// List of new messages
public override MessageBase[] NewMessages => new_messages;
/// New messages from the encrypted event sequence
public override EncryptedMessageBase[] NewEncryptedMessages => new_encrypted_messages;
@@ -4491,7 +4508,7 @@ namespace TL
public FileHash[] file_hashes;
}
- /// Data centre See
+ /// Data center See
[TLDef(0x18B7A10D)]
public class DcOption : IObject
{
@@ -4651,15 +4668,15 @@ namespace TL
}
}
- /// Nearest data centre, according to geo-ip. See
+ /// Nearest data center, according to geo-ip. See
[TLDef(0x8E1A1775)]
public class NearestDc : IObject
{
/// Country code determined by geo-ip
public string country;
- /// Number of current data centre
+ /// Number of current data center
public int this_dc;
- /// Number of nearest data centre
+ /// Number of nearest data center
public int nearest_dc;
}
@@ -4776,7 +4793,7 @@ namespace TL
{
/// Chat ID
public int id;
- /// Check sum dependant on the user ID
+ /// Check sum dependent on the user ID
public long access_hash;
/// Date chat was created
public DateTime date;
@@ -4832,7 +4849,7 @@ namespace TL
public long access_hash;
/// File size in bytes
public int size;
- /// Number of data centre
+ /// Number of data center
public int dc_id;
/// 32-bit fingerprint of key used for file encryption
public int key_fingerprint;
@@ -4842,14 +4859,14 @@ namespace TL
/// a null value means inputEncryptedFileEmpty
public abstract class InputEncryptedFileBase : IObject
{
- /// Random file ID created by clien
+ /// Random file ID created by client
public abstract long ID { get; }
}
/// Sets new encrypted file saved by parts using upload.saveFilePart method. See
[TLDef(0x64BD0306)]
public class InputEncryptedFileUploaded : InputEncryptedFileBase
{
- /// Random file ID created by clien
+ /// Random file ID created by client
public long id;
/// Number of saved parts
public int parts;
@@ -4858,7 +4875,7 @@ namespace TL
/// 32-bit fingerprint of the key used to encrypt a file
public int key_fingerprint;
- /// Random file ID created by clien
+ /// Random file ID created by client
public override long ID => id;
}
/// Sets forwarded encrypted file for attachment. See
@@ -4873,7 +4890,7 @@ namespace TL
/// File ID, value of id parameter from
public override long ID => id;
}
- /// Assigns a new big encrypted file (over 10Mb in size), saved in parts using the method upload.saveBigFilePart. See
+ /// Assigns a new big encrypted file (over 10 MB in size), saved in parts using the method upload.saveBigFilePart. See
[TLDef(0x2DC173C8)]
public class InputEncryptedFileBigUploaded : InputEncryptedFileBase
{
@@ -4897,7 +4914,7 @@ namespace TL
public abstract int ChatId { get; }
/// Date of sending
public abstract DateTime Date { get; }
- /// TL-serialising of type, encrypted with the key creatied at stage of chat initialization
+ /// TL-serialization of type, encrypted with the key created at chat initialization
public abstract byte[] Bytes { get; }
}
/// Encrypted message. See
@@ -4910,7 +4927,7 @@ namespace TL
public int chat_id;
/// Date of sending
public DateTime date;
- /// TL-serialising of type, encrypted with the key creatied at stage of chat initialization
+ /// TL-serialization of type, encrypted with the key created at chat initialization
public byte[] bytes;
/// Attached encrypted file
public EncryptedFile file;
@@ -4921,7 +4938,7 @@ namespace TL
public override int ChatId => chat_id;
/// Date of sending
public override DateTime Date => date;
- /// TL-serialising of type, encrypted with the key creatied at stage of chat initialization
+ /// TL-serialization of type, encrypted with the key created at chat initialization
public override byte[] Bytes => bytes;
}
/// Encrypted service message See
@@ -4934,7 +4951,7 @@ namespace TL
public int chat_id;
/// Date of sending
public DateTime date;
- /// TL-serialising of type, encrypted with the key creatied at stage of chat initialization
+ /// TL-serialization of the type, encrypted with the key created at chat initialization
public byte[] bytes;
/// Random message ID, assigned by the author of message
@@ -4943,11 +4960,11 @@ namespace TL
public override int ChatId => chat_id;
/// Date of sending
public override DateTime Date => date;
- /// TL-serialising of type, encrypted with the key creatied at stage of chat initialization
+ /// TL-serialization of the type, encrypted with the key created at chat initialization
public override byte[] Bytes => bytes;
}
- /// Contains info on cofiguring parameters for key generation by Diffie-Hellman protocol. Derived classes: , See
+ /// Contains Diffie-Hellman key generation protocol parameters. Derived classes: , See
public abstract class Messages_DhConfigBase : IObject { }
/// Configuring parameters did not change. See
[TLDef(0xC0E24635)]
@@ -4964,13 +4981,13 @@ namespace TL
public int g;
/// New value primitive root, see Wikipedia
public byte[] p;
- /// Vestion of set of parameters
+ /// Version of set of parameters
public int version;
/// Random sequence of bytes of assigned length
public byte[] random;
}
- /// Message without file attachemts sent to an encrypted file. See
+ /// Message without file attachments sent to an encrypted file. See
[TLDef(0x560F8935)]
public class Messages_SentEncryptedMessage : IObject
{
@@ -5015,7 +5032,7 @@ namespace TL
public Flags flags;
/// Document ID
public long id;
- /// Check sum, dependant on document ID
+ /// Check sum, dependent on document ID
public long access_hash;
/// File reference
public byte[] file_reference;
@@ -5072,7 +5089,7 @@ namespace TL
[TLDef(0xD612E8EF)]
public class NotifyBroadcasts : NotifyPeerBase { }
- /// User actions. Use this to provide users with detailed info about their chat partners' actions: typing or sending attachments of all kinds. Derived classes: , , , , , , , , , , , , , , , , , See
+ /// User actions. Use this to provide users with detailed info about their chat partner's actions: typing or sending attachments of all kinds. Derived classes: , , , , , , , , , , , , , , , , , See
public abstract partial class SendMessageAction : IObject { }
/// User is typing. See
[TLDef(0x16BF744E)]
@@ -5773,7 +5790,9 @@ namespace TL
[IfFlag(2)] public int usage_limit;
/// How many users joined using this link
[IfFlag(3)] public int usage;
+ /// Number of users that have already used this link to join
[IfFlag(7)] public int requested;
+ /// Custom description for the invite link, visible only to admins
[IfFlag(8)] public string title;
[Flags] public enum Flags : uint
@@ -5790,6 +5809,7 @@ namespace TL
has_start_date = 0x10,
/// Whether this chat invite has no expiration
permanent = 0x20,
+ /// Whether users importing this invite link will have to be approved to join the channel or group
request_needed = 0x40,
/// Field has a value
has_requested = 0x80,
@@ -5815,6 +5835,7 @@ namespace TL
public Flags flags;
/// Chat/supergroup/channel title
public string title;
+ /// Description of the group of channel
[IfFlag(5)] public string about;
/// Chat/supergroup/channel photo
public PhotoBase photo;
@@ -5837,6 +5858,7 @@ namespace TL
has_participants = 0x10,
/// Field has a value
has_about = 0x20,
+ /// Whether the join request » must be first approved by an administrator
request_needed = 0x40,
}
}
@@ -5924,7 +5946,8 @@ namespace TL
has_thumbs = 0x10,
/// Is this an animated stickerpack
animated = 0x20,
- gifs = 0x40,
+ /// Is this a video stickerpack
+ videos = 0x40,
}
}
@@ -6016,7 +6039,7 @@ namespace TL
public class KeyboardButtonRequestGeoLocation : KeyboardButton
{
}
- /// Button to force a user to switch to inline mode Pressing the button will prompt the user to select one of their chats, open that chat and insert the bot‘s username and the specified inline query in the input field. See
+ /// Button to force a user to switch to inline mode Pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. See
[TLDef(0x0568A748)]
public class KeyboardButtonSwitchInline : KeyboardButtonBase
{
@@ -6029,7 +6052,7 @@ namespace TL
[Flags] public enum Flags : uint
{
- /// If set, pressing the button will insert the bot‘s username and the specified inline query in the current chat's input field.
+ /// If set, pressing the button will insert the bot's username and the specified inline query in the current chat's input field.
same_peer = 0x1,
}
@@ -6167,7 +6190,7 @@ namespace TL
{
/// Requests clients to hide the keyboard as soon as it's been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat – the user can press a special button in the input field to see the custom keyboard again.
single_use = 0x2,
- /// Use this parameter if you want to show the keyboard to specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message.
Example: A user requests to change the bot‘s language, bot replies to the request with a keyboard to select the new language. Other users in the group don’t see the keyboard.
+ /// Use this parameter if you want to show the keyboard to specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message.
Example: A user requests to change the bot's language, bot replies to the request with a keyboard to select the new language. Other users in the group don't see the keyboard.
selective = 0x4,
/// Field has a value
has_placeholder = 0x8,
@@ -6190,7 +6213,7 @@ namespace TL
resize = 0x1,
/// Requests clients to hide the keyboard as soon as it's been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat – the user can press a special button in the input field to see the custom keyboard again.
single_use = 0x2,
- /// Use this parameter if you want to show the keyboard to specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message.
Example: A user requests to change the bot‘s language, bot replies to the request with a keyboard to select the new language. Other users in the group don’t see the keyboard.
+ /// Use this parameter if you want to show the keyboard to specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message.
Example: A user requests to change the bot's language, bot replies to the request with a keyboard to select the new language. Other users in the group don't see the keyboard.
selective = 0x4,
/// Field has a value
has_placeholder = 0x8,
@@ -6374,7 +6397,7 @@ namespace TL
/// returns a or for the given Peer
public override IPeerInfo UserOrChat(Peer peer) => null;
}
- /// The provided pts + limit < remote pts. Simply, there are too many updates to be fetched (more than limit), the client has to resolve the update gap in one of the following ways: See
+ /// The provided pts + limit < remote pts. Simply, there are too many updates to be fetched (more than limit), the client has to resolve the update gap in one of the following ways (assuming the existence of a persistent database to locally store messages): See
[TLDef(0xA4BCC6FE)]
public partial class Updates_ChannelDifferenceTooLong : Updates_ChannelDifferenceBase, IPeerResolver
{
@@ -6454,7 +6477,7 @@ namespace TL
[TLDef(0xC00C07C0)]
public partial class ChannelParticipant : ChannelParticipantBase
{
- /// Pariticipant user ID
+ /// Participant user ID
public long user_id;
/// Date joined
public DateTime date;
@@ -6474,6 +6497,7 @@ namespace TL
[Flags] public enum Flags : uint
{
+ /// Whether I joined upon specific approval of an admin
via_request = 0x1,
}
}
@@ -7224,7 +7248,7 @@ namespace TL
public long query_id;
/// The next offset to use when navigating through results
[IfFlag(1)] public string next_offset;
- /// Whether the bot requested the user to message him in private
+ /// Whether the bot requested the user to message them in private
[IfFlag(2)] public InlineBotSwitchPM switch_pm;
/// The results
public BotInlineResultBase[] results;
@@ -7432,7 +7456,7 @@ namespace TL
public override long AccessHash => access_hash;
}
- /// The bot requested the user to message him in private See
+ /// The bot requested the user to message them in private See
[TLDef(0x3C20629F)]
public class InlineBotSwitchPM : IObject
{
@@ -7908,7 +7932,7 @@ namespace TL
{
/// Author name
public RichText author;
- /// Date of pubblication
+ /// Date of publication
public DateTime published_date;
}
/// Page header See
@@ -8202,7 +8226,7 @@ namespace TL
Disconnect = 0xE095C1A0,
///The phone call was ended normally
Hangup = 0x57ADC690,
- ///The phone call was discared because the user is busy in another call
+ ///The phone call was discarded because the user is busy in another call
Busy = 0xFAF7E8C9,
}
@@ -8980,7 +9004,7 @@ namespace TL
/// Represents the download status of a CDN file Derived classes: , See
public abstract class Upload_CdnFileBase : IObject { }
- /// The file was cleared from the temporary RAM cache of the CDN and has to be reuploaded. See
+ /// The file was cleared from the temporary RAM cache of the CDN and has to be re-uploaded. See
[TLDef(0xEEA8E46E)]
public class Upload_CdnFileReuploadNeeded : Upload_CdnFileBase
{
@@ -9258,7 +9282,7 @@ namespace TL
{
/// Previous global banned rights
public ChatBannedRights prev_banned_rights;
- /// New glboal banned rights.
+ /// New global banned rights.
public ChatBannedRights new_banned_rights;
}
/// A poll was stopped See
@@ -9392,14 +9416,14 @@ namespace TL
/// Old value
public bool new_value;
}
- /// A message was sent See
+ /// A message was posted in a channel See
[TLDef(0x278F2868)]
public class ChannelAdminLogEventActionSendMessage : ChannelAdminLogEventAction
{
/// The message that was sent
public MessageBase message;
}
- /// The set of allowed message reactions for this channel has changed See
+ /// The set of allowed message reactions » for this channel has changed See
[TLDef(0x9CF7F76A)]
public class ChannelAdminLogEventActionChangeAvailableReactions : ChannelAdminLogEventAction
{
@@ -9478,7 +9502,7 @@ namespace TL
group_call = 0x4000,
/// Invite events
invites = 0x8000,
- /// New value
+ /// A message was posted in a channel
send = 0x10000,
}
}
@@ -9753,7 +9777,7 @@ namespace TL
/// Secure file ID
public override long ID => id;
}
- /// Preuploaded passport file, for more info see the passport docs » See
+ /// Pre-uploaded passport file, for more info see the passport docs » See
[TLDef(0x5367E5BE)]
public class InputSecureFile : InputSecureFileBase
{
@@ -10159,7 +10183,7 @@ namespace TL
public DateTime date;
}
- /// Takout info See
+ /// Takeout info See
[TLDef(0x4DBA4501)]
public class Account_Takeout : IObject
{
@@ -10263,7 +10287,7 @@ namespace TL
public DataJSON countries_langs;
}
- /// Event that occured in the application. See
+ /// Event that occurred in the application. See
[TLDef(0x1D1B1245)]
public class InputAppEvent : IObject
{
@@ -10355,7 +10379,7 @@ namespace TL
align_right = 0x10,
/// Vertically centered block
valign_middle = 0x20,
- /// Block vertically-alligned to the bottom
+ /// Block vertically-aligned to the bottom
valign_bottom = 0x40,
/// Field has a value
has_text = 0x80,
@@ -10436,7 +10460,7 @@ namespace TL
[IfFlag(2)] public long photo_id;
/// Author name
[IfFlag(3)] public string author;
- /// Date of pubblication
+ /// Date of publication
[IfFlag(4)] public DateTime published_date;
[Flags] public enum Flags : uint
@@ -10468,7 +10492,7 @@ namespace TL
public PhotoBase[] photos;
/// Media in page
public DocumentBase[] documents;
- /// Viewcount
+ /// View count
[IfFlag(3)] public int views;
[Flags] public enum Flags : uint
@@ -10566,7 +10590,7 @@ namespace TL
{
/// Whether we have chosen this answer
chosen = 0x1,
- /// For quizes, whether the option we have chosen is correct
+ /// For quizzes, whether the option we have chosen is correct
correct = 0x2,
}
}
@@ -10648,7 +10672,7 @@ namespace TL
anonymous = 0x400,
/// If set, allows the admin to change group call/livestream settings
manage_call = 0x800,
- /// Set this flag if none of the other flags are set, but you stil want the user to be an admin.
+ /// Set this flag if none of the other flags are set, but you still want the user to be an admin.
other = 0x1000,
}
}
@@ -10734,6 +10758,7 @@ namespace TL
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// Previously stored logout tokens, see the documentation for more info »
[IfFlag(6)] public byte[][] logout_tokens;
[Flags] public enum Flags : uint
@@ -10744,6 +10769,7 @@ namespace TL
current_number = 0x2,
/// 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_app_hash = 0x10,
+ /// Whether this device supports receiving the code using the method
allow_missed_call = 0x20,
/// Field has a value
has_logout_tokens = 0x40,
@@ -10970,7 +10996,7 @@ namespace TL
[TLDef(0x209B82DB)]
public class ChannelLocation : IObject
{
- /// Geographical location of supergrup
+ /// Geographical location of supergroup
public GeoPoint geo_point;
/// Textual description of the address
public string address;
@@ -11111,7 +11137,7 @@ namespace TL
/// Token to use for login
public byte[] token;
}
- /// Login via token (QR code) succeded! See
+ /// Login via token (QR code) succeeded! See
[TLDef(0x390D5C5E)]
public class Auth_LoginTokenSuccess : Auth_LoginTokenBase
{
@@ -11503,7 +11529,7 @@ namespace TL
public StatsGraphBase views_by_source_graph;
/// New followers by source graph (absolute)
public StatsGraphBase new_followers_by_source_graph;
- /// Subscriber language graph (piechart)
+ /// Subscriber language graph (pie chart)
public StatsGraphBase languages_graph;
/// Recent message interactions
public MessageInteractionCounters[] recent_message_interactions;
@@ -11630,7 +11656,7 @@ namespace TL
public StatsGraphBase members_graph;
/// New members by source graph
public StatsGraphBase new_members_by_source_graph;
- /// Subscriber language graph (piechart)
+ /// Subscriber language graph (pie chart)
public StatsGraphBase languages_graph;
/// Message activity graph (stacked bar graph, message type)
public StatsGraphBase messages_graph;
@@ -11729,7 +11755,7 @@ namespace TL
{
/// Flags, see TL conditional fields
public Flags flags;
- /// Viewcount of message
+ /// View count of message
[IfFlag(0)] public int views;
/// Forward count of message
[IfFlag(1)] public int forwards;
@@ -11942,6 +11968,9 @@ namespace TL
has_unmuted_video_count = 0x400,
/// Whether the group call is currently being recorded
record_video_active = 0x800,
+ /// Whether RTMP streams are allowed
+ rtmp_stream = 0x1000,
+ listeners_hidden = 0x2000,
}
/// Group call ID
@@ -12127,11 +12156,14 @@ namespace TL
public long user_id;
/// When did the user join
public DateTime date;
+ /// For users with pending requests, contains bio of the user that requested to join
[IfFlag(2)] public string about;
+ /// The administrator that approved the join request » of the user
[IfFlag(1)] public long approved_by;
[Flags] public enum Flags : uint
{
+ /// Whether this user currently has a pending join request »
requested = 0x1,
/// Field has a value
has_approved_by = 0x2,
@@ -12399,13 +12431,17 @@ namespace TL
public IPeerInfo UserOrChat(Peer peer) => peer?.UserOrChat(users, chats);
}
- /// See
+ /// Information about found messages sent on a specific day, used to split the messages in constructors by days. See
[TLDef(0xC9B0539F)]
public class SearchResultsCalendarPeriod : IObject
{
+ /// The day this object is referring to.
public DateTime date;
+ /// First message ID that was sent on this day.
public int min_msg_id;
+ /// Last message ID that was sent on this day.
public int max_msg_id;
+ /// All messages that were sent on this day.
public int count;
}
@@ -12417,10 +12453,15 @@ namespace TL
public Flags flags;
/// Total number of results matching query
public int count;
+ /// Starting timestamp of attached messages
public DateTime min_date;
+ /// Ending timestamp of attached messages
public int min_msg_id;
+ /// Indicates the absolute position of messages[0] within the total result set with count count.
This is useful, for example, if we need to display a progress/total counter (like photo 134 of 200, for all media in a chat, we could simply use photo ${offset_id_offset} of ${count}.
[IfFlag(1)] public int offset_id_offset;
+ /// Used to split the messages by days: multiple constructors are returned, each containing information about the first, last and total number of messages matching the filter that were sent on a specific day.
This information can be easily used to split the returned messages by day.
public SearchResultsCalendarPeriod[] periods;
+ /// Messages
public MessageBase[] messages;
/// Mentioned chats
public Dictionary chats;
@@ -12440,20 +12481,25 @@ namespace TL
/// Information about a message in a specific position Derived classes: See
public abstract class SearchResultsPosition : IObject { }
- /// See
+ /// Information about a message in a specific position See
[TLDef(0x7F648B67)]
public class SearchResultPosition : SearchResultsPosition
{
+ /// Message ID
public int msg_id;
+ /// When was the message sent
public DateTime date;
+ /// 0-based message position in the full list of suitable messages
public int offset;
}
- /// See
+ /// Information about sparse positions of messages See
[TLDef(0x53B22BAF)]
public class Messages_SearchResultsPositions : IObject
{
+ /// Total number of found messages
public int count;
+ /// List of message positions
public SearchResultsPosition[] positions;
}
@@ -12499,13 +12545,13 @@ namespace TL
public IPeerInfo UserOrChat(Peer peer) => peer?.UserOrChat(users, chats);
}
- /// Authentication token to be used on subsequent authorizations See
+ /// Logout token » to be used on subsequent authorizations See
[TLDef(0xC3A2835F)]
public class Auth_LoggedOut : IObject
{
/// Flags, see TL conditional fields
public Flags flags;
- /// Authentication token to be used on subsequent authorizations
+ /// Logout token » to be used on subsequent authorizations
[IfFlag(0)] public byte[] future_auth_token;
[Flags] public enum Flags : uint
@@ -12533,7 +12579,7 @@ namespace TL
}
}
- /// Message reactions See
+ /// Message reactions » See
[TLDef(0x4F2B9479)]
public class MessageReactions : IObject
{
@@ -12546,7 +12592,7 @@ namespace TL
[Flags] public enum Flags : uint
{
- /// 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).
+ /// 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).
min = 0x1,
/// Field has a value
has_recent_reactions = 0x2,
@@ -12593,11 +12639,17 @@ namespace TL
public string title;
/// Static icon for the reaction
public DocumentBase static_icon;
+ /// The animated sticker to show when the user opens the reaction dropdown
public DocumentBase appear_animation;
+ /// The animated sticker to show when the user selects this reaction
public DocumentBase select_animation;
+ /// The animated sticker to show when the reaction is chosen and activated
public DocumentBase activate_animation;
+ /// The background effect (still an animated sticker) to play under the activate_animation, when the reaction is chosen and activated
public DocumentBase effect_animation;
+ /// The animation that plays around the button when you press an existing reaction (played together with center_icon).
[IfFlag(1)] public DocumentBase around_animation;
+ /// The animation of the emoji inside the button when you press an existing reaction (played together with around_animation).
[IfFlag(1)] public DocumentBase center_icon;
[Flags] public enum Flags : uint
@@ -12609,14 +12661,14 @@ namespace TL
}
}
- /// Animations and metadata associated with message reactions See
+ /// Animations and metadata associated with message reactions » See
/// a null value means messages.availableReactionsNotModified
[TLDef(0x768E3AAD)]
public class Messages_AvailableReactions : IObject
{
/// Hash for pagination, for more info click here
public int hash;
- /// Animations and metadata associated with message reactions
+ /// Animations and metadata associated with message reactions »
public AvailableReaction[] reactions;
}
@@ -12646,17 +12698,42 @@ namespace TL
[Flags] public enum Flags : uint
{
+ /// Whether the specified message reaction » should elicit a bigger and longer reaction
big = 0x1,
/// Whether the reaction wasn't yet marked as read by the current user
unread = 0x2,
}
}
+ /// See
+ [TLDef(0x80EB48AF)]
+ public class GroupCallStreamChannel : IObject
+ {
+ public int channel;
+ public int scale;
+ public long last_timestamp_ms;
+ }
+
+ /// See
+ [TLDef(0xD0E482B2)]
+ public class Phone_GroupCallStreamChannels : IObject
+ {
+ public GroupCallStreamChannel[] channels;
+ }
+
+ /// See
+ [TLDef(0x2DBF3432)]
+ public class Phone_GroupCallStreamRtmpUrl : IObject
+ {
+ public string url;
+ public string key;
+ }
+
// ---functions---
public static class SchemaExtensions
{
- /// Invokes a query after successfull completion of one of the previous queries. See
+ /// Invokes a query after successful completion of one of the previous queries. See
/// Message identifier on which a current query depends
/// The query itself
public static Task InvokeAfterMsg(this Client client, long msg_id, IMethod query)
@@ -12666,7 +12743,7 @@ namespace TL
query = query,
});
- /// Invokes a query after a successfull completion of previous queries See
+ /// Invokes a query after a successful completion of previous queries See
/// List of messages on which a current query depends
/// The query itself
public static Task InvokeAfterMsgs(this Client client, long[] msg_ids, IMethod query)
@@ -12793,15 +12870,15 @@ namespace TL
{
});
- /// Returns data for copying authorization to another data-centre. See [bots: ✓] Possible codes: 400 (details)
- /// Number of a target data-centre
+ /// Returns data for copying authorization to another data-center. See [bots: ✓] Possible codes: 400 (details)
+ /// Number of a target data-center
public static Task Auth_ExportAuthorization(this Client client, int dc_id)
=> client.Invoke(new Auth_ExportAuthorization
{
dc_id = dc_id,
});
- /// Logs in a user using a key transmitted from his native data-centre. See [bots: ✓] Possible codes: 400 (details)
+ /// Logs in a user using a key transmitted from his native data-center. See [bots: ✓] Possible codes: 400 (details)
/// User ID
/// Authorization key
public static Task Auth_ImportAuthorization(this Client client, long id, byte[] bytes)
@@ -13605,6 +13682,7 @@ namespace TL
});
/// Change authorization settings See Possible codes: 400 (details)
+ /// Session ID from the constructor, fetchable using account.getAuthorizations
/// Whether to enable or disable receiving encrypted chats: if the flag is not set, the previous setting is not changed
/// Whether to enable or disable receiving calls: if the flag is not set, the previous setting is not changed
public static Task Account_ChangeAuthorizationSettings(this Client client, long hash, bool? encrypted_requests_disabled = default, bool? call_requests_disabled = default)
@@ -13801,7 +13879,7 @@ namespace TL
phone = phone,
});
- /// If the of a new user allow us to add him as contact, add that user as contact See Possible codes: 400 (details)
+ /// If the of a new user allow us to add them as contact, add that user as contact See Possible codes: 400 (details)
/// The user to add as contact
public static Task Contacts_AcceptContact(this Client client, InputUserBase id)
=> client.Invoke(new Contacts_AcceptContact
@@ -13833,6 +13911,13 @@ namespace TL
msg_id = msg_id,
});
+ /// See
+ public static Task Contacts_ResolvePhone(this Client client, string phone)
+ => client.Invoke(new Contacts_ResolvePhone
+ {
+ phone = phone,
+ });
+
/// ⚠ This method is only for small private Chat. See Terminology to understand what this means
Search for a similar method name starting with Channels_ if you're dealing with a Returns the list of messages by their IDs. See [bots: ✓]
/// Message ID list
public static Task Messages_GetMessages(this Client client, InputMessage[] id)
@@ -13979,6 +14064,7 @@ namespace TL
/// Send this message silently (no notifications for the receivers)
/// Send this message as background message
/// Clear the draft field
+ /// Only for bots, disallows forwarding and saving of the messages, even if the destination chat doesn't have content protection enabled
/// The destination where the message will be sent
/// The message ID to which this message will reply to
/// The message
@@ -14005,6 +14091,7 @@ namespace TL
/// Send message silently (no notification should be triggered)
/// Send message in background
/// Clear the draft
+ /// Only for bots, disallows forwarding and saving of the messages, even if the destination chat doesn't have content protection enabled
/// Destination
/// Message ID to which this message should reply to
/// Attached media
@@ -14035,11 +14122,13 @@ namespace TL
/// When forwarding games, whether to include your score in the game
/// Whether to forward messages without quoting the original author
/// Whether to strip captions from media
+ /// Only for bots, disallows further re-forwarding and saving of the messages, even if the destination chat doesn't have content protection enabled
/// Source of messages
/// IDs of messages
/// Random ID to prevent resending of messages
/// Destination peer
/// Scheduled message date for scheduled messages
+ /// Forward the messages as the specified peer
public static Task Messages_ForwardMessages(this Client client, InputPeer from_peer, int[] id, long[] random_id, InputPeer to_peer, bool silent = false, bool background = false, bool with_my_score = false, bool drop_author = false, bool drop_media_captions = false, bool noforwards = false, DateTime? schedule_date = null, InputPeer send_as = null)
=> client.Invoke(new Messages_ForwardMessages
{
@@ -14098,7 +14187,7 @@ namespace TL
chat_id = chat_id,
});
- /// ⚠ This method is only for small private Chat. See Terminology to understand what this means
Search for a similar method name starting with Channels_ if you're dealing with a Chanages chat name and sends a service message on it. See [bots: ✓] Possible codes: 400 (details)
+ /// ⚠ This method is only for small private Chat. See Terminology to understand what this means
Search for a similar method name starting with Channels_ if you're dealing with a Changes chat name and sends a service message on it. See [bots: ✓] Possible codes: 400 (details)
/// Chat ID
/// New chat name, different from the old one
public static Task Messages_EditChatTitle(this Client client, long chat_id, string title)
@@ -14153,7 +14242,7 @@ namespace TL
});
/// Returns configuration parameters for Diffie-Hellman key generation. Can also return a random sequence of bytes of required length. See Possible codes: 400 (details)
- /// Value of the version parameter from , avialable at the client
+ /// Value of the version parameter from , available at the client
/// Length of the required random sequence
public static Task Messages_GetDhConfig(this Client client, int version, int random_length)
=> client.Invoke(new Messages_GetDhConfig
@@ -14316,9 +14405,11 @@ namespace TL
/// Export an invite link for a chat See [bots: ✓] Possible codes: 400,403 (details)
/// 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.
+ /// Whether admin confirmation is required before admitting each separate user into the chat
/// Chat
/// Expiration date
/// Maximum number of users that can join using this link
+ /// Description of the invite link, visible only to administrators
public static Task Messages_ExportChatInvite(this Client client, InputPeer peer, bool legacy_revoke_permanent = false, bool request_needed = false, DateTime? expire_date = null, int? usage_limit = null, string title = null)
=> client.Invoke(new Messages_ExportChatInvite
{
@@ -14330,7 +14421,7 @@ namespace TL
});
/// Check the validity of a chat invite link and get basic info about it See Possible codes: 400,406 (details)
- /// Invite hash in t.me/joinchat/hash
+ /// Invite hash in t.me/joinchat/hash or t.me/+hash
public static Task Messages_CheckChatInvite(this Client client, string hash)
=> client.Invoke(new Messages_CheckChatInvite
{
@@ -14403,7 +14494,7 @@ namespace TL
/// ⚠ This method is only for small private Chat. See Terminology to understand what this means
Search for a similar method name starting with Channels_ if you're dealing with a Make a user admin in a legacy group. See Possible codes: 400 (details)
/// The ID of the group
/// The user to make admin
- /// Whether to make him admin
+ /// Whether to make them admin
public static Task Messages_EditChatAdmin(this Client client, long chat_id, InputUserBase user_id, bool is_admin)
=> client.Invoke(new Messages_EditChatAdmin
{
@@ -14486,7 +14577,7 @@ namespace TL
unsave = unsave,
});
- /// Query an inline bot See Possible codes: 400,-503 (details)
+ /// Query an inline bot See Possible codes: -503,400 (details)
/// The bot to query
/// The currently opened chat
/// The geolocation, if requested
@@ -14509,7 +14600,7 @@ namespace TL
/// Unique identifier for the answered query
/// Vector of results for the inline query
/// The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300.
- /// Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don‘t support pagination. Offset length can’t exceed 64 bytes.
+ /// Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don't support pagination. Offset length can't exceed 64 bytes.
/// If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with a certain parameter.
public static Task Messages_SetInlineBotResults(this Client client, long query_id, InputBotInlineResultBase[] results, DateTime cache_time, bool gallery = false, bool private_ = false, string next_offset = null, InlineBotSwitchPM switch_pm = null)
=> client.Invoke(new Messages_SetInlineBotResults
@@ -14597,7 +14688,7 @@ namespace TL
entities = entities,
});
- /// Press an inline callback button and get a callback answer from the bot See Possible codes: 400,-503 (details)
+ /// Press an inline callback button and get a callback answer from the bot See Possible codes: -503,400 (details)
/// Whether this is a "play game" button
/// Where was the inline keyboard sent
/// ID of the Message with the inline keyboard
@@ -14851,7 +14942,7 @@ namespace TL
/// If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, the bot will receive an update. Use this method to reply to shipping queries. See [bots: ✓] Possible codes: 400 (details)
/// Unique identifier for the query to be answered
- /// Error message in human readable form that explains why it is impossible to complete the order (e.g. "Sorry, delivery to your desired address is unavailable'). Telegram will display this message to the user.
+ /// Error message in human readable form that explains why it is impossible to complete the order (e.g. "Sorry, delivery to your desired address is unavailable"). Telegram will display this message to the user.
/// A vector of available shipping options.
public static Task Messages_SetBotShippingResults(this Client client, long query_id, string error = null, ShippingOption[] shipping_options = null)
=> client.Invoke(new Messages_SetBotShippingResults
@@ -14906,9 +14997,9 @@ namespace TL
hash = hash,
});
- /// Mark a sticker as favorite See Possible codes: 400 (details)
- /// Sticker to mark as favorite
- /// Unfavorite
+ /// Mark or unmark a sticker as favorite See Possible codes: 400 (details)
+ /// Sticker in question
+ /// Whether to add or remove a sticker from favorites
public static Task Messages_FaveSticker(this Client client, InputDocument id, bool unfave)
=> client.Invoke(new Messages_FaveSticker
{
@@ -14958,6 +15049,7 @@ namespace TL
/// Whether to send the album silently (no notification triggered)
/// Send in background?
/// Whether to clear drafts
+ /// Only for bots, disallows forwarding and saving of the messages, even if the destination chat doesn't have content protection enabled
/// The destination chat
/// The message to reply to
/// The medias to send
@@ -15428,12 +15520,14 @@ namespace TL
link = link,
});
- /// Edit an exported chat invite See [bots: ✓] Possible codes: 400 (details)
+ /// Edit an exported chat invite See [bots: ✓] Possible codes: 400,403 (details)
/// Whether to revoke the chat invite
/// Chat
/// Invite link
/// New expiration date
/// Maximum number of users that can join using this link
+ /// Whether admin confirmation is required before admitting each separate user into the chat
+ /// Description of the invite link, visible only to administrators
public static Task Messages_EditExportedChatInvite(this Client client, InputPeer peer, string link, bool revoked = false, DateTime? expire_date = null, int? usage_limit = null, bool? request_needed = default, string title = null)
=> client.Invoke(new Messages_EditExportedChatInvite
{
@@ -15456,7 +15550,7 @@ namespace TL
admin_id = admin_id,
});
- /// Delete a chat invite See Possible codes: (details)
+ /// Delete a chat invite See Possible codes: 400 (details)
/// Peer
/// Invite link
public static Task Messages_DeleteExportedChatInvite(this Client client, InputPeer peer, string link)
@@ -15475,8 +15569,10 @@ namespace TL
});
/// Get info about the users that joined the chat using a specific chat invite See Possible codes: 400 (details)
+ /// If set, only returns info about users with pending join requests »
/// Chat
/// Invite link
+ /// Search for a user in the pending join requests » list: only available when the requested flag is set, cannot be used together with a specific link.
/// Offsets for pagination, for more info click here
/// User ID for pagination
/// Maximum number of results to return, see pagination
@@ -15530,9 +15626,9 @@ namespace TL
msg_id = msg_id,
});
- /// Get information about messages sent on a specific day See Possible codes: (details)
- /// Peer where where to search
- /// Message filter
+ /// Returns information about the next messages of the specified type in the chat split by days. See Possible codes: 400 (details)
+ /// Peer where to search
+ /// Message filter, , filters are not supported by this method.
/// Offsets for pagination, for more info click here
/// Offsets for pagination, for more info click here
public static Task Messages_GetSearchResultsCalendar(this Client client, InputPeer peer, MessagesFilter filter, int offset_id = default, DateTime offset_date = default)
@@ -15544,7 +15640,11 @@ namespace TL
offset_date = offset_date,
});
- /// See
+ /// Returns sparse positions of messages of the specified type in the chat to be used for shared media scroll implementation. See
+ /// Peer where to search
+ /// Message filter, , filters are not supported by this method.
+ /// Offsets for pagination, for more info click here
+ /// Maximum number of results to return, see pagination
public static Task Messages_GetSearchResultsPositions(this Client client, InputPeer peer, MessagesFilter filter, int offset_id = default, int limit = int.MaxValue)
=> client.Invoke(new Messages_GetSearchResultsPositions
{
@@ -15554,7 +15654,10 @@ namespace TL
limit = limit,
});
- /// See [bots: ✓] Possible codes: 400 (details)
+ /// Dismiss or approve a chat join request related to a specific chat or channel. See [bots: ✓] Possible codes: 400 (details)
+ /// Whether to dismiss or approve the chat join request »
+ /// The chat or channel
+ /// The user whose join request » should be dismissed or approved
public static Task Messages_HideChatJoinRequest(this Client client, InputPeer peer, InputUserBase user_id, bool approved = false)
=> client.Invoke(new Messages_HideChatJoinRequest
{
@@ -15563,7 +15666,10 @@ namespace TL
user_id = user_id,
});
- /// See
+ /// Dismiss or approve all join requests related to a specific chat or channel. See
+ /// Whether to dismiss or approve all chat join requests »
+ /// The chat or channel
+ /// Only dismiss or approve join requests » initiated using this invite link
public static Task Messages_HideAllChatJoinRequests(this Client client, InputPeer peer, bool approved = false, string link = null)
=> client.Invoke(new Messages_HideAllChatJoinRequests
{
@@ -15572,7 +15678,9 @@ namespace TL
link = link,
});
- /// See
+ /// Enable or disable content protection on a channel or chat See
+ /// The chat or channel
+ /// Enable or disable content protection
public static Task Messages_ToggleNoForwards(this Client client, InputPeer peer, bool enabled)
=> client.Invoke(new Messages_ToggleNoForwards
{
@@ -15590,7 +15698,8 @@ namespace TL
send_as = send_as,
});
- /// Send reaction to message See Possible codes: 400 (details)
+ /// React to message See Possible codes: 400 (details)
+ /// Whether a bigger and longer reaction should be shown
/// Peer
/// Message ID to react to
/// Reaction (a UTF8 emoji)
@@ -15603,7 +15712,7 @@ namespace TL
reaction = reaction,
});
- /// Get message reactions See [bots: ✓]
+ /// Get message reactions » See [bots: ✓]
/// Peer
/// Message IDs
public static Task Messages_GetMessagesReactions(this Client client, InputPeer peer, int[] id)
@@ -15613,7 +15722,7 @@ namespace TL
id = id,
});
- /// Get full message reaction list See
+ /// Get message reaction list, along with the sender of each reaction. See
/// Peer
/// Message ID
/// Get only reactions of this type (UTF8 emoji)
@@ -15630,7 +15739,7 @@ namespace TL
limit = limit,
});
- /// Change the set of message reactions that can be used in a certain group, supergroup or channel See
+ /// Change the set of message reactions » that can be used in a certain group, supergroup or channel See
/// Group where to apply changes
/// Allowed reaction emojis
public static Task Messages_SetChatAvailableReactions(this Client client, InputPeer peer, string[] available_reactions)
@@ -15640,7 +15749,7 @@ namespace TL
available_reactions = available_reactions,
});
- /// Obtain available message reactions See
+ /// Obtain available message reactions » See
/// Hash for pagination, for more info click here
/// a null value means messages.availableReactionsNotModified
public static Task Messages_GetAvailableReactions(this Client client, int hash = default)
@@ -15649,7 +15758,8 @@ namespace TL
hash = hash,
});
- /// See
+ /// Change default emoji reaction to use in the quick reaction menu: the value is synced across devices and can be fetched using help.getAppConfig, reactions_default field. See
+ /// New emoji reaction
public static Task Messages_SetDefaultReaction(this Client client, string reaction)
=> client.Invoke(new Messages_SetDefaultReaction
{
@@ -15657,6 +15767,8 @@ namespace TL
});
/// Translate a given text See [bots: ✓]
+ /// If the text is a chat message, the peer ID
+ /// If the text is a chat message, the message ID
/// The text to translate
/// Two-letter ISO 639-1 language code of the language from which the message is translated, if not set will be autodetected
/// Two-letter ISO 639-1 language code of the language to which the message is translated
@@ -15689,7 +15801,7 @@ namespace TL
min_id = min_id,
});
- /// Mark message reactions as read See [bots: ✓]
+ /// Mark message reactions » as read See [bots: ✓]
/// Peer
public static Task Messages_ReadReactions(this Client client, InputPeer peer)
=> client.Invoke(new Messages_ReadReactions
@@ -15697,6 +15809,15 @@ namespace TL
peer = peer,
});
+ /// See
+ public static Task Messages_SearchSentMedia(this Client client, string q, MessagesFilter filter, int limit = int.MaxValue)
+ => client.Invoke(new Messages_SearchSentMedia
+ {
+ q = q,
+ filter = filter,
+ limit = limit,
+ });
+
/// Returns a current state of updates. See [bots: ✓]
public static Task Updates_GetState(this Client client)
=> client.Invoke(new Updates_GetState
@@ -15777,7 +15898,7 @@ namespace TL
limit = limit,
});
- /// Saves a part of file for futher sending to one of the methods. See [bots: ✓] Possible codes: 400 (details)
+ /// Saves a part of file for further sending to one of the methods. See [bots: ✓] Possible codes: 400 (details)
/// Random file identifier created by the client
/// Numerical order of a part
/// Binary data, contend of a part
@@ -15804,7 +15925,7 @@ namespace TL
limit = limit,
});
- /// Saves a part of a large file (over 10Mb in size) to be later passed to one of the methods. See [bots: ✓] Possible codes: 400 (details)
+ /// Saves a part of a large file (over 10 MB in size) to be later passed to one of the methods. See [bots: ✓] Possible codes: 400 (details)
/// Random file id, created by the client
/// Part sequence number
/// Total number of parts
@@ -15878,7 +15999,7 @@ namespace TL
{
});
- /// Returns info on data centre nearest to the user. See
+ /// Returns info on data center nearest to the user. See
public static Task Help_GetNearestDc(this Client client)
=> client.Invoke(new Help_GetNearestDc
{
@@ -15899,7 +16020,7 @@ namespace TL
{
});
- /// Returns the support user for the 'ask a question' feature. See
+ /// Returns the support user for the "ask a question" feature. See
public static Task Help_GetSupport(this Client client)
=> client.Invoke(new Help_GetSupport
{
@@ -16424,7 +16545,7 @@ namespace TL
random_id = random_id,
});
- /// Get a list of sponsored messages See
+ /// Get a list of sponsored messages See Possible codes: 400 (details)
/// Peer
public static Task Channels_GetSponsoredMessages(this Client client, InputChannelBase channel)
=> client.Invoke(new Channels_GetSponsoredMessages
@@ -16586,6 +16707,7 @@ namespace TL
/// Create a stickerset, bots only. See [bots: ✓] Possible codes: 400 (details)
/// Whether this is a mask stickerset
/// Whether this is an animated stickerset
+ /// Whether this is a video stickerset
/// Stickerset owner
/// Stickerset name, 1-64 chars
/// Sticker set name. Can contain only English letters, digits and underscores. Must end with "by" ( is case insensitive); 1-64 characters
@@ -16593,10 +16715,10 @@ namespace TL
/// Stickers
/// Used when importing stickers using the sticker import SDKs, specifies the name of the software that created the stickers
/// a null value means messages.stickerSetNotModified
- public static Task Stickers_CreateStickerSet(this Client client, InputUserBase user_id, string title, string short_name, InputStickerSetItem[] stickers, bool masks = false, bool animated = false, InputDocument thumb = null, string software = null)
+ public static Task Stickers_CreateStickerSet(this Client client, InputUserBase user_id, string title, string short_name, InputStickerSetItem[] stickers, bool masks = false, bool animated = false, bool videos = false, InputDocument thumb = null, string software = null)
=> client.Invoke(new Stickers_CreateStickerSet
{
- flags = (Stickers_CreateStickerSet.Flags)((masks ? 0x1 : 0) | (animated ? 0x2 : 0) | (thumb != null ? 0x4 : 0) | (software != null ? 0x8 : 0)),
+ flags = (Stickers_CreateStickerSet.Flags)((masks ? 0x1 : 0) | (animated ? 0x2 : 0) | (videos ? 0x10 : 0) | (thumb != null ? 0x4 : 0) | (software != null ? 0x8 : 0)),
user_id = user_id,
title = title,
short_name = short_name,
@@ -16770,14 +16892,15 @@ namespace TL
});
/// Create a group call or livestream See Possible codes: 400 (details)
+ /// Whether RTMP stream support should be enabled
/// Associate the group call or livestream to the provided group/supergroup/channel
/// Unique client message ID required to prevent creation of duplicate group calls
/// Call title
/// For scheduled group call or livestreams, the absolute date when the group call will start
- public static Task Phone_CreateGroupCall(this Client client, InputPeer peer, int random_id, string title = null, DateTime? schedule_date = null)
+ public static Task Phone_CreateGroupCall(this Client client, InputPeer peer, int random_id, bool rtmp_stream = false, string title = null, DateTime? schedule_date = null)
=> client.Invoke(new Phone_CreateGroupCall
{
- flags = (Phone_CreateGroupCall.Flags)((title != null ? 0x1 : 0) | (schedule_date != null ? 0x2 : 0)),
+ flags = (Phone_CreateGroupCall.Flags)((rtmp_stream ? 0x4 : 0) | (title != null ? 0x1 : 0) | (schedule_date != null ? 0x2 : 0)),
peer = peer,
random_id = random_id,
title = title,
@@ -16811,7 +16934,7 @@ namespace TL
source = source,
});
- /// Invite a set of users to a group call. See Possible codes: 403 (details)
+ /// Invite a set of users to a group call. See Possible codes: 400,403 (details)
/// The group call
/// The users to invite.
public static Task Phone_InviteToGroupCall(this Client client, InputGroupCall call, InputUserBase[] users)
@@ -16832,7 +16955,7 @@ namespace TL
/// Change group call settings See Possible codes: 400 (details)
/// Invalidate existing invite links
/// Group call
- /// Whether all users will bthat join this group calle muted by default upon joining the group call
+ /// Whether all users will that join this group call are muted by default upon joining the group call
public static Task Phone_ToggleGroupCallSettings(this Client client, InputGroupCall call, bool reset_invite_hash = false, bool? join_muted = default)
=> client.Invoke(new Phone_ToggleGroupCallSettings
{
@@ -16841,7 +16964,7 @@ namespace TL
join_muted = join_muted.GetValueOrDefault(),
});
- /// Get info about a group call See Possible codes: (details)
+ /// Get info about a group call See Possible codes: 400 (details)
/// The group call
/// Maximum number of results to return, see pagination
public static Task Phone_GetGroupCall(this Client client, InputGroupCall call, int limit = int.MaxValue)
@@ -16989,6 +17112,21 @@ namespace TL
call = call,
});
+ /// See
+ public static Task Phone_GetGroupCallStreamChannels(this Client client, InputGroupCall call)
+ => client.Invoke(new Phone_GetGroupCallStreamChannels
+ {
+ call = call,
+ });
+
+ /// See
+ public static Task Phone_GetGroupCallStreamRtmpUrl(this Client client, InputPeer peer, bool revoke)
+ => client.Invoke(new Phone_GetGroupCallStreamRtmpUrl
+ {
+ peer = peer,
+ revoke = revoke,
+ });
+
/// Get localization pack strings See Possible codes: 400 (details)
/// Language pack name
/// Language code
@@ -17011,7 +17149,7 @@ namespace TL
keys = keys,
});
- /// Get new strings in languagepack See Possible codes: 400 (details)
+ /// Get new strings in language pack See Possible codes: 400 (details)
/// Language pack
/// Language code
/// Previous localization pack version
@@ -18043,6 +18181,12 @@ namespace TL.Methods
}
}
+ [TLDef(0x8AF94344)]
+ public class Contacts_ResolvePhone : IMethod
+ {
+ public string phone;
+ }
+
[TLDef(0x63C66506)]
public class Messages_GetMessages : IMethod
{
@@ -19696,6 +19840,14 @@ namespace TL.Methods
public InputPeer peer;
}
+ [TLDef(0x107E31A0)]
+ public class Messages_SearchSentMedia : IMethod
+ {
+ public string q;
+ public MessagesFilter filter;
+ public int limit;
+ }
+
[TLDef(0xEDD4882A)]
public class Updates_GetState : IMethod { }
@@ -20387,6 +20539,7 @@ namespace TL.Methods
has_thumb = 0x4,
/// Field has a value
has_software = 0x8,
+ videos = 0x10,
}
}
@@ -20528,6 +20681,7 @@ namespace TL.Methods
has_title = 0x1,
/// Field has a value
has_schedule_date = 0x2,
+ rtmp_stream = 0x4,
}
}
@@ -20713,6 +20867,19 @@ namespace TL.Methods
public InputGroupCall call;
}
+ [TLDef(0x1AB21940)]
+ public class Phone_GetGroupCallStreamChannels : IMethod
+ {
+ public InputGroupCall call;
+ }
+
+ [TLDef(0xDEB3ABBF)]
+ public class Phone_GetGroupCallStreamRtmpUrl : IMethod
+ {
+ public InputPeer peer;
+ public bool revoke;
+ }
+
[TLDef(0xF2F2330A)]
public class Langpack_GetLangPack : IMethod
{
diff --git a/src/TL.Secret.cs b/src/TL.Secret.cs
index 34be440..8fd4e7c 100644
--- a/src/TL.Secret.cs
+++ b/src/TL.Secret.cs
@@ -102,13 +102,13 @@ namespace TL
/// Initialization vector
public byte[] iv;
}
- /// GeoPont attached to an encrypted message. See
+ /// GeoPoint attached to an encrypted message. See
[TLDef(0x35480A59)]
public class DecryptedMessageMediaGeoPoint : DecryptedMessageMedia
{
/// Latitude of point
public double lat;
- /// Longtitude of point
+ /// Longitude of point
public double lon;
}
/// Contact attached to an encrypted message. See
@@ -289,7 +289,7 @@ namespace TL
[TLDef(0xF3048883)]
public class DecryptedMessageActionNotifyLayer : DecryptedMessageAction
{
- /// Layer number, must be 17 or higher (this contructor was introduced in Layer 17).
+ /// Layer number, must be 17 or higher (this constructor was introduced in Layer 17).
public int layer;
}
/// User is preparing a message: typing, recording, uploading, etc. See
diff --git a/src/TL.Table.cs b/src/TL.Table.cs
index 1edcbd6..373016c 100644
--- a/src/TL.Table.cs
+++ b/src/TL.Table.cs
@@ -6,7 +6,7 @@ namespace TL
{
public static class Layer
{
- public const int Version = 138; // fetched 31/01/2022 22:18:08
+ public const int Version = 139; // fetched 01/03/2022 09:53:50
internal const uint VectorCtor = 0x1CB5C415;
internal const uint NullCtor = 0x56730BCC;
internal const uint RpcResultCtor = 0xF35C6D01;
@@ -941,6 +941,9 @@ namespace TL
[0x67CA4737] = typeof(Messages_TranslateNoResult),
[0xA214F7D0] = typeof(Messages_TranslateResultText),
[0x51B67EFF] = typeof(MessagePeerReaction),
+ [0x80EB48AF] = typeof(GroupCallStreamChannel),
+ [0xD0E482B2] = typeof(Phone_GroupCallStreamChannels),
+ [0x2DBF3432] = typeof(Phone_GroupCallStreamRtmpUrl),
// from TL.Secret:
[0xBB718624] = typeof(Layer66.SendMessageUploadRoundAction),
[0xE50511D8] = typeof(Layer45.DecryptedMessageMediaWebPage),