diff --git a/src/TL.Schema.cs b/src/TL.Schema.cs index c441a9e..15f24ce 100644 --- a/src/TL.Schema.cs +++ b/src/TL.Schema.cs @@ -2609,7 +2609,7 @@ namespace TL /// Full list of blocked users. See [TLDef(0x0ADE1591)] - public partial class Contacts_Blocked : IObject + public partial class Contacts_Blocked : IObject, IPeerResolver { /// List of blocked users public PeerBlocked[] blocked; @@ -2629,7 +2629,7 @@ namespace TL } /// Object contains a list of chats with messages and auxiliary data. Derived classes: , , See - public abstract partial class Messages_DialogsBase : IObject + public abstract partial class Messages_DialogsBase : IObject, IPeerResolver { /// List of chats public abstract DialogBase[] Dialogs { get; } @@ -2640,7 +2640,7 @@ namespace TL } /// Full list of chats with messages and auxiliary data. See [TLDef(0x15BA6C40)] - public partial class Messages_Dialogs : Messages_DialogsBase + public partial class Messages_Dialogs : Messages_DialogsBase, IPeerResolver { /// List of chats public DialogBase[] dialogs; @@ -2660,14 +2660,14 @@ namespace TL } /// Incomplete list of dialogs with messages and auxiliary data. See [TLDef(0x71E094F3)] - public partial class Messages_DialogsSlice : Messages_Dialogs + public partial class Messages_DialogsSlice : Messages_Dialogs, IPeerResolver { /// Total number of dialogs public int count; } /// Dialogs haven't changed See [TLDef(0xF0E3E596)] - public partial class Messages_DialogsNotModified : Messages_DialogsBase + public partial class Messages_DialogsNotModified : Messages_DialogsBase, IPeerResolver { /// Number of dialogs found server-side by the query public int count; @@ -2679,7 +2679,7 @@ namespace TL } /// Object contains infor on list of messages with auxiliary data. Derived classes: , , , See - public abstract partial class Messages_MessagesBase : IObject + public abstract partial class Messages_MessagesBase : IObject, IPeerResolver { /// List of messages public abstract MessageBase[] Messages { get; } @@ -2688,7 +2688,7 @@ namespace TL } /// Full list of messages with auxilary data. See [TLDef(0x8C718E87)] - public partial class Messages_Messages : Messages_MessagesBase + public partial class Messages_Messages : Messages_MessagesBase, IPeerResolver { /// List of messages public MessageBase[] messages; @@ -2704,7 +2704,7 @@ namespace TL } /// Incomplete list of messages and auxiliary data. See [TLDef(0x3A54685E)] - public partial class Messages_MessagesSlice : Messages_Messages + public partial class Messages_MessagesSlice : Messages_Messages, IPeerResolver { /// Flags, see TL conditional fields public Flags flags; @@ -2727,7 +2727,7 @@ namespace TL } /// Channel messages See [TLDef(0x64479808)] - public partial class Messages_ChannelMessages : Messages_MessagesBase + public partial class Messages_ChannelMessages : Messages_MessagesBase, IPeerResolver { /// Flags, see TL conditional fields public Flags flags; @@ -2759,7 +2759,7 @@ namespace TL } /// No new messages matching the query were found See [TLDef(0x74535F21)] - public partial class Messages_MessagesNotModified : Messages_MessagesBase + public partial class Messages_MessagesNotModified : Messages_MessagesBase, IPeerResolver { /// Number of results found server-side by the given query public int count; @@ -2786,7 +2786,7 @@ namespace TL /// Extended info on chat and auxiliary data. See [TLDef(0xE5D7D19C)] - public partial class Messages_ChatFull : IObject + public partial class Messages_ChatFull : IObject, IPeerResolver { /// Extended info on a chat public ChatFullBase full_chat; @@ -4002,7 +4002,7 @@ namespace TL } /// Occurred changes. Derived classes: , , , See - public abstract partial class Updates_DifferenceBase : IObject + public abstract partial class Updates_DifferenceBase : IObject, IPeerResolver { /// List of new messages public abstract MessageBase[] NewMessages { get; } @@ -4015,7 +4015,7 @@ namespace TL } /// No events. See [TLDef(0x5D75A138)] - public partial class Updates_DifferenceEmpty : Updates_DifferenceBase + public partial class Updates_DifferenceEmpty : Updates_DifferenceBase, IPeerResolver { /// Current date public DateTime date; @@ -4030,7 +4030,7 @@ namespace TL } /// Full list of occurred events. See [TLDef(0x00F49CA0)] - public partial class Updates_Difference : Updates_DifferenceBase + public partial class Updates_Difference : Updates_DifferenceBase, IPeerResolver { /// List of new messages public MessageBase[] new_messages; @@ -4056,7 +4056,7 @@ namespace TL } /// Incomplete list of occurred events. See [TLDef(0xA8FB1981)] - public partial class Updates_DifferenceSlice : Updates_DifferenceBase + public partial class Updates_DifferenceSlice : Updates_DifferenceBase, IPeerResolver { /// List of new messgaes public MessageBase[] new_messages; @@ -4082,7 +4082,7 @@ namespace TL } /// The difference is too long, and the specified state must be used to refetch updates. See [TLDef(0x4AFE8F6D)] - public partial class Updates_DifferenceTooLong : Updates_DifferenceBase + public partial class Updates_DifferenceTooLong : Updates_DifferenceBase, IPeerResolver { /// The new state to use. public int pts; @@ -4230,7 +4230,7 @@ namespace TL } /// Constructor for a group of updates. See [TLDef(0x725B04C3)] - public partial class UpdatesCombined : UpdatesBase + public partial class UpdatesCombined : UpdatesBase, IPeerResolver { /// List of updates public Update[] updates; @@ -4252,7 +4252,7 @@ namespace TL } /// Full constructor of updates See [TLDef(0x74AE4240)] - public partial class Updates : UpdatesBase + public partial class Updates : UpdatesBase, IPeerResolver { /// List of updates public Update[] updates; @@ -5039,7 +5039,7 @@ namespace TL /// Users found by name substring and auxiliary data. See [TLDef(0xB3134D9D)] - public partial class Contacts_Found : IObject + public partial class Contacts_Found : IObject, IPeerResolver { /// Personalized results public Peer[] my_results; @@ -5183,7 +5183,7 @@ namespace TL /// Privacy rules See [TLDef(0x50A04E45)] - public partial class Account_PrivacyRules : IObject + public partial class Account_PrivacyRules : IObject, IPeerResolver { /// Privacy rules public PrivacyRule[] rules; @@ -6190,14 +6190,14 @@ namespace TL } /// Contains the difference (new messages) between our local channel state and the remote state Derived classes: , , See - public abstract partial class Updates_ChannelDifferenceBase : IObject + public abstract partial class Updates_ChannelDifferenceBase : IObject, IPeerResolver { /// returns a or for the given Peer public abstract IPeerInfo UserOrChat(Peer peer); } /// There are no new updates See [TLDef(0x3E11AFFB)] - public partial class Updates_ChannelDifferenceEmpty : Updates_ChannelDifferenceBase + public partial class Updates_ChannelDifferenceEmpty : Updates_ChannelDifferenceBase, IPeerResolver { /// Flags, see TL conditional fields public Flags flags; @@ -6218,7 +6218,7 @@ namespace TL } /// The provided pts + limit < remote pts. Simply, there are too many updates to be fetched (more than limit), the client has to resolve the update gap in one of the following ways: See [TLDef(0xA4BCC6FE)] - public partial class Updates_ChannelDifferenceTooLong : Updates_ChannelDifferenceBase + public partial class Updates_ChannelDifferenceTooLong : Updates_ChannelDifferenceBase, IPeerResolver { /// Flags, see TL conditional fields public Flags flags; @@ -6245,7 +6245,7 @@ namespace TL } /// The new updates See [TLDef(0x2064674E)] - public partial class Updates_ChannelDifference : Updates_ChannelDifferenceBase + public partial class Updates_ChannelDifference : Updates_ChannelDifferenceBase, IPeerResolver { /// Flags, see TL conditional fields public Flags flags; @@ -6457,7 +6457,7 @@ namespace TL /// Represents multiple channel participants See /// a null value means channels.channelParticipantsNotModified [TLDef(0x9AB0FEAF)] - public partial class Channels_ChannelParticipants : IObject + public partial class Channels_ChannelParticipants : IObject, IPeerResolver { /// Total number of participants that correspond to the given query public int count; @@ -6473,7 +6473,7 @@ namespace TL /// Represents a channel participant See [TLDef(0xDFB80317)] - public partial class Channels_ChannelParticipant : IObject + public partial class Channels_ChannelParticipant : IObject, IPeerResolver { /// The channel participant public ChannelParticipantBase participant; @@ -7264,7 +7264,7 @@ namespace TL /// Dialog info of multiple peers See [TLDef(0x3371C354)] - public partial class Messages_PeerDialogs : IObject + public partial class Messages_PeerDialogs : IObject, IPeerResolver { /// Dialog info public DialogBase[] dialogs; @@ -7328,7 +7328,7 @@ namespace TL public abstract partial class Contacts_TopPeersBase : IObject { } /// Top peers See [TLDef(0x70B772A8)] - public partial class Contacts_TopPeers : Contacts_TopPeersBase + public partial class Contacts_TopPeers : Contacts_TopPeersBase, IPeerResolver { /// Top peers by top peer category public TopPeerCategoryPeers[] categories; @@ -9220,7 +9220,7 @@ namespace TL /// Admin log events See [TLDef(0xED8AF74D)] - public partial class Channels_AdminLogResults : IObject + public partial class Channels_AdminLogResults : IObject, IPeerResolver { /// Admin log events public ChannelAdminLogEvent[] events; @@ -9339,7 +9339,7 @@ namespace TL /// Recent t.me URLs See [TLDef(0x0E0310D7)] - public partial class Help_RecentMeUrls : IObject + public partial class Help_RecentMeUrls : IObject, IPeerResolver { /// URLs public RecentMeUrl[] urls; @@ -10927,7 +10927,7 @@ namespace TL /// Inactive chat list See [TLDef(0xA927FEC5)] - public partial class Messages_InactiveChats : IObject + public partial class Messages_InactiveChats : IObject, IPeerResolver { /// When was the chat last active public int[] dates; @@ -11336,8 +11336,8 @@ namespace TL /// Field has a value has_psa_message = 0x4, } - /// returns a or for the given Peer - public IPeerInfo UserOrChat(Peer peer) => peer.UserOrChat(users, chats); + /// returns a or for the result + public IPeerInfo UserOrChat => peer.UserOrChat(users, chats); } /// Animated profile picture in MPEG4 format See @@ -11539,7 +11539,7 @@ namespace TL /// View, forward counter + info about replies See [TLDef(0xB6C4F543)] - public partial class Messages_MessageViews : IObject + public partial class Messages_MessageViews : IObject, IPeerResolver { /// View, forward counter + info about replies public MessageViews[] views; @@ -11553,7 +11553,7 @@ namespace TL /// Information about a message thread See [TLDef(0xA6341782)] - public partial class Messages_DiscussionMessage : IObject + public partial class Messages_DiscussionMessage : IObject, IPeerResolver { /// Flags, see TL conditional fields public Flags flags; @@ -11814,7 +11814,7 @@ namespace TL /// Contains info about a group call, and partial info about its participants. See [TLDef(0x9E727AAD)] - public partial class Phone_GroupCall : IObject + public partial class Phone_GroupCall : IObject, IPeerResolver { /// Info about the group call public GroupCallBase call; @@ -11832,7 +11832,7 @@ namespace TL /// Info about the participants of a group call or livestream See [TLDef(0xF47751B6)] - public partial class Phone_GroupParticipants : IObject + public partial class Phone_GroupParticipants : IObject, IPeerResolver { /// Number of participants public int count; @@ -12024,7 +12024,7 @@ namespace TL /// A list of peers that can be used to join a group call, presenting yourself as a specific user/channel. See [TLDef(0xAFE5623F)] - public partial class Phone_JoinAsPeers : IObject + public partial class Phone_JoinAsPeers : IObject, IPeerResolver { /// Peers public Peer[] peers; @@ -12167,7 +12167,7 @@ namespace TL /// A set of sponsored messages associated to a channel See [TLDef(0x65A4C7D5)] - public partial class Messages_SponsoredMessages : IObject + public partial class Messages_SponsoredMessages : IObject, IPeerResolver { /// Sponsored messages public SponsoredMessage[] messages; @@ -12191,7 +12191,7 @@ namespace TL /// See [TLDef(0x147EE23C)] - public partial class Messages_SearchResultsCalendar : IObject + public partial class Messages_SearchResultsCalendar : IObject, IPeerResolver { public Flags flags; public int count; diff --git a/src/TL.cs b/src/TL.cs index 92491ce..c50b65a 100644 --- a/src/TL.cs +++ b/src/TL.cs @@ -11,6 +11,7 @@ namespace TL { public interface IObject { } public interface IMethod : IObject { } + public interface IPeerResolver { IPeerInfo UserOrChat(Peer peer); } public static class Serialization {