mirror of
https://github.com/wiz0u/WTelegramClient.git
synced 2025-12-06 06:52:01 +01:00
Upgrade to layer 148: Topics, Usernames, Sticker keywords...
+ support for flags2 has_fields
This commit is contained in:
parent
b902b33558
commit
fd42d3e6df
|
|
@ -50,7 +50,7 @@ namespace WTelegramClientTest
|
|||
case UpdateChannelUserTyping ucut2: Console.WriteLine($"{Peer(ucut2.from_id)} is {ucut2.action} in {Chat(ucut2.channel_id)}"); break;
|
||||
case UpdateChatParticipants { participants: ChatParticipants cp }: Console.WriteLine($"{cp.participants.Length} participants in {Chat(cp.chat_id)}"); break;
|
||||
case UpdateUserStatus uus: Console.WriteLine($"{User(uus.user_id)} is now {uus.status.GetType().Name[10..]}"); break;
|
||||
case UpdateUserName uun: Console.WriteLine($"{User(uun.user_id)} has changed profile name: @{uun.username} {uun.first_name} {uun.last_name}"); break;
|
||||
case UpdateUserName uun: Console.WriteLine($"{User(uun.user_id)} has changed profile name: {uun.first_name} {uun.last_name}"); break;
|
||||
case UpdateUserPhoto uup: Console.WriteLine($"{User(uup.user_id)} has changed profile photo"); break;
|
||||
default: Console.WriteLine(update.GetType().Name); break; // there are much more update types than the above cases
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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/_artifacts/feed/WTelegramClient/NuGet/WTelegramClient)
|
||||
[](https://t.me/WTelegramClient)
|
||||
[](http://t.me/WTelegramBot?start=donate)
|
||||
|
|
|
|||
275
src/TL.Schema.cs
275
src/TL.Schema.cs
|
|
@ -698,11 +698,12 @@ namespace TL
|
|||
public long id;
|
||||
}
|
||||
/// <summary>Indicates info about a certain user <para>See <a href="https://corefork.telegram.org/constructor/user"/></para></summary>
|
||||
[TLDef(0x5D99ADEE)]
|
||||
[TLDef(0x8F97C628)]
|
||||
public partial class User : UserBase
|
||||
{
|
||||
/// <summary>Flags, see <a href="https://corefork.telegram.org/mtproto/TL-combinators#conditional-fields">TL conditional fields</a></summary>
|
||||
public Flags flags;
|
||||
public Flags2 flags2;
|
||||
/// <summary>ID of the user</summary>
|
||||
public long id;
|
||||
/// <summary>Access hash of the user</summary>
|
||||
|
|
@ -729,6 +730,7 @@ namespace TL
|
|||
[IfFlag(22)] public string lang_code;
|
||||
/// <summary><a href="https://corefork.telegram.org/api/emoji-status">Emoji status</a></summary>
|
||||
[IfFlag(30)] public EmojiStatus emoji_status;
|
||||
[IfFlag(32)] public Username[] usernames;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
|
|
@ -789,6 +791,12 @@ namespace TL
|
|||
/// <summary>Field <see cref="emoji_status"/> has a value</summary>
|
||||
has_emoji_status = 0x40000000,
|
||||
}
|
||||
|
||||
[Flags] public enum Flags2 : uint
|
||||
{
|
||||
/// <summary>Field <see cref="usernames"/> has a value</summary>
|
||||
has_usernames = 0x1,
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>User profile photo. <para>See <a href="https://corefork.telegram.org/constructor/userProfilePhoto"/></para></summary>
|
||||
|
|
@ -926,11 +934,12 @@ namespace TL
|
|||
public override string Title => title;
|
||||
}
|
||||
/// <summary>Channel/supergroup info <para>See <a href="https://corefork.telegram.org/constructor/channel"/></para></summary>
|
||||
[TLDef(0x8261AC61)]
|
||||
[TLDef(0x83259464)]
|
||||
public partial class Channel : ChatBase
|
||||
{
|
||||
/// <summary>Flags, see <a href="https://corefork.telegram.org/mtproto/TL-combinators#conditional-fields">TL conditional fields</a></summary>
|
||||
public Flags flags;
|
||||
public Flags2 flags2;
|
||||
/// <summary>ID of the channel</summary>
|
||||
public long id;
|
||||
/// <summary>Access hash</summary>
|
||||
|
|
@ -953,6 +962,7 @@ namespace TL
|
|||
[IfFlag(18)] public ChatBannedRights default_banned_rights;
|
||||
/// <summary>Participant count</summary>
|
||||
[IfFlag(17)] public int participants_count;
|
||||
[IfFlag(32)] public Username[] usernames;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
|
|
@ -1006,6 +1016,13 @@ namespace TL
|
|||
join_to_send = 0x10000000,
|
||||
/// <summary>Whether a user's join request will have to be <a href="https://corefork.telegram.org/api/invites#join-requests">approved by administrators</a>, toggle using <a href="https://corefork.telegram.org/method/channels.toggleJoinRequest">channels.toggleJoinToSend</a></summary>
|
||||
join_request = 0x20000000,
|
||||
forum = 0x40000000,
|
||||
}
|
||||
|
||||
[Flags] public enum Flags2 : uint
|
||||
{
|
||||
/// <summary>Field <see cref="usernames"/> has a value</summary>
|
||||
has_usernames = 0x1,
|
||||
}
|
||||
|
||||
/// <summary>ID of the channel</summary>
|
||||
|
|
@ -2136,6 +2153,36 @@ namespace TL
|
|||
/// <summary>Duration of the gifted Telegram Premium subscription</summary>
|
||||
public int months;
|
||||
}
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/messageActionTopicCreate"/></para></summary>
|
||||
[TLDef(0x0D999256)]
|
||||
public class MessageActionTopicCreate : MessageAction
|
||||
{
|
||||
public Flags flags;
|
||||
public string title;
|
||||
public int icon_color;
|
||||
[IfFlag(0)] public long icon_emoji_id;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_icon_emoji_id = 0x1,
|
||||
}
|
||||
}
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/messageActionTopicEdit"/></para></summary>
|
||||
[TLDef(0xB18A431C)]
|
||||
public class MessageActionTopicEdit : MessageAction
|
||||
{
|
||||
public Flags flags;
|
||||
[IfFlag(0)] public string title;
|
||||
[IfFlag(1)] public long icon_emoji_id;
|
||||
[IfFlag(2)] public bool closed;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_title = 0x1,
|
||||
has_icon_emoji_id = 0x2,
|
||||
has_closed = 0x4,
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Chat info. <para>See <a href="https://corefork.telegram.org/type/Dialog"/></para> <para>Derived classes: <see cref="Dialog"/>, <see cref="DialogFolder"/></para></summary>
|
||||
public abstract class DialogBase : IObject
|
||||
|
|
@ -2468,6 +2515,13 @@ namespace TL
|
|||
/// <summary>All <a href="https://corefork.telegram.org/api/channel">channels</a> <para>See <a href="https://corefork.telegram.org/constructor/inputNotifyBroadcasts"/></para></summary>
|
||||
[TLDef(0xB1DB7C7E)]
|
||||
public class InputNotifyBroadcasts : InputNotifyPeerBase { }
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/inputNotifyForumTopic"/></para></summary>
|
||||
[TLDef(0x5C467992)]
|
||||
public class InputNotifyForumTopic : InputNotifyPeerBase
|
||||
{
|
||||
public InputPeer peer;
|
||||
public int top_msg_id;
|
||||
}
|
||||
|
||||
/// <summary>Notification settings. <para>See <a href="https://corefork.telegram.org/constructor/inputPeerNotifySettings"/></para></summary>
|
||||
[TLDef(0xDF1F002B)]
|
||||
|
|
@ -3132,7 +3186,7 @@ namespace TL
|
|||
public UserStatus status;
|
||||
}
|
||||
/// <summary>Changes the user's first name, last name and username. <para>See <a href="https://corefork.telegram.org/constructor/updateUserName"/></para></summary>
|
||||
[TLDef(0xC3F202E0)]
|
||||
[TLDef(0xA7848924)]
|
||||
public class UpdateUserName : Update
|
||||
{
|
||||
/// <summary>User identifier</summary>
|
||||
|
|
@ -3141,8 +3195,7 @@ namespace TL
|
|||
public string first_name;
|
||||
/// <summary>New last name. Corresponds to the new value of <strong>real_last_name</strong> field of the <see cref="UserFull"/>.</summary>
|
||||
public string last_name;
|
||||
/// <summary>New username.</summary>
|
||||
public string username;
|
||||
public Username[] usernames;
|
||||
}
|
||||
/// <summary>Change of contact's profile photo. <para>See <a href="https://corefork.telegram.org/constructor/updateUserPhoto"/></para></summary>
|
||||
[TLDef(0xF227868C)]
|
||||
|
|
@ -3575,13 +3628,21 @@ namespace TL
|
|||
public int max_id;
|
||||
}
|
||||
/// <summary>Notifies a change of a message <a href="https://corefork.telegram.org/api/drafts">draft</a>. <para>See <a href="https://corefork.telegram.org/constructor/updateDraftMessage"/></para></summary>
|
||||
[TLDef(0xEE2BB969)]
|
||||
[TLDef(0x1B49EC6D)]
|
||||
public class UpdateDraftMessage : Update
|
||||
{
|
||||
public Flags flags;
|
||||
/// <summary>The peer to which the draft is associated</summary>
|
||||
public Peer peer;
|
||||
[IfFlag(0)] public int top_msg_id;
|
||||
/// <summary>The draft</summary>
|
||||
public DraftMessageBase draft;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
/// <summary>Field <see cref="top_msg_id"/> has a value</summary>
|
||||
has_top_msg_id = 0x1,
|
||||
}
|
||||
}
|
||||
/// <summary>Some featured stickers were marked as read <para>See <a href="https://corefork.telegram.org/constructor/updateReadFeaturedStickers"/></para></summary>
|
||||
[TLDef(0x571D2742)]
|
||||
|
|
@ -3725,11 +3786,21 @@ namespace TL
|
|||
[TLDef(0xE511996D)]
|
||||
public class UpdateFavedStickers : Update { }
|
||||
/// <summary>The specified <a href="https://corefork.telegram.org/api/channel">channel/supergroup</a> messages were read <para>See <a href="https://corefork.telegram.org/constructor/updateChannelReadMessagesContents"/></para></summary>
|
||||
[TLDef(0x44BDD535, inheritBefore = true)]
|
||||
public class UpdateChannelReadMessagesContents : UpdateChannel
|
||||
[TLDef(0xEA29055D)]
|
||||
public class UpdateChannelReadMessagesContents : Update
|
||||
{
|
||||
public Flags flags;
|
||||
/// <summary><a href="https://corefork.telegram.org/api/channel">Channel/supergroup</a> ID</summary>
|
||||
public long channel_id;
|
||||
[IfFlag(0)] public int top_msg_id;
|
||||
/// <summary>IDs of messages that were read</summary>
|
||||
public int[] messages;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
/// <summary>Field <see cref="top_msg_id"/> has a value</summary>
|
||||
has_top_msg_id = 0x1,
|
||||
}
|
||||
}
|
||||
/// <summary>All contacts were deleted <para>See <a href="https://corefork.telegram.org/constructor/updateContactsReset"/></para></summary>
|
||||
[TLDef(0x7084A7BE)]
|
||||
|
|
@ -4190,15 +4261,23 @@ namespace TL
|
|||
public int qts;
|
||||
}
|
||||
/// <summary>New <a href="https://corefork.telegram.org/api/reactions">message reactions »</a> are available <para>See <a href="https://corefork.telegram.org/constructor/updateMessageReactions"/></para></summary>
|
||||
[TLDef(0x154798C3)]
|
||||
[TLDef(0x5E1B3CB8)]
|
||||
public class UpdateMessageReactions : Update
|
||||
{
|
||||
public Flags flags;
|
||||
/// <summary>Peer</summary>
|
||||
public Peer peer;
|
||||
/// <summary>Message ID</summary>
|
||||
public int msg_id;
|
||||
[IfFlag(0)] public int top_msg_id;
|
||||
/// <summary>Reactions</summary>
|
||||
public MessageReactions reactions;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
/// <summary>Field <see cref="top_msg_id"/> has a value</summary>
|
||||
has_top_msg_id = 0x1,
|
||||
}
|
||||
}
|
||||
/// <summary>The list of installed <a href="https://corefork.telegram.org/api/bots/attach">attachment menu entries »</a> has changed, use <a href="https://corefork.telegram.org/method/messages.getAttachMenuBots">messages.getAttachMenuBots</a> to fetch the updated list. <para>See <a href="https://corefork.telegram.org/constructor/updateAttachMenuBots"/></para></summary>
|
||||
[TLDef(0x17B7A20B)]
|
||||
|
|
@ -4286,6 +4365,19 @@ namespace TL
|
|||
public int msg_id;
|
||||
public MessageExtendedMediaBase extended_media;
|
||||
}
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/updateChannelPinnedTopic"/></para></summary>
|
||||
[TLDef(0xF694B0AE)]
|
||||
public class UpdateChannelPinnedTopic : Update
|
||||
{
|
||||
public Flags flags;
|
||||
public long channel_id;
|
||||
[IfFlag(0)] public int topic_id;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_topic_id = 0x1,
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Updates state. <para>See <a href="https://corefork.telegram.org/constructor/updates.state"/></para></summary>
|
||||
[TLDef(0xA56C2A3E)]
|
||||
|
|
@ -5260,6 +5352,13 @@ namespace TL
|
|||
/// <summary>Channel notification settings <para>See <a href="https://corefork.telegram.org/constructor/notifyBroadcasts"/></para></summary>
|
||||
[TLDef(0xD612E8EF)]
|
||||
public class NotifyBroadcasts : NotifyPeerBase { }
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/notifyForumTopic"/></para></summary>
|
||||
[TLDef(0x226E6308)]
|
||||
public class NotifyForumTopic : NotifyPeerBase
|
||||
{
|
||||
public Peer peer;
|
||||
public int top_msg_id;
|
||||
}
|
||||
|
||||
/// <summary>User actions. Use this to provide users with detailed info about their chat partner's actions: typing or sending attachments of all kinds. <para>See <a href="https://corefork.telegram.org/type/SendMessageAction"/></para> <para>Derived classes: <see cref="SendMessageTypingAction"/>, <see cref="SendMessageCancelAction"/>, <see cref="SendMessageRecordVideoAction"/>, <see cref="SendMessageUploadVideoAction"/>, <see cref="SendMessageRecordAudioAction"/>, <see cref="SendMessageUploadAudioAction"/>, <see cref="SendMessageUploadPhotoAction"/>, <see cref="SendMessageUploadDocumentAction"/>, <see cref="SendMessageGeoLocationAction"/>, <see cref="SendMessageChooseContactAction"/>, <see cref="SendMessageGamePlayAction"/>, <see cref="SendMessageRecordRoundAction"/>, <see cref="SendMessageUploadRoundAction"/>, <see cref="SpeakingInGroupCallAction"/>, <see cref="SendMessageHistoryImportAction"/>, <see cref="SendMessageChooseStickerAction"/>, <see cref="SendMessageEmojiInteraction"/>, <see cref="SendMessageEmojiInteractionSeen"/></para></summary>
|
||||
public abstract partial class SendMessageAction : IObject { }
|
||||
|
|
@ -6111,6 +6210,9 @@ namespace TL
|
|||
/// <summary>Default <a href="https://corefork.telegram.org/api/emoji-status">custom emoji status</a> stickerset <para>See <a href="https://corefork.telegram.org/constructor/inputStickerSetEmojiDefaultStatuses"/></para></summary>
|
||||
[TLDef(0x29D0F5EE)]
|
||||
public class InputStickerSetEmojiDefaultStatuses : InputStickerSet { }
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/inputStickerSetEmojiDefaultTopicIcons"/></para></summary>
|
||||
[TLDef(0x44C1F8E9)]
|
||||
public class InputStickerSetEmojiDefaultTopicIcons : InputStickerSet { }
|
||||
|
||||
/// <summary>Represents a stickerset (stickerpack) <para>See <a href="https://corefork.telegram.org/constructor/stickerSet"/></para></summary>
|
||||
[TLDef(0x2DD14EDC)]
|
||||
|
|
@ -6166,13 +6268,14 @@ namespace TL
|
|||
|
||||
/// <summary>Stickerset and stickers inside it <para>See <a href="https://corefork.telegram.org/constructor/messages.stickerSet"/></para></summary>
|
||||
/// <remarks>a <see langword="null"/> value means <a href="https://corefork.telegram.org/constructor/messages.stickerSetNotModified">messages.stickerSetNotModified</a></remarks>
|
||||
[TLDef(0xB60A24A6)]
|
||||
[TLDef(0x6E153F16)]
|
||||
public class Messages_StickerSet : IObject
|
||||
{
|
||||
/// <summary>The stickerset</summary>
|
||||
public StickerSet set;
|
||||
/// <summary>Emoji info for stickers</summary>
|
||||
public StickerPack[] packs;
|
||||
public StickerKeyword[] keywords;
|
||||
/// <summary>Stickers in stickerset</summary>
|
||||
public DocumentBase[] documents;
|
||||
}
|
||||
|
|
@ -8002,13 +8105,14 @@ namespace TL
|
|||
public override StickerSet Set => set;
|
||||
}
|
||||
/// <summary>Stickerset preview with all stickers of the stickerset included.<br/>Currently used only for <a href="https://corefork.telegram.org/api/custom-emoji">custom emoji stickersets</a>, to avoid a further call to <a href="https://corefork.telegram.org/method/messages.getStickerSet">messages.getStickerSet</a>. <para>See <a href="https://corefork.telegram.org/constructor/stickerSetFullCovered"/></para></summary>
|
||||
[TLDef(0x1AED5EE5)]
|
||||
[TLDef(0x40D13C0E)]
|
||||
public class StickerSetFullCovered : StickerSetCoveredBase
|
||||
{
|
||||
/// <summary>Stickerset</summary>
|
||||
public StickerSet set;
|
||||
/// <summary>Emoji information about every sticker in the stickerset</summary>
|
||||
public StickerPack[] packs;
|
||||
public StickerKeyword[] keywords;
|
||||
/// <summary>Stickers</summary>
|
||||
public DocumentBase[] documents;
|
||||
|
||||
|
|
@ -9803,6 +9907,52 @@ namespace TL
|
|||
/// <summary>New allowed reaction emojis</summary>
|
||||
public ChatReactions new_value;
|
||||
}
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/channelAdminLogEventActionChangeUsernames"/></para></summary>
|
||||
[TLDef(0xF04FB3A9)]
|
||||
public class ChannelAdminLogEventActionChangeUsernames : ChannelAdminLogEventAction
|
||||
{
|
||||
public string[] prev_value;
|
||||
public string[] new_value;
|
||||
}
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/channelAdminLogEventActionToggleForum"/></para></summary>
|
||||
[TLDef(0x02CC6383)]
|
||||
public class ChannelAdminLogEventActionToggleForum : ChannelAdminLogEventAction
|
||||
{
|
||||
public bool new_value;
|
||||
}
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/channelAdminLogEventActionCreateTopic"/></para></summary>
|
||||
[TLDef(0x58707D28)]
|
||||
public class ChannelAdminLogEventActionCreateTopic : ChannelAdminLogEventAction
|
||||
{
|
||||
public ForumTopicBase topic;
|
||||
}
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/channelAdminLogEventActionEditTopic"/></para></summary>
|
||||
[TLDef(0xF06FE208)]
|
||||
public class ChannelAdminLogEventActionEditTopic : ChannelAdminLogEventAction
|
||||
{
|
||||
public ForumTopicBase prev_topic;
|
||||
public ForumTopicBase new_topic;
|
||||
}
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/channelAdminLogEventActionDeleteTopic"/></para></summary>
|
||||
[TLDef(0xAE168909)]
|
||||
public class ChannelAdminLogEventActionDeleteTopic : ChannelAdminLogEventAction
|
||||
{
|
||||
public ForumTopicBase topic;
|
||||
}
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/channelAdminLogEventActionPinTopic"/></para></summary>
|
||||
[TLDef(0x5D8D353B)]
|
||||
public class ChannelAdminLogEventActionPinTopic : ChannelAdminLogEventAction
|
||||
{
|
||||
public Flags flags;
|
||||
[IfFlag(0)] public ForumTopicBase prev_topic;
|
||||
[IfFlag(1)] public ForumTopicBase new_topic;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_prev_topic = 0x1,
|
||||
has_new_topic = 0x2,
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Admin log event <para>See <a href="https://corefork.telegram.org/constructor/channelAdminLogEvent"/></para></summary>
|
||||
[TLDef(0x1FAD68CD)]
|
||||
|
|
@ -9875,6 +10025,7 @@ namespace TL
|
|||
invites = 0x8000,
|
||||
/// <summary>A message was posted in a channel</summary>
|
||||
send = 0x10000,
|
||||
forums = 0x20000,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -11045,6 +11196,7 @@ namespace TL
|
|||
manage_call = 0x800,
|
||||
/// <summary>Set this flag if none of the other flags are set, but you still want the user to be an admin: if this or any of the other flags are set, the admin can get the chat <a href="https://corefork.telegram.org/api/recent-actions">admin log</a>, get <a href="https://corefork.telegram.org/api/stats">chat statistics</a>, get <a href="https://corefork.telegram.org/api/stats">message statistics in channels</a>, get channel members, see anonymous administrators in supergroups and ignore slow mode.</summary>
|
||||
other = 0x1000,
|
||||
manage_topics = 0x2000,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -11083,6 +11235,7 @@ namespace TL
|
|||
invite_users = 0x8000,
|
||||
/// <summary>If set, does not allow any user to pin messages in a <a href="https://corefork.telegram.org/api/channel">supergroup/chat</a></summary>
|
||||
pin_messages = 0x20000,
|
||||
manage_topics = 0x40000,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -12211,6 +12364,7 @@ namespace TL
|
|||
/// <summary>Field <see cref="reply_to_top_id"/> has a value</summary>
|
||||
has_reply_to_top_id = 0x2,
|
||||
reply_to_scheduled = 0x4,
|
||||
forum_topic = 0x8,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -12786,19 +12940,29 @@ namespace TL
|
|||
has_chat_invite = 0x10,
|
||||
/// <summary>Whether the message needs to be labeled as "recommended" instead of "sponsored"</summary>
|
||||
recommended = 0x20,
|
||||
show_peer_photo = 0x40,
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>A set of sponsored messages associated to a channel <para>See <a href="https://corefork.telegram.org/constructor/messages.sponsoredMessages"/></para></summary>
|
||||
[TLDef(0x65A4C7D5)]
|
||||
/// <remarks>a <see langword="null"/> value means <a href="https://corefork.telegram.org/constructor/messages.sponsoredMessagesEmpty">messages.sponsoredMessagesEmpty</a></remarks>
|
||||
[TLDef(0xC9EE1D87)]
|
||||
public class Messages_SponsoredMessages : IObject, IPeerResolver
|
||||
{
|
||||
public Flags flags;
|
||||
[IfFlag(0)] public int posts_between;
|
||||
/// <summary>Sponsored messages</summary>
|
||||
public SponsoredMessage[] messages;
|
||||
/// <summary>Chats mentioned in the sponsored messages</summary>
|
||||
public Dictionary<long, ChatBase> chats;
|
||||
/// <summary>Users mentioned in the sponsored messages</summary>
|
||||
public Dictionary<long, User> users;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
/// <summary>Field <see cref="posts_between"/> has a value</summary>
|
||||
has_posts_between = 0x1,
|
||||
}
|
||||
/// <summary>returns a <see cref="User"/> or <see cref="ChatBase"/> for the given Peer</summary>
|
||||
public IPeerInfo UserOrChat(Peer peer) => peer?.UserOrChat(users, chats);
|
||||
}
|
||||
|
|
@ -13630,4 +13794,91 @@ namespace TL
|
|||
{
|
||||
public MessageMedia media;
|
||||
}
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/stickerKeyword"/></para></summary>
|
||||
[TLDef(0xFCFEB29C)]
|
||||
public class StickerKeyword : IObject
|
||||
{
|
||||
public long document_id;
|
||||
public string[] keyword;
|
||||
}
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/username"/></para></summary>
|
||||
[TLDef(0xB4073647)]
|
||||
public class Username : IObject
|
||||
{
|
||||
public Flags flags;
|
||||
public string username;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
editable = 0x1,
|
||||
active = 0x2,
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/type/ForumTopic"/></para></summary>
|
||||
public abstract class ForumTopicBase : IObject
|
||||
{
|
||||
public virtual int ID { get; }
|
||||
}
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/forumTopicDeleted"/></para></summary>
|
||||
[TLDef(0x023F109B)]
|
||||
public class ForumTopicDeleted : ForumTopicBase
|
||||
{
|
||||
public int id;
|
||||
|
||||
public override int ID => id;
|
||||
}
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/forumTopic"/></para></summary>
|
||||
[TLDef(0x71701DA9)]
|
||||
public class ForumTopic : ForumTopicBase
|
||||
{
|
||||
public Flags flags;
|
||||
public int id;
|
||||
public DateTime date;
|
||||
public string title;
|
||||
public int icon_color;
|
||||
[IfFlag(0)] public long icon_emoji_id;
|
||||
public int top_message;
|
||||
public int read_inbox_max_id;
|
||||
public int read_outbox_max_id;
|
||||
public int unread_count;
|
||||
public int unread_mentions_count;
|
||||
public int unread_reactions_count;
|
||||
public Peer from_id;
|
||||
public PeerNotifySettings notify_settings;
|
||||
[IfFlag(4)] public DraftMessageBase draft;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_icon_emoji_id = 0x1,
|
||||
my = 0x2,
|
||||
closed = 0x4,
|
||||
pinned = 0x8,
|
||||
has_draft = 0x10,
|
||||
}
|
||||
|
||||
public override int ID => id;
|
||||
}
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/messages.forumTopics"/></para></summary>
|
||||
[TLDef(0x367617D3)]
|
||||
public class Messages_ForumTopics : IObject, IPeerResolver
|
||||
{
|
||||
public Flags flags;
|
||||
public int count;
|
||||
public ForumTopicBase[] topics;
|
||||
public MessageBase[] messages;
|
||||
public Dictionary<long, ChatBase> chats;
|
||||
public Dictionary<long, User> users;
|
||||
public int pts;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
order_by_create_date = 0x1,
|
||||
}
|
||||
/// <summary>returns a <see cref="User"/> or <see cref="ChatBase"/> for the given Peer</summary>
|
||||
public IPeerInfo UserOrChat(Peer peer) => peer?.UserOrChat(users, chats);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -869,13 +869,11 @@ namespace TL
|
|||
/// <summary>Get theme information <para>See <a href="https://corefork.telegram.org/method/account.getTheme"/></para> <para>Possible <see cref="RpcException"/> codes: 400 (<a href="https://corefork.telegram.org/method/account.getTheme#possible-errors">details</a>)</para></summary>
|
||||
/// <param name="format">Theme format, a string that identifies the theming engines supported by the client</param>
|
||||
/// <param name="theme">Theme</param>
|
||||
/// <param name="document_id">Deprecated: should always be <c>0</c></param>
|
||||
public static Task<Theme> Account_GetTheme(this Client client, string format, InputThemeBase theme, long document_id)
|
||||
public static Task<Theme> Account_GetTheme(this Client client, string format, InputThemeBase theme)
|
||||
=> client.Invoke(new Account_GetTheme
|
||||
{
|
||||
format = format,
|
||||
theme = theme,
|
||||
document_id = document_id,
|
||||
});
|
||||
|
||||
/// <summary>Get installed themes <para>See <a href="https://corefork.telegram.org/method/account.getThemes"/></para></summary>
|
||||
|
|
@ -1044,6 +1042,21 @@ namespace TL
|
|||
{
|
||||
});
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/method/account.reorderUsernames"/></para></summary>
|
||||
public static Task<bool> Account_ReorderUsernames(this Client client, params string[] order)
|
||||
=> client.Invoke(new Account_ReorderUsernames
|
||||
{
|
||||
order = order,
|
||||
});
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/method/account.toggleUsername"/></para></summary>
|
||||
public static Task<bool> Account_ToggleUsername(this Client client, string username, bool active)
|
||||
=> client.Invoke(new Account_ToggleUsername
|
||||
{
|
||||
username = username,
|
||||
active = active,
|
||||
});
|
||||
|
||||
/// <summary>Returns basic user info according to their identifiers. <para>See <a href="https://corefork.telegram.org/method/users.getUsers"/> [bots: ✓]</para> <para>Possible <see cref="RpcException"/> codes: 400 (<a href="https://corefork.telegram.org/method/users.getUsers#possible-errors">details</a>)</para></summary>
|
||||
/// <param name="id">List of user identifiers</param>
|
||||
public static Task<UserBase[]> Users_GetUsers(this Client client, params InputUserBase[] id)
|
||||
|
|
@ -1425,12 +1438,13 @@ namespace TL
|
|||
/// <param name="entities">Message <a href="https://corefork.telegram.org/api/entities">entities</a> for sending styled text</param>
|
||||
/// <param name="schedule_date">Scheduled message date for <a href="https://corefork.telegram.org/api/scheduled-messages">scheduled messages</a></param>
|
||||
/// <param name="send_as">Send this message as the specified peer</param>
|
||||
public static Task<UpdatesBase> Messages_SendMessage(this Client client, InputPeer peer, string message, long random_id, bool no_webpage = false, bool silent = false, bool background = false, bool clear_draft = false, bool noforwards = false, bool update_stickersets_order = false, int? reply_to_msg_id = null, ReplyMarkup reply_markup = null, MessageEntity[] entities = null, DateTime? schedule_date = null, InputPeer send_as = null)
|
||||
public static Task<UpdatesBase> Messages_SendMessage(this Client client, InputPeer peer, string message, long random_id, bool no_webpage = false, bool silent = false, bool background = false, bool clear_draft = false, bool noforwards = false, bool update_stickersets_order = false, int? reply_to_msg_id = null, int? top_msg_id = null, ReplyMarkup reply_markup = null, MessageEntity[] entities = null, DateTime? schedule_date = null, InputPeer send_as = null)
|
||||
=> client.Invoke(new Messages_SendMessage
|
||||
{
|
||||
flags = (Messages_SendMessage.Flags)((no_webpage ? 0x2 : 0) | (silent ? 0x20 : 0) | (background ? 0x40 : 0) | (clear_draft ? 0x80 : 0) | (noforwards ? 0x4000 : 0) | (update_stickersets_order ? 0x8000 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (reply_markup != null ? 0x4 : 0) | (entities != null ? 0x8 : 0) | (schedule_date != null ? 0x400 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
flags = (Messages_SendMessage.Flags)((no_webpage ? 0x2 : 0) | (silent ? 0x20 : 0) | (background ? 0x40 : 0) | (clear_draft ? 0x80 : 0) | (noforwards ? 0x4000 : 0) | (update_stickersets_order ? 0x8000 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (top_msg_id != null ? 0x200 : 0) | (reply_markup != null ? 0x4 : 0) | (entities != null ? 0x8 : 0) | (schedule_date != null ? 0x400 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
peer = peer,
|
||||
reply_to_msg_id = reply_to_msg_id.GetValueOrDefault(),
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
message = message,
|
||||
random_id = random_id,
|
||||
reply_markup = reply_markup,
|
||||
|
|
@ -1454,12 +1468,13 @@ namespace TL
|
|||
/// <param name="entities">Message <a href="https://corefork.telegram.org/api/entities">entities</a> for styled text</param>
|
||||
/// <param name="schedule_date">Scheduled message date for <a href="https://corefork.telegram.org/api/scheduled-messages">scheduled messages</a></param>
|
||||
/// <param name="send_as">Send this message as the specified peer</param>
|
||||
public static Task<UpdatesBase> Messages_SendMedia(this Client client, InputPeer peer, InputMedia media, string message, long random_id, bool silent = false, bool background = false, bool clear_draft = false, bool noforwards = false, bool update_stickersets_order = false, int? reply_to_msg_id = null, ReplyMarkup reply_markup = null, MessageEntity[] entities = null, DateTime? schedule_date = null, InputPeer send_as = null)
|
||||
public static Task<UpdatesBase> Messages_SendMedia(this Client client, InputPeer peer, InputMedia media, string message, long random_id, bool silent = false, bool background = false, bool clear_draft = false, bool noforwards = false, bool update_stickersets_order = false, int? reply_to_msg_id = null, int? top_msg_id = null, ReplyMarkup reply_markup = null, MessageEntity[] entities = null, DateTime? schedule_date = null, InputPeer send_as = null)
|
||||
=> client.Invoke(new Messages_SendMedia
|
||||
{
|
||||
flags = (Messages_SendMedia.Flags)((silent ? 0x20 : 0) | (background ? 0x40 : 0) | (clear_draft ? 0x80 : 0) | (noforwards ? 0x4000 : 0) | (update_stickersets_order ? 0x8000 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (reply_markup != null ? 0x4 : 0) | (entities != null ? 0x8 : 0) | (schedule_date != null ? 0x400 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
flags = (Messages_SendMedia.Flags)((silent ? 0x20 : 0) | (background ? 0x40 : 0) | (clear_draft ? 0x80 : 0) | (noforwards ? 0x4000 : 0) | (update_stickersets_order ? 0x8000 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (top_msg_id != null ? 0x200 : 0) | (reply_markup != null ? 0x4 : 0) | (entities != null ? 0x8 : 0) | (schedule_date != null ? 0x400 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
peer = peer,
|
||||
reply_to_msg_id = reply_to_msg_id.GetValueOrDefault(),
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
media = media,
|
||||
message = message,
|
||||
random_id = random_id,
|
||||
|
|
@ -1482,14 +1497,15 @@ namespace TL
|
|||
/// <param name="to_peer">Destination peer</param>
|
||||
/// <param name="schedule_date">Scheduled message date for scheduled messages</param>
|
||||
/// <param name="send_as">Forward the messages as the specified peer</param>
|
||||
public static Task<UpdatesBase> 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)
|
||||
public static Task<UpdatesBase> 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, int? top_msg_id = null, DateTime? schedule_date = null, InputPeer send_as = null)
|
||||
=> client.Invoke(new Messages_ForwardMessages
|
||||
{
|
||||
flags = (Messages_ForwardMessages.Flags)((silent ? 0x20 : 0) | (background ? 0x40 : 0) | (with_my_score ? 0x100 : 0) | (drop_author ? 0x800 : 0) | (drop_media_captions ? 0x1000 : 0) | (noforwards ? 0x4000 : 0) | (schedule_date != null ? 0x400 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
flags = (Messages_ForwardMessages.Flags)((silent ? 0x20 : 0) | (background ? 0x40 : 0) | (with_my_score ? 0x100 : 0) | (drop_author ? 0x800 : 0) | (drop_media_captions ? 0x1000 : 0) | (noforwards ? 0x4000 : 0) | (top_msg_id != null ? 0x200 : 0) | (schedule_date != null ? 0x400 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
from_peer = from_peer,
|
||||
id = id,
|
||||
random_id = random_id,
|
||||
to_peer = to_peer,
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
schedule_date = schedule_date.GetValueOrDefault(),
|
||||
send_as = send_as,
|
||||
});
|
||||
|
|
@ -1979,12 +1995,13 @@ namespace TL
|
|||
/// <param name="id">Result ID from <a href="https://corefork.telegram.org/method/messages.getInlineBotResults">messages.getInlineBotResults</a></param>
|
||||
/// <param name="schedule_date">Scheduled message date for scheduled messages</param>
|
||||
/// <param name="send_as">Send this message as the specified peer</param>
|
||||
public static Task<UpdatesBase> Messages_SendInlineBotResult(this Client client, InputPeer peer, long random_id, long query_id, string id, bool silent = false, bool background = false, bool clear_draft = false, bool hide_via = false, int? reply_to_msg_id = null, DateTime? schedule_date = null, InputPeer send_as = null)
|
||||
public static Task<UpdatesBase> Messages_SendInlineBotResult(this Client client, InputPeer peer, long random_id, long query_id, string id, bool silent = false, bool background = false, bool clear_draft = false, bool hide_via = false, int? reply_to_msg_id = null, int? top_msg_id = null, DateTime? schedule_date = null, InputPeer send_as = null)
|
||||
=> client.Invoke(new Messages_SendInlineBotResult
|
||||
{
|
||||
flags = (Messages_SendInlineBotResult.Flags)((silent ? 0x20 : 0) | (background ? 0x40 : 0) | (clear_draft ? 0x80 : 0) | (hide_via ? 0x800 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (schedule_date != null ? 0x400 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
flags = (Messages_SendInlineBotResult.Flags)((silent ? 0x20 : 0) | (background ? 0x40 : 0) | (clear_draft ? 0x80 : 0) | (hide_via ? 0x800 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (top_msg_id != null ? 0x200 : 0) | (schedule_date != null ? 0x400 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
peer = peer,
|
||||
reply_to_msg_id = reply_to_msg_id.GetValueOrDefault(),
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
random_id = random_id,
|
||||
query_id = query_id,
|
||||
id = id,
|
||||
|
|
@ -2088,11 +2105,12 @@ namespace TL
|
|||
/// <param name="peer">Destination of the message that should be sent</param>
|
||||
/// <param name="message">The draft</param>
|
||||
/// <param name="entities">Message <a href="https://corefork.telegram.org/api/entities">entities</a> for styled text</param>
|
||||
public static Task<bool> Messages_SaveDraft(this Client client, InputPeer peer, string message, bool no_webpage = false, int? reply_to_msg_id = null, MessageEntity[] entities = null)
|
||||
public static Task<bool> Messages_SaveDraft(this Client client, InputPeer peer, string message, bool no_webpage = false, int? reply_to_msg_id = null, int? top_msg_id = null, MessageEntity[] entities = null)
|
||||
=> client.Invoke(new Messages_SaveDraft
|
||||
{
|
||||
flags = (Messages_SaveDraft.Flags)((no_webpage ? 0x2 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (entities != null ? 0x8 : 0)),
|
||||
flags = (Messages_SaveDraft.Flags)((no_webpage ? 0x2 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (top_msg_id != null ? 0x4 : 0) | (entities != null ? 0x8 : 0)),
|
||||
reply_to_msg_id = reply_to_msg_id.GetValueOrDefault(),
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
peer = peer,
|
||||
message = message,
|
||||
entities = entities,
|
||||
|
|
@ -2369,10 +2387,12 @@ namespace TL
|
|||
/// <param name="limit">Maximum number of results to return, <a href="https://corefork.telegram.org/api/offsets">see pagination</a></param>
|
||||
/// <param name="max_id">Maximum message ID to return, <a href="https://corefork.telegram.org/api/offsets">see pagination</a></param>
|
||||
/// <param name="min_id">Minimum message ID to return, <a href="https://corefork.telegram.org/api/offsets">see pagination</a></param>
|
||||
public static Task<Messages_MessagesBase> Messages_GetUnreadMentions(this Client client, InputPeer peer, int offset_id = default, int add_offset = default, int limit = int.MaxValue, int max_id = default, int min_id = default)
|
||||
public static Task<Messages_MessagesBase> Messages_GetUnreadMentions(this Client client, InputPeer peer, int offset_id = default, int add_offset = default, int limit = int.MaxValue, int max_id = default, int min_id = default, int? top_msg_id = null)
|
||||
=> client.Invoke(new Messages_GetUnreadMentions
|
||||
{
|
||||
flags = (Messages_GetUnreadMentions.Flags)(top_msg_id != null ? 0x1 : 0),
|
||||
peer = peer,
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
offset_id = offset_id,
|
||||
add_offset = add_offset,
|
||||
limit = limit,
|
||||
|
|
@ -2382,10 +2402,12 @@ namespace TL
|
|||
|
||||
/// <summary>Mark mentions as read <para>See <a href="https://corefork.telegram.org/method/messages.readMentions"/></para> <para>Possible <see cref="RpcException"/> codes: 400 (<a href="https://corefork.telegram.org/method/messages.readMentions#possible-errors">details</a>)</para></summary>
|
||||
/// <param name="peer">Dialog</param>
|
||||
public static Task<Messages_AffectedHistory> Messages_ReadMentions(this Client client, InputPeer peer)
|
||||
public static Task<Messages_AffectedHistory> Messages_ReadMentions(this Client client, InputPeer peer, int? top_msg_id = null)
|
||||
=> client.Invoke(new Messages_ReadMentions
|
||||
{
|
||||
flags = (Messages_ReadMentions.Flags)(top_msg_id != null ? 0x1 : 0),
|
||||
peer = peer,
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
});
|
||||
|
||||
/// <summary>Get live location history of a certain user <para>See <a href="https://corefork.telegram.org/method/messages.getRecentLocations"/></para></summary>
|
||||
|
|
@ -2411,12 +2433,13 @@ namespace TL
|
|||
/// <param name="multi_media">The medias to send: note that they must be separately uploaded using <a href="https://corefork.telegram.org/method/messages.uploadMedia">messages.uploadMedia</a> first, using raw <c>inputMediaUploaded*</c> constructors is not supported.</param>
|
||||
/// <param name="schedule_date">Scheduled message date for scheduled messages</param>
|
||||
/// <param name="send_as">Send this message as the specified peer</param>
|
||||
public static Task<UpdatesBase> Messages_SendMultiMedia(this Client client, InputPeer peer, InputSingleMedia[] multi_media, bool silent = false, bool background = false, bool clear_draft = false, bool noforwards = false, bool update_stickersets_order = false, int? reply_to_msg_id = null, DateTime? schedule_date = null, InputPeer send_as = null)
|
||||
public static Task<UpdatesBase> Messages_SendMultiMedia(this Client client, InputPeer peer, InputSingleMedia[] multi_media, bool silent = false, bool background = false, bool clear_draft = false, bool noforwards = false, bool update_stickersets_order = false, int? reply_to_msg_id = null, int? top_msg_id = null, DateTime? schedule_date = null, InputPeer send_as = null)
|
||||
=> client.Invoke(new Messages_SendMultiMedia
|
||||
{
|
||||
flags = (Messages_SendMultiMedia.Flags)((silent ? 0x20 : 0) | (background ? 0x40 : 0) | (clear_draft ? 0x80 : 0) | (noforwards ? 0x4000 : 0) | (update_stickersets_order ? 0x8000 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (schedule_date != null ? 0x400 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
flags = (Messages_SendMultiMedia.Flags)((silent ? 0x20 : 0) | (background ? 0x40 : 0) | (clear_draft ? 0x80 : 0) | (noforwards ? 0x4000 : 0) | (update_stickersets_order ? 0x8000 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (top_msg_id != null ? 0x200 : 0) | (schedule_date != null ? 0x400 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
peer = peer,
|
||||
reply_to_msg_id = reply_to_msg_id.GetValueOrDefault(),
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
multi_media = multi_media,
|
||||
schedule_date = schedule_date.GetValueOrDefault(),
|
||||
send_as = send_as,
|
||||
|
|
@ -2575,10 +2598,12 @@ namespace TL
|
|||
/// <summary>Get the number of results that would be found by a <a href="https://corefork.telegram.org/method/messages.search">messages.search</a> call with the same parameters <para>See <a href="https://corefork.telegram.org/method/messages.getSearchCounters"/></para> <para>Possible <see cref="RpcException"/> codes: 400 (<a href="https://corefork.telegram.org/method/messages.getSearchCounters#possible-errors">details</a>)</para></summary>
|
||||
/// <param name="peer">Peer where to search</param>
|
||||
/// <param name="filters">Search filters</param>
|
||||
public static Task<Messages_SearchCounter[]> Messages_GetSearchCounters(this Client client, InputPeer peer, params MessagesFilter[] filters)
|
||||
public static Task<Messages_SearchCounter[]> Messages_GetSearchCounters(this Client client, InputPeer peer, MessagesFilter[] filters, int? top_msg_id = null)
|
||||
=> client.Invoke(new Messages_GetSearchCounters
|
||||
{
|
||||
flags = (Messages_GetSearchCounters.Flags)(top_msg_id != null ? 0x1 : 0),
|
||||
peer = peer,
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
filters = filters,
|
||||
});
|
||||
|
||||
|
|
@ -2783,10 +2808,12 @@ namespace TL
|
|||
|
||||
/// <summary><a href="https://corefork.telegram.org/api/pin">Unpin</a> all pinned messages <para>See <a href="https://corefork.telegram.org/method/messages.unpinAllMessages"/> [bots: ✓]</para> <para>Possible <see cref="RpcException"/> codes: 400 (<a href="https://corefork.telegram.org/method/messages.unpinAllMessages#possible-errors">details</a>)</para></summary>
|
||||
/// <param name="peer">Chat where to unpin</param>
|
||||
public static Task<Messages_AffectedHistory> Messages_UnpinAllMessages(this Client client, InputPeer peer)
|
||||
public static Task<Messages_AffectedHistory> Messages_UnpinAllMessages(this Client client, InputPeer peer, int? top_msg_id = null)
|
||||
=> client.Invoke(new Messages_UnpinAllMessages
|
||||
{
|
||||
flags = (Messages_UnpinAllMessages.Flags)(top_msg_id != null ? 0x1 : 0),
|
||||
peer = peer,
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
});
|
||||
|
||||
/// <summary><para>⚠ <b>This method is only for basic Chat</b>. See <see href="https://github.com/wiz0u/WTelegramClient/blob/master/README.md#terminology">Terminology</see> to understand what this means<br/>Search for a similar method name starting with <c>Channels_</c> if you're dealing with a <see cref="Channel"/></para> Delete a <a href="https://corefork.telegram.org/api/channel">chat</a> <para>See <a href="https://corefork.telegram.org/method/messages.deleteChat"/></para> <para>Possible <see cref="RpcException"/> codes: 400 (<a href="https://corefork.telegram.org/method/messages.deleteChat#possible-errors">details</a>)</para></summary>
|
||||
|
|
@ -3149,10 +3176,12 @@ namespace TL
|
|||
/// <param name="limit">Maximum number of results to return, <a href="https://corefork.telegram.org/api/offsets">see pagination</a></param>
|
||||
/// <param name="max_id">Only return reactions for messages up until this message ID</param>
|
||||
/// <param name="min_id">Only return reactions for messages starting from this message ID</param>
|
||||
public static Task<Messages_MessagesBase> Messages_GetUnreadReactions(this Client client, InputPeer peer, int offset_id = default, int add_offset = default, int limit = int.MaxValue, int max_id = default, int min_id = default)
|
||||
public static Task<Messages_MessagesBase> Messages_GetUnreadReactions(this Client client, InputPeer peer, int offset_id = default, int add_offset = default, int limit = int.MaxValue, int max_id = default, int min_id = default, int? top_msg_id = null)
|
||||
=> client.Invoke(new Messages_GetUnreadReactions
|
||||
{
|
||||
flags = (Messages_GetUnreadReactions.Flags)(top_msg_id != null ? 0x1 : 0),
|
||||
peer = peer,
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
offset_id = offset_id,
|
||||
add_offset = add_offset,
|
||||
limit = limit,
|
||||
|
|
@ -3162,10 +3191,12 @@ namespace TL
|
|||
|
||||
/// <summary>Mark <a href="https://corefork.telegram.org/api/reactions">message reactions »</a> as read <para>See <a href="https://corefork.telegram.org/method/messages.readReactions"/></para> <para>Possible <see cref="RpcException"/> codes: 400 (<a href="https://corefork.telegram.org/method/messages.readReactions#possible-errors">details</a>)</para></summary>
|
||||
/// <param name="peer">Peer</param>
|
||||
public static Task<Messages_AffectedHistory> Messages_ReadReactions(this Client client, InputPeer peer)
|
||||
public static Task<Messages_AffectedHistory> Messages_ReadReactions(this Client client, InputPeer peer, int? top_msg_id = null)
|
||||
=> client.Invoke(new Messages_ReadReactions
|
||||
{
|
||||
flags = (Messages_ReadReactions.Flags)(top_msg_id != null ? 0x1 : 0),
|
||||
peer = peer,
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
});
|
||||
|
||||
/// <summary>View and search recently sent media.<br/>This method does not support pagination. <para>See <a href="https://corefork.telegram.org/method/messages.searchSentMedia"/></para></summary>
|
||||
|
|
@ -3218,10 +3249,10 @@ namespace TL
|
|||
/// <param name="platform">Short name of the application; 0-64 English letters, digits, and underscores</param>
|
||||
/// <param name="reply_to_msg_id">Whether the inline message that will be sent by the bot on behalf of the user once the web app interaction is <a href="https://corefork.telegram.org/method/messages.sendWebViewResultMessage">terminated</a> should be sent in reply to this message ID.</param>
|
||||
/// <param name="send_as">Open the web app as the specified peer, sending the resulting the message as the specified peer.</param>
|
||||
public static Task<WebViewResult> Messages_RequestWebView(this Client client, InputPeer peer, InputUserBase bot, string platform, bool from_bot_menu = false, bool silent = false, string url = null, string start_param = null, DataJSON theme_params = null, int? reply_to_msg_id = null, InputPeer send_as = null)
|
||||
public static Task<WebViewResult> Messages_RequestWebView(this Client client, InputPeer peer, InputUserBase bot, string platform, bool from_bot_menu = false, bool silent = false, string url = null, string start_param = null, DataJSON theme_params = null, int? reply_to_msg_id = null, int? top_msg_id = null, InputPeer send_as = null)
|
||||
=> client.Invoke(new Messages_RequestWebView
|
||||
{
|
||||
flags = (Messages_RequestWebView.Flags)((from_bot_menu ? 0x10 : 0) | (silent ? 0x20 : 0) | (url != null ? 0x2 : 0) | (start_param != null ? 0x8 : 0) | (theme_params != null ? 0x4 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
flags = (Messages_RequestWebView.Flags)((from_bot_menu ? 0x10 : 0) | (silent ? 0x20 : 0) | (url != null ? 0x2 : 0) | (start_param != null ? 0x8 : 0) | (theme_params != null ? 0x4 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (top_msg_id != null ? 0x200 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
peer = peer,
|
||||
bot = bot,
|
||||
url = url,
|
||||
|
|
@ -3229,6 +3260,7 @@ namespace TL
|
|||
theme_params = theme_params,
|
||||
platform = platform,
|
||||
reply_to_msg_id = reply_to_msg_id.GetValueOrDefault(),
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
send_as = send_as,
|
||||
});
|
||||
|
||||
|
|
@ -3239,14 +3271,15 @@ namespace TL
|
|||
/// <param name="query_id">Web app interaction ID obtained from <a href="https://corefork.telegram.org/method/messages.requestWebView">messages.requestWebView</a></param>
|
||||
/// <param name="reply_to_msg_id">Whether the inline message that will be sent by the bot on behalf of the user once the web app interaction is <a href="https://corefork.telegram.org/method/messages.sendWebViewResultMessage">terminated</a> should be sent in reply to this message ID.</param>
|
||||
/// <param name="send_as">Open the web app as the specified peer</param>
|
||||
public static Task<bool> Messages_ProlongWebView(this Client client, InputPeer peer, InputUserBase bot, long query_id, bool silent = false, int? reply_to_msg_id = null, InputPeer send_as = null)
|
||||
public static Task<bool> Messages_ProlongWebView(this Client client, InputPeer peer, InputUserBase bot, long query_id, bool silent = false, int? reply_to_msg_id = null, int? top_msg_id = null, InputPeer send_as = null)
|
||||
=> client.Invoke(new Messages_ProlongWebView
|
||||
{
|
||||
flags = (Messages_ProlongWebView.Flags)((silent ? 0x20 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
flags = (Messages_ProlongWebView.Flags)((silent ? 0x20 : 0) | (reply_to_msg_id != null ? 0x1 : 0) | (top_msg_id != null ? 0x200 : 0) | (send_as != null ? 0x2000 : 0)),
|
||||
peer = peer,
|
||||
bot = bot,
|
||||
query_id = query_id,
|
||||
reply_to_msg_id = reply_to_msg_id.GetValueOrDefault(),
|
||||
top_msg_id = top_msg_id.GetValueOrDefault(),
|
||||
send_as = send_as,
|
||||
});
|
||||
|
||||
|
|
@ -4123,6 +4156,7 @@ namespace TL
|
|||
|
||||
/// <summary>Get a list of sponsored messages <para>See <a href="https://corefork.telegram.org/method/channels.getSponsoredMessages"/></para> <para>Possible <see cref="RpcException"/> codes: 400 (<a href="https://corefork.telegram.org/method/channels.getSponsoredMessages#possible-errors">details</a>)</para></summary>
|
||||
/// <param name="channel">Peer</param>
|
||||
/// <returns>a <c>null</c> value means <a href="https://corefork.telegram.org/constructor/messages.sponsoredMessagesEmpty">messages.sponsoredMessagesEmpty</a></returns>
|
||||
public static Task<Messages_SponsoredMessages> Channels_GetSponsoredMessages(this Client client, InputChannelBase channel)
|
||||
=> client.Invoke(new Channels_GetSponsoredMessages
|
||||
{
|
||||
|
|
@ -4167,6 +4201,101 @@ namespace TL
|
|||
enabled = enabled,
|
||||
});
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/method/channels.reorderUsernames"/></para></summary>
|
||||
public static Task<bool> Channels_ReorderUsernames(this Client client, InputChannelBase channel, params string[] order)
|
||||
=> client.Invoke(new Channels_ReorderUsernames
|
||||
{
|
||||
channel = channel,
|
||||
order = order,
|
||||
});
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/method/channels.toggleUsername"/></para></summary>
|
||||
public static Task<bool> Channels_ToggleUsername(this Client client, InputChannelBase channel, string username, bool active)
|
||||
=> client.Invoke(new Channels_ToggleUsername
|
||||
{
|
||||
channel = channel,
|
||||
username = username,
|
||||
active = active,
|
||||
});
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/method/channels.deactivateAllUsernames"/></para></summary>
|
||||
public static Task<bool> Channels_DeactivateAllUsernames(this Client client, InputChannelBase channel)
|
||||
=> client.Invoke(new Channels_DeactivateAllUsernames
|
||||
{
|
||||
channel = channel,
|
||||
});
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/method/channels.toggleForum"/></para></summary>
|
||||
public static Task<UpdatesBase> Channels_ToggleForum(this Client client, InputChannelBase channel, bool enabled)
|
||||
=> client.Invoke(new Channels_ToggleForum
|
||||
{
|
||||
channel = channel,
|
||||
enabled = enabled,
|
||||
});
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/method/channels.createForumTopic"/></para></summary>
|
||||
public static Task<UpdatesBase> Channels_CreateForumTopic(this Client client, InputChannelBase channel, string title, long random_id, int? icon_color = null, long? icon_emoji_id = null, InputPeer send_as = null)
|
||||
=> client.Invoke(new Channels_CreateForumTopic
|
||||
{
|
||||
flags = (Channels_CreateForumTopic.Flags)((icon_color != null ? 0x1 : 0) | (icon_emoji_id != null ? 0x8 : 0) | (send_as != null ? 0x4 : 0)),
|
||||
channel = channel,
|
||||
title = title,
|
||||
icon_color = icon_color.GetValueOrDefault(),
|
||||
icon_emoji_id = icon_emoji_id.GetValueOrDefault(),
|
||||
random_id = random_id,
|
||||
send_as = send_as,
|
||||
});
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/method/channels.getForumTopics"/></para></summary>
|
||||
public static Task<Messages_ForumTopics> Channels_GetForumTopics(this Client client, InputChannelBase channel, int offset_topic, DateTime offset_date = default, int offset_id = default, int limit = int.MaxValue, string q = null)
|
||||
=> client.Invoke(new Channels_GetForumTopics
|
||||
{
|
||||
flags = (Channels_GetForumTopics.Flags)(q != null ? 0x1 : 0),
|
||||
channel = channel,
|
||||
q = q,
|
||||
offset_date = offset_date,
|
||||
offset_id = offset_id,
|
||||
offset_topic = offset_topic,
|
||||
limit = limit,
|
||||
});
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/method/channels.getForumTopicsByID"/></para></summary>
|
||||
public static Task<Messages_ForumTopics> Channels_GetForumTopicsByID(this Client client, InputChannelBase channel, params int[] topics)
|
||||
=> client.Invoke(new Channels_GetForumTopicsByID
|
||||
{
|
||||
channel = channel,
|
||||
topics = topics,
|
||||
});
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/method/channels.editForumTopic"/></para></summary>
|
||||
public static Task<UpdatesBase> Channels_EditForumTopic(this Client client, InputChannelBase channel, int topic_id, string title = null, long? icon_emoji_id = null, bool? closed = default)
|
||||
=> client.Invoke(new Channels_EditForumTopic
|
||||
{
|
||||
flags = (Channels_EditForumTopic.Flags)((title != null ? 0x1 : 0) | (icon_emoji_id != null ? 0x2 : 0) | (closed != default ? 0x4 : 0)),
|
||||
channel = channel,
|
||||
topic_id = topic_id,
|
||||
title = title,
|
||||
icon_emoji_id = icon_emoji_id.GetValueOrDefault(),
|
||||
closed = closed.GetValueOrDefault(),
|
||||
});
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/method/channels.updatePinnedForumTopic"/></para></summary>
|
||||
public static Task<UpdatesBase> Channels_UpdatePinnedForumTopic(this Client client, InputChannelBase channel, int topic_id, bool pinned)
|
||||
=> client.Invoke(new Channels_UpdatePinnedForumTopic
|
||||
{
|
||||
channel = channel,
|
||||
topic_id = topic_id,
|
||||
pinned = pinned,
|
||||
});
|
||||
|
||||
/// <summary><para>See <a href="https://corefork.telegram.org/method/channels.deleteTopicHistory"/></para></summary>
|
||||
public static Task<Messages_AffectedHistory> Channels_DeleteTopicHistory(this Client client, InputChannelBase channel, int top_msg_id)
|
||||
=> client.Invoke(new Channels_DeleteTopicHistory
|
||||
{
|
||||
channel = channel,
|
||||
top_msg_id = top_msg_id,
|
||||
});
|
||||
|
||||
/// <summary>Sends a custom request; for bots only <para>See <a href="https://corefork.telegram.org/method/bots.sendCustomRequest"/> [bots: ✓]</para> <para>Possible <see cref="RpcException"/> codes: 400,403 (<a href="https://corefork.telegram.org/method/bots.sendCustomRequest#possible-errors">details</a>)</para></summary>
|
||||
/// <param name="custom_method">The method name</param>
|
||||
/// <param name="params_">JSON-serialized method parameters</param>
|
||||
|
|
@ -5592,12 +5721,11 @@ namespace TL.Methods
|
|||
}
|
||||
}
|
||||
|
||||
[TLDef(0x8D9D742B)]
|
||||
[TLDef(0x3A5869EC)]
|
||||
public class Account_GetTheme : IMethod<Theme>
|
||||
{
|
||||
public string format;
|
||||
public InputThemeBase theme;
|
||||
public long document_id;
|
||||
}
|
||||
|
||||
[TLDef(0x7206E458)]
|
||||
|
|
@ -5720,6 +5848,19 @@ namespace TL.Methods
|
|||
[TLDef(0x18201AAE)]
|
||||
public class Account_ClearRecentEmojiStatuses : IMethod<bool> { }
|
||||
|
||||
[TLDef(0xEF500EAB)]
|
||||
public class Account_ReorderUsernames : IMethod<bool>
|
||||
{
|
||||
public string[] order;
|
||||
}
|
||||
|
||||
[TLDef(0x58D6B376)]
|
||||
public class Account_ToggleUsername : IMethod<bool>
|
||||
{
|
||||
public string username;
|
||||
public bool active;
|
||||
}
|
||||
|
||||
[TLDef(0x0D91A548)]
|
||||
public class Users_GetUsers : IMethod<UserBase[]>
|
||||
{
|
||||
|
|
@ -6018,12 +6159,13 @@ namespace TL.Methods
|
|||
}
|
||||
}
|
||||
|
||||
[TLDef(0x0D9D75A4)]
|
||||
[TLDef(0x1CC20387)]
|
||||
public class Messages_SendMessage : IMethod<UpdatesBase>
|
||||
{
|
||||
public Flags flags;
|
||||
public InputPeer peer;
|
||||
[IfFlag(0)] public int reply_to_msg_id;
|
||||
[IfFlag(9)] public int top_msg_id;
|
||||
public string message;
|
||||
public long random_id;
|
||||
[IfFlag(2)] public ReplyMarkup reply_markup;
|
||||
|
|
@ -6040,6 +6182,7 @@ namespace TL.Methods
|
|||
silent = 0x20,
|
||||
background = 0x40,
|
||||
clear_draft = 0x80,
|
||||
has_top_msg_id = 0x200,
|
||||
has_schedule_date = 0x400,
|
||||
has_send_as = 0x2000,
|
||||
noforwards = 0x4000,
|
||||
|
|
@ -6047,12 +6190,13 @@ namespace TL.Methods
|
|||
}
|
||||
}
|
||||
|
||||
[TLDef(0xE25FF8E0)]
|
||||
[TLDef(0x7547C966)]
|
||||
public class Messages_SendMedia : IMethod<UpdatesBase>
|
||||
{
|
||||
public Flags flags;
|
||||
public InputPeer peer;
|
||||
[IfFlag(0)] public int reply_to_msg_id;
|
||||
[IfFlag(9)] public int top_msg_id;
|
||||
public InputMedia media;
|
||||
public string message;
|
||||
public long random_id;
|
||||
|
|
@ -6069,6 +6213,7 @@ namespace TL.Methods
|
|||
silent = 0x20,
|
||||
background = 0x40,
|
||||
clear_draft = 0x80,
|
||||
has_top_msg_id = 0x200,
|
||||
has_schedule_date = 0x400,
|
||||
has_send_as = 0x2000,
|
||||
noforwards = 0x4000,
|
||||
|
|
@ -6076,7 +6221,7 @@ namespace TL.Methods
|
|||
}
|
||||
}
|
||||
|
||||
[TLDef(0xCC30290B)]
|
||||
[TLDef(0xC661BBC4)]
|
||||
public class Messages_ForwardMessages : IMethod<UpdatesBase>
|
||||
{
|
||||
public Flags flags;
|
||||
|
|
@ -6084,6 +6229,7 @@ namespace TL.Methods
|
|||
public int[] id;
|
||||
public long[] random_id;
|
||||
public InputPeer to_peer;
|
||||
[IfFlag(9)] public int top_msg_id;
|
||||
[IfFlag(10)] public DateTime schedule_date;
|
||||
[IfFlag(13)] public InputPeer send_as;
|
||||
|
||||
|
|
@ -6092,6 +6238,7 @@ namespace TL.Methods
|
|||
silent = 0x20,
|
||||
background = 0x40,
|
||||
with_my_score = 0x100,
|
||||
has_top_msg_id = 0x200,
|
||||
has_schedule_date = 0x400,
|
||||
drop_author = 0x800,
|
||||
drop_media_captions = 0x1000,
|
||||
|
|
@ -6476,12 +6623,13 @@ namespace TL.Methods
|
|||
}
|
||||
}
|
||||
|
||||
[TLDef(0x7AA11297)]
|
||||
[TLDef(0xD3FBDCCB)]
|
||||
public class Messages_SendInlineBotResult : IMethod<UpdatesBase>
|
||||
{
|
||||
public Flags flags;
|
||||
public InputPeer peer;
|
||||
[IfFlag(0)] public int reply_to_msg_id;
|
||||
[IfFlag(9)] public int top_msg_id;
|
||||
public long random_id;
|
||||
public long query_id;
|
||||
public string id;
|
||||
|
|
@ -6494,6 +6642,7 @@ namespace TL.Methods
|
|||
silent = 0x20,
|
||||
background = 0x40,
|
||||
clear_draft = 0x80,
|
||||
has_top_msg_id = 0x200,
|
||||
has_schedule_date = 0x400,
|
||||
hide_via = 0x800,
|
||||
has_send_as = 0x2000,
|
||||
|
|
@ -6590,11 +6739,12 @@ namespace TL.Methods
|
|||
public InputDialogPeerBase[] peers;
|
||||
}
|
||||
|
||||
[TLDef(0xBC39E14B)]
|
||||
[TLDef(0xB4331E3F)]
|
||||
public class Messages_SaveDraft : IMethod<bool>
|
||||
{
|
||||
public Flags flags;
|
||||
[IfFlag(0)] public int reply_to_msg_id;
|
||||
[IfFlag(2)] public int top_msg_id;
|
||||
public InputPeer peer;
|
||||
public string message;
|
||||
[IfFlag(3)] public MessageEntity[] entities;
|
||||
|
|
@ -6603,6 +6753,7 @@ namespace TL.Methods
|
|||
{
|
||||
has_reply_to_msg_id = 0x1,
|
||||
no_webpage = 0x2,
|
||||
has_top_msg_id = 0x4,
|
||||
has_entities = 0x8,
|
||||
}
|
||||
}
|
||||
|
|
@ -6839,21 +6990,35 @@ namespace TL.Methods
|
|||
public bool unfave;
|
||||
}
|
||||
|
||||
[TLDef(0x46578472)]
|
||||
[TLDef(0xF107E790)]
|
||||
public class Messages_GetUnreadMentions : IMethod<Messages_MessagesBase>
|
||||
{
|
||||
public Flags flags;
|
||||
public InputPeer peer;
|
||||
[IfFlag(0)] public int top_msg_id;
|
||||
public int offset_id;
|
||||
public int add_offset;
|
||||
public int limit;
|
||||
public int max_id;
|
||||
public int min_id;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_top_msg_id = 0x1,
|
||||
}
|
||||
}
|
||||
|
||||
[TLDef(0x0F0189D3)]
|
||||
[TLDef(0x36E5BF4D)]
|
||||
public class Messages_ReadMentions : IMethod<Messages_AffectedHistory>
|
||||
{
|
||||
public Flags flags;
|
||||
public InputPeer peer;
|
||||
[IfFlag(0)] public int top_msg_id;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_top_msg_id = 0x1,
|
||||
}
|
||||
}
|
||||
|
||||
[TLDef(0x702A40E0)]
|
||||
|
|
@ -6864,12 +7029,13 @@ namespace TL.Methods
|
|||
public long hash;
|
||||
}
|
||||
|
||||
[TLDef(0xF803138F)]
|
||||
[TLDef(0xB6F11A1C)]
|
||||
public class Messages_SendMultiMedia : IMethod<UpdatesBase>
|
||||
{
|
||||
public Flags flags;
|
||||
public InputPeer peer;
|
||||
[IfFlag(0)] public int reply_to_msg_id;
|
||||
[IfFlag(9)] public int top_msg_id;
|
||||
public InputSingleMedia[] multi_media;
|
||||
[IfFlag(10)] public DateTime schedule_date;
|
||||
[IfFlag(13)] public InputPeer send_as;
|
||||
|
|
@ -6880,6 +7046,7 @@ namespace TL.Methods
|
|||
silent = 0x20,
|
||||
background = 0x40,
|
||||
clear_draft = 0x80,
|
||||
has_top_msg_id = 0x200,
|
||||
has_schedule_date = 0x400,
|
||||
has_send_as = 0x2000,
|
||||
noforwards = 0x4000,
|
||||
|
|
@ -7003,11 +7170,18 @@ namespace TL.Methods
|
|||
public string lang_code;
|
||||
}
|
||||
|
||||
[TLDef(0x732EEF00)]
|
||||
[TLDef(0x00AE7CC1)]
|
||||
public class Messages_GetSearchCounters : IMethod<Messages_SearchCounter[]>
|
||||
{
|
||||
public Flags flags;
|
||||
public InputPeer peer;
|
||||
[IfFlag(0)] public int top_msg_id;
|
||||
public MessagesFilter[] filters;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_top_msg_id = 0x1,
|
||||
}
|
||||
}
|
||||
|
||||
[TLDef(0x198FB446)]
|
||||
|
|
@ -7170,10 +7344,17 @@ namespace TL.Methods
|
|||
public int read_max_id;
|
||||
}
|
||||
|
||||
[TLDef(0xF025BC8B)]
|
||||
[TLDef(0xEE22B9A8)]
|
||||
public class Messages_UnpinAllMessages : IMethod<Messages_AffectedHistory>
|
||||
{
|
||||
public Flags flags;
|
||||
public InputPeer peer;
|
||||
[IfFlag(0)] public int top_msg_id;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_top_msg_id = 0x1,
|
||||
}
|
||||
}
|
||||
|
||||
[TLDef(0x5BD0EE50)]
|
||||
|
|
@ -7470,21 +7651,35 @@ namespace TL.Methods
|
|||
}
|
||||
}
|
||||
|
||||
[TLDef(0xE85BAE1A)]
|
||||
[TLDef(0x3223495B)]
|
||||
public class Messages_GetUnreadReactions : IMethod<Messages_MessagesBase>
|
||||
{
|
||||
public Flags flags;
|
||||
public InputPeer peer;
|
||||
[IfFlag(0)] public int top_msg_id;
|
||||
public int offset_id;
|
||||
public int add_offset;
|
||||
public int limit;
|
||||
public int max_id;
|
||||
public int min_id;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_top_msg_id = 0x1,
|
||||
}
|
||||
}
|
||||
|
||||
[TLDef(0x82E251D7)]
|
||||
[TLDef(0x54AA7F8E)]
|
||||
public class Messages_ReadReactions : IMethod<Messages_AffectedHistory>
|
||||
{
|
||||
public Flags flags;
|
||||
public InputPeer peer;
|
||||
[IfFlag(0)] public int top_msg_id;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_top_msg_id = 0x1,
|
||||
}
|
||||
}
|
||||
|
||||
[TLDef(0x107E31A0)]
|
||||
|
|
@ -7514,7 +7709,7 @@ namespace TL.Methods
|
|||
public bool enabled;
|
||||
}
|
||||
|
||||
[TLDef(0xFC87A53C)]
|
||||
[TLDef(0x178B480B)]
|
||||
public class Messages_RequestWebView : IMethod<WebViewResult>
|
||||
{
|
||||
public Flags flags;
|
||||
|
|
@ -7525,6 +7720,7 @@ namespace TL.Methods
|
|||
[IfFlag(2)] public DataJSON theme_params;
|
||||
public string platform;
|
||||
[IfFlag(0)] public int reply_to_msg_id;
|
||||
[IfFlag(9)] public int top_msg_id;
|
||||
[IfFlag(13)] public InputPeer send_as;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
|
|
@ -7535,11 +7731,12 @@ namespace TL.Methods
|
|||
has_start_param = 0x8,
|
||||
from_bot_menu = 0x10,
|
||||
silent = 0x20,
|
||||
has_top_msg_id = 0x200,
|
||||
has_send_as = 0x2000,
|
||||
}
|
||||
}
|
||||
|
||||
[TLDef(0xEA5FBCCE)]
|
||||
[TLDef(0x7FF34309)]
|
||||
public class Messages_ProlongWebView : IMethod<bool>
|
||||
{
|
||||
public Flags flags;
|
||||
|
|
@ -7547,12 +7744,14 @@ namespace TL.Methods
|
|||
public InputUserBase bot;
|
||||
public long query_id;
|
||||
[IfFlag(0)] public int reply_to_msg_id;
|
||||
[IfFlag(9)] public int top_msg_id;
|
||||
[IfFlag(13)] public InputPeer send_as;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_reply_to_msg_id = 0x1,
|
||||
silent = 0x20,
|
||||
has_top_msg_id = 0x200,
|
||||
has_send_as = 0x2000,
|
||||
}
|
||||
}
|
||||
|
|
@ -8226,6 +8425,110 @@ namespace TL.Methods
|
|||
public bool enabled;
|
||||
}
|
||||
|
||||
[TLDef(0xB45CED1D)]
|
||||
public class Channels_ReorderUsernames : IMethod<bool>
|
||||
{
|
||||
public InputChannelBase channel;
|
||||
public string[] order;
|
||||
}
|
||||
|
||||
[TLDef(0x50F24105)]
|
||||
public class Channels_ToggleUsername : IMethod<bool>
|
||||
{
|
||||
public InputChannelBase channel;
|
||||
public string username;
|
||||
public bool active;
|
||||
}
|
||||
|
||||
[TLDef(0x0A245DD3)]
|
||||
public class Channels_DeactivateAllUsernames : IMethod<bool>
|
||||
{
|
||||
public InputChannelBase channel;
|
||||
}
|
||||
|
||||
[TLDef(0xA4298B29)]
|
||||
public class Channels_ToggleForum : IMethod<UpdatesBase>
|
||||
{
|
||||
public InputChannelBase channel;
|
||||
public bool enabled;
|
||||
}
|
||||
|
||||
[TLDef(0xF40C0224)]
|
||||
public class Channels_CreateForumTopic : IMethod<UpdatesBase>
|
||||
{
|
||||
public Flags flags;
|
||||
public InputChannelBase channel;
|
||||
public string title;
|
||||
[IfFlag(0)] public int icon_color;
|
||||
[IfFlag(3)] public long icon_emoji_id;
|
||||
public long random_id;
|
||||
[IfFlag(2)] public InputPeer send_as;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_icon_color = 0x1,
|
||||
has_send_as = 0x4,
|
||||
has_icon_emoji_id = 0x8,
|
||||
}
|
||||
}
|
||||
|
||||
[TLDef(0x0DE560D1)]
|
||||
public class Channels_GetForumTopics : IMethod<Messages_ForumTopics>
|
||||
{
|
||||
public Flags flags;
|
||||
public InputChannelBase channel;
|
||||
[IfFlag(0)] public string q;
|
||||
public DateTime offset_date;
|
||||
public int offset_id;
|
||||
public int offset_topic;
|
||||
public int limit;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_q = 0x1,
|
||||
}
|
||||
}
|
||||
|
||||
[TLDef(0xB0831EB9)]
|
||||
public class Channels_GetForumTopicsByID : IMethod<Messages_ForumTopics>
|
||||
{
|
||||
public InputChannelBase channel;
|
||||
public int[] topics;
|
||||
}
|
||||
|
||||
[TLDef(0x6C883E2D)]
|
||||
public class Channels_EditForumTopic : IMethod<UpdatesBase>
|
||||
{
|
||||
public Flags flags;
|
||||
public InputChannelBase channel;
|
||||
public int topic_id;
|
||||
[IfFlag(0)] public string title;
|
||||
[IfFlag(1)] public long icon_emoji_id;
|
||||
[IfFlag(2)] public bool closed;
|
||||
|
||||
[Flags] public enum Flags : uint
|
||||
{
|
||||
has_title = 0x1,
|
||||
has_icon_emoji_id = 0x2,
|
||||
has_closed = 0x4,
|
||||
}
|
||||
}
|
||||
|
||||
[TLDef(0x6C2D9026)]
|
||||
public class Channels_UpdatePinnedForumTopic : IMethod<UpdatesBase>
|
||||
{
|
||||
public InputChannelBase channel;
|
||||
public int topic_id;
|
||||
public bool pinned;
|
||||
}
|
||||
|
||||
[TLDef(0x34435F2D)]
|
||||
public class Channels_DeleteTopicHistory : IMethod<Messages_AffectedHistory>
|
||||
{
|
||||
public InputChannelBase channel;
|
||||
public int top_msg_id;
|
||||
}
|
||||
|
||||
[TLDef(0xAA2769ED)]
|
||||
public class Bots_SendCustomRequest : IMethod<DataJSON>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ namespace TL
|
|||
{
|
||||
public static class Layer
|
||||
{
|
||||
public const int Version = 146; // fetched 14/09/2022 16:18:39
|
||||
public const int Version = 148; // fetched 01/11/2022 17:33:23
|
||||
internal const int SecretChats = 101;
|
||||
internal const int MTProto2 = 73;
|
||||
internal const uint VectorCtor = 0x1CB5C415;
|
||||
|
|
@ -119,7 +119,7 @@ namespace TL
|
|||
[0x36C6019A] = typeof(PeerChat),
|
||||
[0xA2A5371E] = typeof(PeerChannel),
|
||||
[0xD3BC4B7A] = typeof(UserEmpty),
|
||||
[0x5D99ADEE] = typeof(User),
|
||||
[0x8F97C628] = typeof(User),
|
||||
[0x4F11BAE1] = null,//UserProfilePhotoEmpty
|
||||
[0x82D1F706] = typeof(UserProfilePhoto),
|
||||
[0x09D05049] = null,//UserStatusEmpty
|
||||
|
|
@ -131,7 +131,7 @@ namespace TL
|
|||
[0x29562865] = typeof(ChatEmpty),
|
||||
[0x41CBF256] = typeof(Chat),
|
||||
[0x6592A1A7] = typeof(ChatForbidden),
|
||||
[0x8261AC61] = typeof(Channel),
|
||||
[0x83259464] = typeof(Channel),
|
||||
[0x17D493D5] = typeof(ChannelForbidden),
|
||||
[0xC9D31138] = typeof(ChatFull),
|
||||
[0xF2355507] = typeof(ChannelFull),
|
||||
|
|
@ -191,6 +191,8 @@ namespace TL
|
|||
[0x47DD8079] = typeof(MessageActionWebViewDataSentMe),
|
||||
[0xB4C38CB5] = typeof(MessageActionWebViewDataSent),
|
||||
[0xABA0F5C6] = typeof(MessageActionGiftPremium),
|
||||
[0x0D999256] = typeof(MessageActionTopicCreate),
|
||||
[0xB18A431C] = typeof(MessageActionTopicEdit),
|
||||
[0xA8EDD0F5] = typeof(Dialog),
|
||||
[0x71BD134C] = typeof(DialogFolder),
|
||||
[0x2331B22D] = typeof(PhotoEmpty),
|
||||
|
|
@ -211,6 +213,7 @@ namespace TL
|
|||
[0x193B4417] = typeof(InputNotifyUsers),
|
||||
[0x4A95E84E] = typeof(InputNotifyChats),
|
||||
[0xB1DB7C7E] = typeof(InputNotifyBroadcasts),
|
||||
[0x5C467992] = typeof(InputNotifyForumTopic),
|
||||
[0xDF1F002B] = typeof(InputPeerNotifySettings),
|
||||
[0xA83B0426] = typeof(PeerNotifySettings),
|
||||
[0xA518110D] = typeof(PeerSettings),
|
||||
|
|
@ -260,7 +263,7 @@ namespace TL
|
|||
[0x83487AF0] = typeof(UpdateChatUserTyping),
|
||||
[0x07761198] = typeof(UpdateChatParticipants),
|
||||
[0xE5BDF8DE] = typeof(UpdateUserStatus),
|
||||
[0xC3F202E0] = typeof(UpdateUserName),
|
||||
[0xA7848924] = typeof(UpdateUserName),
|
||||
[0xF227868C] = typeof(UpdateUserPhoto),
|
||||
[0x12BCBD9A] = typeof(UpdateNewEncryptedMessage),
|
||||
[0x1710F156] = typeof(UpdateEncryptedChatTyping),
|
||||
|
|
@ -295,7 +298,7 @@ namespace TL
|
|||
[0xE40370A3] = typeof(UpdateEditMessage),
|
||||
[0x691E9052] = typeof(UpdateInlineBotCallbackQuery),
|
||||
[0xB75F99A9] = typeof(UpdateReadChannelOutbox),
|
||||
[0xEE2BB969] = typeof(UpdateDraftMessage),
|
||||
[0x1B49EC6D] = typeof(UpdateDraftMessage),
|
||||
[0x571D2742] = typeof(UpdateReadFeaturedStickers),
|
||||
[0x9A422C20] = typeof(UpdateRecentStickers),
|
||||
[0xA229DD06] = typeof(UpdateConfig),
|
||||
|
|
@ -311,7 +314,7 @@ namespace TL
|
|||
[0x46560264] = typeof(UpdateLangPackTooLong),
|
||||
[0x56022F4D] = typeof(UpdateLangPack),
|
||||
[0xE511996D] = typeof(UpdateFavedStickers),
|
||||
[0x44BDD535] = typeof(UpdateChannelReadMessagesContents),
|
||||
[0xEA29055D] = typeof(UpdateChannelReadMessagesContents),
|
||||
[0x7084A7BE] = typeof(UpdateContactsReset),
|
||||
[0xB23FC698] = typeof(UpdateChannelAvailableMessages),
|
||||
[0xE16459C3] = typeof(UpdateDialogUnreadMark),
|
||||
|
|
@ -348,7 +351,7 @@ namespace TL
|
|||
[0x4D712F2E] = typeof(UpdateBotCommands),
|
||||
[0x7063C3DB] = typeof(UpdatePendingJoinRequests),
|
||||
[0x11DFA986] = typeof(UpdateBotChatInviteRequester),
|
||||
[0x154798C3] = typeof(UpdateMessageReactions),
|
||||
[0x5E1B3CB8] = typeof(UpdateMessageReactions),
|
||||
[0x17B7A20B] = typeof(UpdateAttachMenuBots),
|
||||
[0x1592B79D] = typeof(UpdateWebViewResultSent),
|
||||
[0x14B85813] = typeof(UpdateBotMenuButton),
|
||||
|
|
@ -360,6 +363,7 @@ namespace TL
|
|||
[0x6F7863F4] = typeof(UpdateRecentReactions),
|
||||
[0x86FCCF85] = typeof(UpdateMoveStickerSetToTop),
|
||||
[0x5A73A98C] = typeof(UpdateMessageExtendedMedia),
|
||||
[0xF694B0AE] = typeof(UpdateChannelPinnedTopic),
|
||||
[0xA56C2A3E] = typeof(Updates_State),
|
||||
[0x5D75A138] = typeof(Updates_DifferenceEmpty),
|
||||
[0x00F49CA0] = typeof(Updates_Difference),
|
||||
|
|
@ -410,6 +414,7 @@ namespace TL
|
|||
[0xB4C83B4C] = typeof(NotifyUsers),
|
||||
[0xC007CEC3] = typeof(NotifyChats),
|
||||
[0xD612E8EF] = typeof(NotifyBroadcasts),
|
||||
[0x226E6308] = typeof(NotifyForumTopic),
|
||||
[0x16BF744E] = typeof(SendMessageTypingAction),
|
||||
[0xFD5EC8F5] = typeof(SendMessageCancelAction),
|
||||
[0xA187D66F] = typeof(SendMessageRecordVideoAction),
|
||||
|
|
@ -486,8 +491,9 @@ namespace TL
|
|||
[0xC88B3B02] = typeof(InputStickerSetPremiumGifts),
|
||||
[0x04C4D4CE] = typeof(InputStickerSetEmojiGenericAnimations),
|
||||
[0x29D0F5EE] = typeof(InputStickerSetEmojiDefaultStatuses),
|
||||
[0x44C1F8E9] = typeof(InputStickerSetEmojiDefaultTopicIcons),
|
||||
[0x2DD14EDC] = typeof(StickerSet),
|
||||
[0xB60A24A6] = typeof(Messages_StickerSet),
|
||||
[0x6E153F16] = typeof(Messages_StickerSet),
|
||||
[0xD3F924EB] = null,//Messages_StickerSetNotModified
|
||||
[0xC27AC8C7] = typeof(BotCommand),
|
||||
[0x8F300B57] = typeof(BotInfo),
|
||||
|
|
@ -613,7 +619,7 @@ namespace TL
|
|||
[0x35E410A8] = typeof(Messages_StickerSetInstallResultArchive),
|
||||
[0x6410A5D2] = typeof(StickerSetCovered),
|
||||
[0x3407E51B] = typeof(StickerSetMultiCovered),
|
||||
[0x1AED5EE5] = typeof(StickerSetFullCovered),
|
||||
[0x40D13C0E] = typeof(StickerSetFullCovered),
|
||||
[0xAED6DBB2] = typeof(MaskCoords),
|
||||
[0x4A992157] = typeof(InputStickeredMediaPhoto),
|
||||
[0x0438865B] = typeof(InputStickeredMediaDocument),
|
||||
|
|
@ -750,6 +756,12 @@ namespace TL
|
|||
[0xCB2AC766] = typeof(ChannelAdminLogEventActionToggleNoForwards),
|
||||
[0x278F2868] = typeof(ChannelAdminLogEventActionSendMessage),
|
||||
[0xBE4E0EF8] = typeof(ChannelAdminLogEventActionChangeAvailableReactions),
|
||||
[0xF04FB3A9] = typeof(ChannelAdminLogEventActionChangeUsernames),
|
||||
[0x02CC6383] = typeof(ChannelAdminLogEventActionToggleForum),
|
||||
[0x58707D28] = typeof(ChannelAdminLogEventActionCreateTopic),
|
||||
[0xF06FE208] = typeof(ChannelAdminLogEventActionEditTopic),
|
||||
[0xAE168909] = typeof(ChannelAdminLogEventActionDeleteTopic),
|
||||
[0x5D8D353B] = typeof(ChannelAdminLogEventActionPinTopic),
|
||||
[0x1FAD68CD] = typeof(ChannelAdminLogEvent),
|
||||
[0xED8AF74D] = typeof(Channels_AdminLogResults),
|
||||
[0xEA107AE4] = typeof(ChannelAdminLogEventsFilter),
|
||||
|
|
@ -953,7 +965,8 @@ namespace TL
|
|||
[0xE9EFFC7D] = typeof(Account_ResetPasswordRequestedWait),
|
||||
[0xE926D63E] = typeof(Account_ResetPasswordOk),
|
||||
[0x3A836DF8] = typeof(SponsoredMessage),
|
||||
[0x65A4C7D5] = typeof(Messages_SponsoredMessages),
|
||||
[0xC9EE1D87] = typeof(Messages_SponsoredMessages),
|
||||
[0x1839490F] = null,//Messages_SponsoredMessagesEmpty
|
||||
[0xC9B0539F] = typeof(SearchResultsCalendarPeriod),
|
||||
[0x147EE23C] = typeof(Messages_SearchResultsCalendar),
|
||||
[0x7F648B67] = typeof(SearchResultPosition),
|
||||
|
|
@ -1028,6 +1041,11 @@ namespace TL
|
|||
[0xB81C7034] = typeof(SendAsPeer),
|
||||
[0xAD628CC8] = typeof(MessageExtendedMediaPreview),
|
||||
[0xEE479C64] = typeof(MessageExtendedMedia),
|
||||
[0xFCFEB29C] = typeof(StickerKeyword),
|
||||
[0xB4073647] = typeof(Username),
|
||||
[0x023F109B] = typeof(ForumTopicDeleted),
|
||||
[0x71701DA9] = typeof(ForumTopic),
|
||||
[0x367617D3] = typeof(Messages_ForumTopics),
|
||||
// from TL.Secret:
|
||||
[0xBB718624] = typeof(Layer66.SendMessageUploadRoundAction),
|
||||
[0xE50511D8] = typeof(Layer45.DecryptedMessageMediaWebPage),
|
||||
|
|
@ -1130,6 +1148,7 @@ namespace TL
|
|||
[typeof(DialogFilter)] = 0x363293AE, //dialogFilterDefault
|
||||
[typeof(Help_CountriesList)] = 0x93CC1F32, //help.countriesListNotModified
|
||||
[typeof(BotCommandScope)] = 0x2F6CB2AB, //botCommandScopeDefault
|
||||
[typeof(Messages_SponsoredMessages)] = 0x1839490F, //messages.sponsoredMessagesEmpty
|
||||
[typeof(Messages_AvailableReactions)] = 0x9F071957, //messages.availableReactionsNotModified
|
||||
[typeof(AttachMenuBots)] = 0xF1D88A5C, //attachMenuBotsNotModified
|
||||
[typeof(BotMenuButtonBase)] = 0x7533A588, //botMenuButtonDefault
|
||||
|
|
|
|||
16
src/TL.cs
16
src/TL.cs
|
|
@ -59,14 +59,16 @@ namespace TL
|
|||
writer.Write(ctorNb);
|
||||
IEnumerable<FieldInfo> fields = type.GetFields(BindingFlags.Instance | BindingFlags.Public);
|
||||
if (tlDef.inheritBefore) fields = fields.GroupBy(f => f.DeclaringType).Reverse().SelectMany(g => g);
|
||||
uint flags = 0;
|
||||
ulong flags = 0;
|
||||
IfFlagAttribute ifFlag;
|
||||
foreach (var field in fields)
|
||||
{
|
||||
if (((ifFlag = field.GetCustomAttribute<IfFlagAttribute>()) != null) && (flags & (1U << ifFlag.Bit)) == 0) continue;
|
||||
if (((ifFlag = field.GetCustomAttribute<IfFlagAttribute>()) != null) && (flags & (1UL << ifFlag.Bit)) == 0) continue;
|
||||
object value = field.GetValue(obj);
|
||||
writer.WriteTLValue(value, field.FieldType);
|
||||
if (field.FieldType.IsEnum && field.Name == "flags") flags = (uint)value;
|
||||
if (field.FieldType.IsEnum)
|
||||
if (field.Name == "flags") flags = (uint)value;
|
||||
else if (field.Name == "flags2") flags |= (ulong)(uint)value << 32;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -83,14 +85,16 @@ namespace TL
|
|||
var obj = Activator.CreateInstance(type, true);
|
||||
IEnumerable<FieldInfo> fields = type.GetFields(BindingFlags.Instance | BindingFlags.Public);
|
||||
if (tlDef.inheritBefore) fields = fields.GroupBy(f => f.DeclaringType).Reverse().SelectMany(g => g);
|
||||
uint flags = 0;
|
||||
ulong flags = 0;
|
||||
IfFlagAttribute ifFlag;
|
||||
foreach (var field in fields)
|
||||
{
|
||||
if (((ifFlag = field.GetCustomAttribute<IfFlagAttribute>()) != null) && (flags & (1U << ifFlag.Bit)) == 0) continue;
|
||||
if (((ifFlag = field.GetCustomAttribute<IfFlagAttribute>()) != null) && (flags & (1UL << ifFlag.Bit)) == 0) continue;
|
||||
object value = reader.ReadTLValue(field.FieldType);
|
||||
field.SetValue(obj, value);
|
||||
if (field.FieldType.IsEnum && field.Name == "flags") flags = (uint)value;
|
||||
if (field.FieldType.IsEnum)
|
||||
if (field.Name == "flags") flags = (uint)value;
|
||||
else if (field.Name == "flags2") flags |= (ulong)(uint)value << 32;
|
||||
if (reader.Client?.CollectAccessHash == true) reader.Client.CollectField(field, obj, value);
|
||||
}
|
||||
return (IObject)obj;
|
||||
|
|
|
|||
Loading…
Reference in a new issue