diff --git a/.github/dev.yml b/.github/dev.yml
index 6b18a3e..5412eb9 100644
--- a/.github/dev.yml
+++ b/.github/dev.yml
@@ -2,7 +2,7 @@ pr: none
trigger:
- master
-name: 3.3.3-dev.$(Rev:r)
+name: 3.3.4-dev.$(Rev:r)
pool:
vmImage: ubuntu-latest
diff --git a/src/TL.Schema.cs b/src/TL.Schema.cs
index a86dd6f..81038fe 100644
--- a/src/TL.Schema.cs
+++ b/src/TL.Schema.cs
@@ -199,6 +199,7 @@ namespace TL
has_stickers = 0x1,
/// Field has a value
has_ttl_seconds = 0x2,
+ /// Whether this media should be hidden behind a spoiler warning
spoiler = 0x4,
}
}
@@ -217,6 +218,7 @@ namespace TL
{
/// Field has a value
has_ttl_seconds = 0x1,
+ /// Whether this media should be hidden behind a spoiler warning
spoiler = 0x2,
}
}
@@ -271,6 +273,7 @@ namespace TL
nosound_video = 0x8,
/// Force the media file to be uploaded as document
force_file = 0x10,
+ /// Whether this media should be hidden behind a spoiler warning
spoiler = 0x20,
}
}
@@ -293,6 +296,7 @@ namespace TL
has_ttl_seconds = 0x1,
/// Field has a value
has_query = 0x2,
+ /// Whether this media should be hidden behind a spoiler warning
spoiler = 0x4,
}
}
@@ -328,6 +332,7 @@ namespace TL
{
/// Field has a value
has_ttl_seconds = 0x1,
+ /// Whether this media should be hidden behind a spoiler warning
spoiler = 0x2,
}
}
@@ -346,6 +351,7 @@ namespace TL
{
/// Field has a value
has_ttl_seconds = 0x1,
+ /// Whether this media should be hidden behind a spoiler warning
spoiler = 0x2,
}
}
@@ -712,6 +718,7 @@ namespace TL
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// Flags, see TL conditional fields
public Flags2 flags2;
/// ID of the user
public long id;
@@ -739,6 +746,7 @@ namespace TL
[IfFlag(22)] public string lang_code;
/// Emoji status
[IfFlag(30)] public EmojiStatus emoji_status;
+ /// Additional usernames
[IfFlag(32)] public Username[] usernames;
[Flags] public enum Flags : uint
@@ -949,6 +957,7 @@ namespace TL
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// Flags, see TL conditional fields
public Flags2 flags2;
/// ID of the channel
public long id;
@@ -972,6 +981,7 @@ namespace TL
[IfFlag(18)] public ChatBannedRights default_banned_rights;
/// Participant count
[IfFlag(17)] public int participants_count;
+ /// Additional usernames
[IfFlag(32)] public Username[] usernames;
[Flags] public enum Flags : uint
@@ -1026,6 +1036,7 @@ namespace TL
join_to_send = 0x10000000,
/// Whether a user's join request will have to be approved by administrators, toggle using Channels_ToggleJoinRequest
join_request = 0x20000000,
+ /// Whether this supergroup is a forum
forum = 0x40000000,
}
@@ -1172,6 +1183,7 @@ namespace TL
has_requests_pending = 0x20000,
/// Field has a value
has_available_reactions = 0x40000,
+ /// Whether real-time chat translation is disabled.
translations_disabled = 0x80000,
}
@@ -1355,8 +1367,11 @@ namespace TL
{
/// Can we delete this channel?
can_delete_channel = 0x1,
+ /// Whether native antispam functionality is enabled in this supergroup.
antispam = 0x2,
+ /// Whether the participant list is hidden.
participants_hidden = 0x4,
+ /// Whether real-time chat translation is disabled.
translations_disabled = 0x8,
}
@@ -1721,6 +1736,7 @@ namespace TL
has_photo = 0x1,
/// Field has a value
has_ttl_seconds = 0x4,
+ /// Whether this media should be hidden behind a spoiler warning
spoiler = 0x8,
}
}
@@ -1768,6 +1784,7 @@ namespace TL
has_ttl_seconds = 0x4,
/// Whether this is a normal sticker, if not set this is a premium sticker and a premium sticker animation must be played.
nopremium = 0x8,
+ /// Whether this media should be hidden behind a spoiler warning
spoiler = 0x10,
}
}
@@ -2190,7 +2207,7 @@ namespace TL
/// Duration of the gifted Telegram Premium subscription
public int months;
}
- /// See
+ /// A forum topic was created. See
[TLDef(0x0D999256)]
public class MessageActionTopicCreate : MessageAction
{
@@ -2209,15 +2226,19 @@ namespace TL
has_icon_emoji_id = 0x1,
}
}
- /// See
+ /// Forum topic information was edited. See
[TLDef(0xC0944820)]
public class MessageActionTopicEdit : MessageAction
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// Topic title.
[IfFlag(0)] public string title;
+ /// ID of the custom emoji used as topic icon.
[IfFlag(1)] public long icon_emoji_id;
+ /// Whether the topic was closed.
[IfFlag(2)] public bool closed;
+ /// Whether the topic was hidden.
[IfFlag(3)] public bool hidden;
[Flags] public enum Flags : uint
@@ -2238,11 +2259,13 @@ namespace TL
{
public PhotoBase photo;
}
- /// See
+ /// Contains info about a peer that the user shared with the bot after clicking on a button. See
[TLDef(0xFE77345D)]
public class MessageActionRequestedPeer : MessageAction
{
+ /// button_id contained in the
public int button_id;
+ /// The shared peer
public Peer peer;
}
@@ -2278,10 +2301,11 @@ namespace TL
public PeerNotifySettings notify_settings;
/// PTS
[IfFlag(0)] public int pts;
- /// Message draft
+ /// Message draft
[IfFlag(1)] public DraftMessageBase draft;
/// Peer folder ID, for more info click here
[IfFlag(4)] public int folder_id;
+ /// Time-to-live of all messages sent in this dialog
[IfFlag(5)] public int ttl_period;
[Flags] public enum Flags : uint
@@ -2533,6 +2557,7 @@ namespace TL
[IfFlag(1)] public int otherwise_relogin_days;
/// Temporary passport sessions
[IfFlag(0)] public int tmp_sessions;
+ /// A future auth token
[IfFlag(2)] public byte[] future_auth_token;
/// Info on authorized user
public UserBase user;
@@ -2591,11 +2616,13 @@ namespace TL
/// All channels See
[TLDef(0xB1DB7C7E)]
public class InputNotifyBroadcasts : InputNotifyPeerBase { }
- /// See
+ /// Notifications generated by a topic in a forum. See
[TLDef(0x5C467992)]
public class InputNotifyForumTopic : InputNotifyPeerBase
{
+ /// Forum ID
public InputPeer peer;
+ /// Topic ID
public int top_msg_id;
}
@@ -3070,6 +3097,7 @@ namespace TL
[IfFlag(2)] public int offset_id_offset;
/// Found messages
public MessageBase[] messages;
+ /// Forum topic information
public ForumTopicBase[] topics;
/// Chats
public Dictionary chats;
@@ -3273,6 +3301,7 @@ namespace TL
public string first_name;
/// New last name. Corresponds to the new value of real_last_name field of the .
public string last_name;
+ /// Usernames.
public Username[] usernames;
}
/// New encrypted message. See
@@ -3698,6 +3727,7 @@ namespace TL
public Flags flags;
/// The peer to which the draft is associated
public Peer peer;
+ /// ID of the forum topic to which the draft is associated
[IfFlag(0)] public int top_msg_id;
/// The draft
public DraftMessageBase draft;
@@ -3857,6 +3887,7 @@ namespace TL
public Flags flags;
/// Channel/supergroup ID
public long channel_id;
+ /// Forum topic ID.
[IfFlag(0)] public int top_msg_id;
/// IDs of messages that were read
public int[] messages;
@@ -4335,6 +4366,7 @@ namespace TL
public Peer peer;
/// Message ID
public int msg_id;
+ /// Forum topic ID
[IfFlag(0)] public int top_msg_id;
/// Reactions
public MessageReactions reactions;
@@ -4429,27 +4461,32 @@ namespace TL
public int msg_id;
public MessageExtendedMediaBase extended_media;
}
- /// See
+ /// A forum topic » was pinned or unpinned. See
[TLDef(0x192EFBE3)]
public class UpdateChannelPinnedTopic : Update
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// The forum ID
public long channel_id;
+ /// The topic ID
public int topic_id;
[Flags] public enum Flags : uint
{
+ /// Whether the topic was pinned or unpinned
pinned = 0x1,
}
}
- /// See
+ /// The pinned topics of a forum have changed. See
[TLDef(0xFE198602)]
public class UpdateChannelPinnedTopics : Update
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// Forum ID.
public long channel_id;
+ /// Ordered list containing the IDs of all pinned topics.
[IfFlag(0)] public int[] order;
[Flags] public enum Flags : uint
@@ -4464,7 +4501,7 @@ namespace TL
{
public long user_id;
}
- /// See
+ /// Media autosave settings have changed and must be refetched using Account_GetAutoSaveSettings. See
[TLDef(0xEC05B097)]
public class UpdateAutoSaveSettings : Update { }
/// See
@@ -5469,11 +5506,13 @@ namespace TL
/// Channel notification settings See
[TLDef(0xD612E8EF)]
public class NotifyBroadcasts : NotifyPeerBase { }
- /// See
+ /// Notifications generated by a topic in a forum. See
[TLDef(0x226E6308)]
public class NotifyForumTopic : NotifyPeerBase
{
+ /// Forum ID
public Peer peer;
+ /// Topic ID
public int top_msg_id;
}
@@ -6328,7 +6367,7 @@ namespace TL
/// Default custom emoji status stickerset See
[TLDef(0x29D0F5EE)]
public class InputStickerSetEmojiDefaultStatuses : InputStickerSet { }
- /// See
+ /// Default custom emoji stickerset for forum topic icons See
[TLDef(0x44C1F8E9)]
public class InputStickerSetEmojiDefaultTopicIcons : InputStickerSet { }
@@ -6623,11 +6662,13 @@ namespace TL
public class KeyboardButtonSimpleWebView : KeyboardButtonWebView
{
}
- /// See
+ /// Prompts the user to select and share a peer with the bot using Messages_SendBotRequestedPeer See
[TLDef(0x0D0B468C, inheritBefore = true)]
public class KeyboardButtonRequestPeer : KeyboardButton
{
+ /// Button ID, to be passed to Messages_SendBotRequestedPeer.
public int button_id;
+ /// Filtering criteria to use for the peer selection list shown to the user.
public RequestPeerType peer_type;
}
@@ -7757,7 +7798,7 @@ namespace TL
/// The results
public BotInlineResultBase[] results;
/// Caching validity of the results
- public DateTime cache_time;
+ public int cache_time;
/// Users mentioned in the results
public Dictionary users;
@@ -7837,7 +7878,7 @@ namespace TL
FlashCall = 0x226CCEFB,
///The next time, the authentication code will be delivered via an immediately canceled incoming call, handled manually by the user.
MissedCall = 0xD61AD6EE,
- ///See
+ ///The next time, the authentication code will be delivered via fragment.com
FragmentSms = 0x06ED998C,
}
@@ -7954,7 +7995,7 @@ namespace TL
/// URL to open
[IfFlag(2)] public string url;
/// For how long should this answer be cached
- public DateTime cache_time;
+ public int cache_time;
[Flags] public enum Flags : uint
{
@@ -9334,6 +9375,7 @@ namespace TL
public string emoji;
/// Coordinates for mask sticker
[IfFlag(0)] public MaskCoords mask_coords;
+ /// Set of keywords, separated by commas
[IfFlag(1)] public string keywords;
[Flags] public enum Flags : uint
@@ -10125,45 +10167,54 @@ namespace TL
/// New allowed reaction emojis
public ChatReactions new_value;
}
- /// See
+ /// The list of usernames associated with the channel was changed See
[TLDef(0xF04FB3A9)]
public class ChannelAdminLogEventActionChangeUsernames : ChannelAdminLogEventAction
{
+ /// Previous set of usernames
public string[] prev_value;
+ /// New set of usernames
public string[] new_value;
}
- /// See
+ /// Forum functionality was enabled or disabled. See
[TLDef(0x02CC6383)]
public class ChannelAdminLogEventActionToggleForum : ChannelAdminLogEventAction
{
+ /// Whether forum functionality was enabled or disabled.
public bool new_value;
}
- /// See
+ /// A forum topic was created See
[TLDef(0x58707D28)]
public class ChannelAdminLogEventActionCreateTopic : ChannelAdminLogEventAction
{
+ /// The forum topic that was created
public ForumTopicBase topic;
}
- /// See
+ /// A forum topic was edited See
[TLDef(0xF06FE208)]
public class ChannelAdminLogEventActionEditTopic : ChannelAdminLogEventAction
{
+ /// Previous topic information
public ForumTopicBase prev_topic;
+ /// New topic information
public ForumTopicBase new_topic;
}
- /// See
+ /// A forum topic was deleted See
[TLDef(0xAE168909)]
public class ChannelAdminLogEventActionDeleteTopic : ChannelAdminLogEventAction
{
+ /// The forum topic that was deleted
public ForumTopicBase topic;
}
- /// See
+ /// A forum topic was pinned or unpinned See
[TLDef(0x5D8D353B)]
public class ChannelAdminLogEventActionPinTopic : ChannelAdminLogEventAction
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// Previous topic information
[IfFlag(0)] public ForumTopicBase prev_topic;
+ /// New topic information
[IfFlag(1)] public ForumTopicBase new_topic;
[Flags] public enum Flags : uint
@@ -10174,10 +10225,11 @@ namespace TL
has_new_topic = 0x2,
}
}
- /// See
+ /// Native antispam functionality was enabled or disabled. See
[TLDef(0x64F36DFC)]
public class ChannelAdminLogEventActionToggleAntiSpam : ChannelAdminLogEventAction
{
+ /// Whether antispam functionality was enabled or disabled.
public bool new_value;
}
@@ -10252,6 +10304,7 @@ namespace TL
invites = 0x8000,
/// A message was posted in a channel
send = 0x10000,
+ /// Forum-related events
forums = 0x20000,
}
}
@@ -11525,7 +11578,7 @@ namespace TL
{
/// Flags, see TL conditional fields
public Flags flags;
- /// Previously stored logout tokens, see the documentation for more info »
+ /// Previously stored future auth tokens, see the documentation for more info »
[IfFlag(6)] public byte[][] logout_tokens;
[IfFlag(8)] public string token;
[IfFlag(8)] public bool app_sandbox;
@@ -13355,13 +13408,13 @@ namespace TL
public IPeerInfo UserOrChat(Peer peer) => peer?.UserOrChat(users, chats);
}
- /// Logout token » to be used on subsequent authorizations See
+ /// Future auth token » to be used on subsequent authorizations See
[TLDef(0xC3A2835F)]
public class Auth_LoggedOut : IObject
{
/// Flags, see TL conditional fields
public Flags flags;
- /// Logout token » to be used on subsequent authorizations
+ /// Future auth token » to be used on subsequent authorizations
[IfFlag(0)] public byte[] future_auth_token;
[Flags] public enum Flags : uint
@@ -13494,6 +13547,7 @@ namespace TL
public Flags flags;
/// Peer that reacted to the message
public Peer peer_id;
+ /// When was this reaction added
public DateTime date;
/// Reaction emoji
public Reaction reaction;
@@ -13588,6 +13642,7 @@ namespace TL
inactive = 0x1,
/// True, if the bot supports the "settings_button_pressed" event »
has_settings = 0x2,
+ /// Whether the bot would like to send messages to the user.
request_write_access = 0x4,
}
}
@@ -14066,92 +14121,119 @@ namespace TL
public MessageMedia media;
}
- /// See
+ /// Keywords for a certain sticker See
[TLDef(0xFCFEB29C)]
public class StickerKeyword : IObject
{
+ /// Sticker ID
public long document_id;
+ /// Keywords
public string[] keyword;
}
- /// See
+ /// Contains information about a username. See
[TLDef(0xB4073647)]
public class Username : IObject
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// The username.
public string username;
[Flags] public enum Flags : uint
{
+ /// Whether the username is editable, meaning it wasn't bought on fragment.
editable = 0x1,
+ /// Whether the username is active.
active = 0x2,
}
}
- /// See Derived classes: ,
+ /// Contains information about a forum topic See Derived classes: ,
public abstract class ForumTopicBase : IObject
{
+ /// The ID of the deleted forum topic.
public virtual int ID { get; }
}
- /// See
+ /// Represents a deleted forum topic. See
[TLDef(0x023F109B)]
public class ForumTopicDeleted : ForumTopicBase
{
+ /// The ID of the deleted forum topic.
public int id;
+ /// The ID of the deleted forum topic.
public override int ID => id;
}
- /// See
+ /// Represents a forum topic. See
[TLDef(0x71701DA9)]
public class ForumTopic : ForumTopicBase
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// Topic ID
public int id;
+ /// Topic creation date
public DateTime date;
+ /// Topic title
public string title;
/// If no custom emoji icon is specified, specifies the color of the fallback topic icon (RGB), one of 0x6FB9F0, 0xFFD67E, 0xCB86DB, 0x8EEE98, 0xFF93B2, or 0xFB6F5F.
public int icon_color;
/// ID of the custom emoji used as topic icon.
[IfFlag(0)] public long icon_emoji_id;
+ /// ID of the last message that was sent to this topic
public int top_message;
+ /// Position up to which all incoming messages are read.
public int read_inbox_max_id;
+ /// Position up to which all outgoing messages are read.
public int read_outbox_max_id;
+ /// Number of unread messages
public int unread_count;
+ /// Number of unread mentions
public int unread_mentions_count;
+ /// Number of unread reactions to messages you sent
public int unread_reactions_count;
+ /// ID of the peer that created the topic
public Peer from_id;
+ /// Notification settings
public PeerNotifySettings notify_settings;
+ /// Message draft
[IfFlag(4)] public DraftMessageBase draft;
[Flags] public enum Flags : uint
{
/// Field has a value
has_icon_emoji_id = 0x1,
+ /// Whether the topic was created by the current user
my = 0x2,
+ /// Whether the topic is closed (no messages can be sent to it)
closed = 0x4,
+ /// Whether the topic is pinned
pinned = 0x8,
/// Field has a value
has_draft = 0x10,
short_ = 0x20,
+ /// Whether the topic is hidden (only valid for the "General" topic, id=1)
hidden = 0x40,
}
+ /// Topic ID
public override int ID => id;
}
- /// See
+ /// Contains information about multiple forum topics See
[TLDef(0x367617D3)]
public class Messages_ForumTopics : IObject, IPeerResolver
{
/// Flags, see TL conditional fields
public Flags flags;
public int count;
+ /// Forum topics
public ForumTopicBase[] topics;
public MessageBase[] messages;
public Dictionary chats;
public Dictionary users;
+ /// Event count after generation
public int pts;
[Flags] public enum Flags : uint
@@ -14162,10 +14244,11 @@ namespace TL
public IPeerInfo UserOrChat(Peer peer) => peer?.UserOrChat(users, chats);
}
- /// See
+ /// Contains info about the default value of the Time-To-Live setting, applied to all new chats. See
[TLDef(0x43B46B20)]
public class DefaultHistoryTTL : IObject
{
+ /// Time-To-Live setting applied to all new chats.
public int period;
}
@@ -14179,15 +14262,17 @@ namespace TL
public DateTime expires;
}
- /// See Derived classes: , ,
+ /// Filtering criteria to use for the peer selection list shown to the user. See Derived classes: , ,
public abstract class RequestPeerType : IObject { }
- /// See
+ /// Choose a user. See
[TLDef(0x5F3B8A00)]
public class RequestPeerTypeUser : RequestPeerType
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// Whether to allow choosing only bots.
[IfFlag(0)] public bool bot;
+ /// Whether to allow choosing only Premium users.
[IfFlag(1)] public bool premium;
[Flags] public enum Flags : uint
@@ -14198,19 +14283,24 @@ namespace TL
has_premium = 0x2,
}
}
- /// See
+ /// Choose a chat or supergroup See
[TLDef(0xC9F06E1B)]
public class RequestPeerTypeChat : RequestPeerType
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// If specified, allows only choosing channels with or without a username, according to the value of .
[IfFlag(3)] public bool has_username;
+ /// If specified, allows only choosing chats or supergroups that are or aren't forums, according to the value of .
[IfFlag(4)] public bool forum;
+ /// If specified, allows only choosing chats or supergroups where the current user is an admin with at least the specified admin rights.
[IfFlag(1)] public ChatAdminRights user_admin_rights;
+ /// If specified, allows only choosing chats or supergroups where the bot is an admin with at least the specified admin rights.
[IfFlag(2)] public ChatAdminRights bot_admin_rights;
[Flags] public enum Flags : uint
{
+ /// Whether to allow only choosing chats or supergroups that were created by the current user.
creator = 0x1,
/// Field has a value
has_user_admin_rights = 0x2,
@@ -14220,21 +14310,26 @@ namespace TL
has_has_username = 0x8,
/// Field has a value
has_forum = 0x10,
+ /// Whether to allow only choosing chats or supergroups where the bot is a participant.
bot_participant = 0x20,
}
}
- /// See
+ /// Choose a channel See
[TLDef(0x339BEF6C)]
public class RequestPeerTypeBroadcast : RequestPeerType
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// If specified, allows only choosing channels with or without a username, according to the value of .
[IfFlag(3)] public bool has_username;
+ /// If specified, allows only choosing channels where the current user is an admin with at least the specified admin rights.
[IfFlag(1)] public ChatAdminRights user_admin_rights;
+ /// If specified, allows only choosing channels where the bot is an admin with at least the specified admin rights.
[IfFlag(2)] public ChatAdminRights bot_admin_rights;
[Flags] public enum Flags : uint
{
+ /// Whether to allow only choosing channels that were created by the current user.
creator = 0x1,
/// Field has a value
has_user_admin_rights = 0x2,
@@ -14272,11 +14367,13 @@ namespace TL
public EmojiGroup[] groups;
}
- /// See
+ /// Styled text with message entities See
[TLDef(0x751F3146)]
public class TextWithEntities : IObject
{
+ /// Text
public string text;
+ /// Message entities for styled text
public MessageEntity[] entities;
}
@@ -14289,86 +14386,110 @@ namespace TL
public TextWithEntities[] result;
}
- /// See
+ /// Media autosave settings See
[TLDef(0xC84834CE)]
public class AutoSaveSettings : IObject
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// If set, specifies a size limit for autosavable videos
[IfFlag(2)] public long video_max_size;
[Flags] public enum Flags : uint
{
+ /// Whether photos should be autosaved to the gallery.
photos = 0x1,
+ /// Whether videos should be autosaved to the gallery.
videos = 0x2,
/// Field has a value
has_video_max_size = 0x4,
}
}
- /// See
+ /// Peer-specific media autosave settings See
[TLDef(0x81602D47)]
public class AutoSaveException : IObject
{
+ /// The peer
public Peer peer;
+ /// Media autosave settings
public AutoSaveSettings settings;
}
- /// See
+ /// Contains media autosave settings See
[TLDef(0x4C3E069D)]
public class Account_AutoSaveSettings : IObject, IPeerResolver
{
+ /// Default media autosave settings for private chats
public AutoSaveSettings users_settings;
+ /// Default media autosave settings for groups and supergroups
public AutoSaveSettings chats_settings;
+ /// Default media autosave settings for channels
public AutoSaveSettings broadcasts_settings;
+ /// Peer-specific granular autosave settings
public AutoSaveException[] exceptions;
+ /// Chats mentioned in the peer-specific granular autosave settings
public Dictionary chats;
+ /// Users mentioned in the peer-specific granular autosave settings
public Dictionary users;
/// returns a or for the given Peer
public IPeerInfo UserOrChat(Peer peer) => peer?.UserOrChat(users, chats);
}
- /// See
+ /// Contains various client configuration parameters See
/// a value means help.appConfigNotModified
[TLDef(0xDD18782E)]
public class Help_AppConfig : IObject
{
+ /// Hash for pagination, for more info click here
public int hash;
+ /// Client configuration parameters
public JsonObject config;
}
- /// See Derived classes: ,
+ /// Used to fetch information about a bot web app See Derived classes: ,
public abstract class InputBotApp : IObject { }
- /// See
+ /// Used to fetch information about a bot web app by its ID See
[TLDef(0xA920BD7A)]
public class InputBotAppID : InputBotApp
{
+ /// Bot web app ID.
public long id;
- /// ⚠ REQUIRED FIELD. See how to obtain it
+ /// ⚠ REQUIRED FIELD. See how to obtain it
Access hash, obtained from the .
public long access_hash;
}
- /// See
+ /// Used to fetch information about a bot web app by its short name See
[TLDef(0x908C0407)]
public class InputBotAppShortName : InputBotApp
{
+ /// ID of the bot that owns the bot web app
public InputUserBase bot_id;
+ /// Short name, obtained from a bot web app deep link
public string short_name;
}
- /// See
+ /// Contains information about a bot web app. See
/// a value means botAppNotModified
[TLDef(0x95FCD1D6)]
public class BotApp : IObject
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// Bot web app ID
public long id;
+ /// Bot web app access hash
public long access_hash;
+ /// Bot web app short name, used to generate bot web app deep links.
public string short_name;
+ /// Bot web app title.
public string title;
+ /// Bot web app description.
public string description;
+ /// Bot web app photo.
public PhotoBase photo;
+ /// Bot web app animation.
[IfFlag(0)] public DocumentBase document;
+ /// Hash to pass to Messages_GetBotApp, to avoid refetching bot app info if it hasn't changed.
public long hash;
[Flags] public enum Flags : uint
@@ -14378,27 +14499,31 @@ namespace TL
}
}
- /// See
+ /// Contains information about a bot web app See
[TLDef(0xEB50ADF5)]
public class Messages_BotApp : IObject
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// Bot app information
public BotApp app;
[Flags] public enum Flags : uint
{
+ /// Whether the web app was never used by the user, and confirmation must be asked from the user before opening it.
inactive = 0x1,
+ /// The bot is asking permission to send messages to the user: if the user agrees, set the write_allowed flag when invoking Messages_RequestAppWebView.
request_write_access = 0x2,
}
}
- /// See Derived classes:
+ /// Contains the link that must be used to open a bot web app. See Derived classes:
public abstract class AppWebViewResult : IObject { }
- /// See
+ /// Contains the link that must be used to open a bot web app. See
[TLDef(0x3C1B4F0D)]
public class AppWebViewResultUrl : AppWebViewResult
{
+ /// The URL to open
public string url;
}
@@ -14410,11 +14535,13 @@ namespace TL
public string url;
}
- /// See
+ /// Contains info about when a certain participant has read a message See
[TLDef(0x4A4FF172)]
public class ReadParticipantDate : IObject
{
+ /// User ID
public long user_id;
+ /// When the user read the message
public DateTime date;
}
}
diff --git a/src/TL.SchemaFuncs.cs b/src/TL.SchemaFuncs.cs
index 9c343e8..979e3e7 100644
--- a/src/TL.SchemaFuncs.cs
+++ b/src/TL.SchemaFuncs.cs
@@ -1124,7 +1124,7 @@ namespace TL
settings = settings,
});
- /// See
+ /// Clear all peer-specific autosave settings. See
public static Task Account_DeleteAutoSaveExceptions(this Client client)
=> client.Invoke(new Account_DeleteAutoSaveExceptions
{
@@ -2065,7 +2065,7 @@ namespace TL
/// 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.
/// 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, string next_offset = null, InlineBotSwitchPM switch_pm = null, InlineBotWebView switch_webview = null, bool gallery = false, bool private_ = false)
+ public static Task Messages_SetInlineBotResults(this Client client, long query_id, InputBotInlineResultBase[] results, int cache_time, string next_offset = null, InlineBotSwitchPM switch_pm = null, InlineBotWebView switch_webview = null, bool gallery = false, bool private_ = false)
=> client.Invoke(new Messages_SetInlineBotResults
{
flags = (Messages_SetInlineBotResults.Flags)((next_offset != null ? 0x4 : 0) | (switch_pm != null ? 0x8 : 0) | (switch_webview != null ? 0x10 : 0) | (gallery ? 0x1 : 0) | (private_ ? 0x2 : 0)),
@@ -2176,7 +2176,7 @@ namespace TL
/// Popup to show
/// URL to open
/// Cache validity
- public static Task Messages_SetBotCallbackAnswer(this Client client, long query_id, DateTime cache_time, string message = null, string url = null, bool alert = false)
+ public static Task Messages_SetBotCallbackAnswer(this Client client, long query_id, int cache_time, string message = null, string url = null, bool alert = false)
=> client.Invoke(new Messages_SetBotCallbackAnswer
{
flags = (Messages_SetBotCallbackAnswer.Flags)((message != null ? 0x1 : 0) | (url != null ? 0x4 : 0) | (alert ? 0x2 : 0)),
@@ -3330,6 +3330,7 @@ namespace TL
});
/// Enable or disable web bot attachment menu » See
+ /// Whether the user authorizes the bot to write messages to them, if requested by .request_write_access
/// Bot ID
/// Toggle
public static Task Messages_ToggleBotInAttachMenu(this Client client, InputUserBase bot, bool enabled, bool write_allowed = false)
@@ -3523,20 +3524,25 @@ namespace TL
id = id,
});
- /// See [bots: ✓]
+ /// Changes the default value of the Time-To-Live setting, applied to all new chats. See [bots: ✓]
+ /// The new default Time-To-Live of all messages sent in new chats.
public static Task Messages_SetDefaultHistoryTTL(this Client client, int period)
=> client.Invoke(new Messages_SetDefaultHistoryTTL
{
period = period,
});
- /// See [bots: ✓]
+ /// Gets the default value of the Time-To-Live setting, applied to all new chats. See [bots: ✓]
public static Task Messages_GetDefaultHistoryTTL(this Client client)
=> client.Invoke(new Messages_GetDefaultHistoryTTL
{
});
- /// See [bots: ✓]
+ /// Send a chosen peer, as requested by a button. See [bots: ✓]
+ /// The bot that sent the button.
+ /// ID of the message that contained the reply keyboard with the button.
+ /// The button_id field from the .
+ /// The chosen peer.
public static Task Messages_SendBotRequestedPeer(this Client client, InputPeer peer, int msg_id, int button_id, InputPeer requested_peer)
=> client.Invoke(new Messages_SendBotRequestedPeer
{
@@ -3591,7 +3597,9 @@ namespace TL
peer = peer,
});
- /// See [bots: ✓] Possible codes: 400 (details)
+ /// Obtain information about a bot web app See [bots: ✓] Possible codes: 400 (details)
+ /// Bot app information obtained from a bot web app deep link ».
+ /// Hash for pagination, for more info click here
public static Task Messages_GetBotApp(this Client client, InputBotApp app, long hash = default)
=> client.Invoke(new Messages_GetBotApp
{
@@ -4510,7 +4518,7 @@ namespace TL
topics = topics,
});
- /// Edit forum topic; requires manage_topics rights. See [bots: ✓]
+ /// Edit forum topic; requires manage_topics rights. See [bots: ✓] Possible codes: 400 (details)
/// Supergroup
/// Topic ID
/// If present, will update the topic title (maximum UTF-8 length: 128).
@@ -4869,7 +4877,8 @@ namespace TL
/// Set stickerset thumbnail See [bots: ✓] Possible codes: 400 (details)
/// Stickerset
- /// Thumbnail
+ /// Thumbnail (only for normal stickersets, not custom emoji stickersets).
+ /// Only for custom emoji stickersets, ID of a custom emoji present in the set to use as thumbnail; pass 0 to fallback to the first custom emoji of the set.
/// a null value means messages.stickerSetNotModified
public static Task Stickers_SetStickerSetThumb(this Client client, InputStickerSet stickerset, InputDocument thumb = null, long? thumb_document_id = null)
=> client.Invoke(new Stickers_SetStickerSetThumb
@@ -4896,7 +4905,7 @@ namespace TL
title = title,
});
- /// Update the keywords, emojis or mask coordinates of a sticker See [bots: ✓] Possible codes: 400 (details)
+ /// Update the keywords, emojis or mask coordinates of a sticker, bots only. See [bots: ✓] Possible codes: 400 (details)
/// The sticker
/// If set, updates the emoji list associated to the sticker
/// If set, updates the mask coordinates
@@ -7047,7 +7056,7 @@ namespace TL.Methods
public Flags flags;
public long query_id;
public InputBotInlineResultBase[] results;
- public DateTime cache_time;
+ public int cache_time;
[IfFlag(2)] public string next_offset;
[IfFlag(3)] public InlineBotSwitchPM switch_pm;
[IfFlag(4)] public InlineBotWebView switch_webview;
@@ -7162,7 +7171,7 @@ namespace TL.Methods
public long query_id;
[IfFlag(0)] public string message;
[IfFlag(2)] public string url;
- public DateTime cache_time;
+ public int cache_time;
[Flags] public enum Flags : uint
{
diff --git a/src/TL.Table.cs b/src/TL.Table.cs
index 9f5eb29..f993e3c 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 = 156; // fetched 26/03/2023 15:54:09
+ public const int Version = 156; // fetched 26/03/2023 17:25:51
internal const int SecretChats = 144;
internal const int MTProto2 = 73;
internal const uint VectorCtor = 0x1CB5C415;