From f1c1d0a6a293419e3ac7787167db01d6519d60fc Mon Sep 17 00:00:00 2001 From: Wizou <11647984+wiz0u@users.noreply.github.com> Date: Sat, 2 Nov 2024 22:54:20 +0100 Subject: [PATCH] Added helpers Message.ReplyHeader .TopicID. Fix duplicate pinned in Channels_GetAllForumTopics --- src/Client.Helpers.cs | 2 +- src/TL.Xtended.cs | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Client.Helpers.cs b/src/Client.Helpers.cs index 33e5987..e1c03af 100644 --- a/src/Client.Helpers.cs +++ b/src/Client.Helpers.cs @@ -626,7 +626,7 @@ namespace WTelegram /// Search query public async Task Channels_GetAllForumTopics(InputChannelBase channel, string q = null) { - var result = await this.Channels_GetForumTopics(channel, limit: 20, q: q); + var result = await this.Channels_GetForumTopics(channel, offset_date: DateTime.MaxValue, q: q); if (result.topics.Length < result.count) { var topics = result.topics.ToList(); diff --git a/src/TL.Xtended.cs b/src/TL.Xtended.cs index 334ecc4..ef2701f 100644 --- a/src/TL.Xtended.cs +++ b/src/TL.Xtended.cs @@ -308,6 +308,7 @@ namespace TL partial class ChatParticipantsForbidden { public override ChatParticipantBase[] Participants => []; } partial class ChatParticipants { public override ChatParticipantBase[] Participants => participants; } + partial class MessageBase { public MessageReplyHeader ReplyHeader => ReplyTo as MessageReplyHeader; } partial class MessageEmpty { public override string ToString() => "(no message)"; } partial class Message { public override string ToString() => $"{(from_id ?? peer_id)?.ID}> {message} {media}"; } partial class MessageService { public override string ToString() => $"{(from_id ?? peer_id)?.ID} [{action.GetType().Name[13..]}]"; } @@ -756,8 +757,9 @@ namespace TL } } - partial class Theme { public static implicit operator InputTheme(Theme theme) => new() { id = theme.id, access_hash = theme.access_hash }; } - partial class GroupCallBase { public static implicit operator InputGroupCall(GroupCallBase call) => new() { id = call.ID, access_hash = call.AccessHash }; } + partial class Theme { public static implicit operator InputTheme(Theme theme) => new() { id = theme.id, access_hash = theme.access_hash }; } + partial class MessageReplyHeader { public int TopicID => flags.HasFlag(Flags.forum_topic) ? flags.HasFlag(Flags.has_reply_to_top_id) ? reply_to_top_id : reply_to_msg_id : 0; } + partial class GroupCallBase { public static implicit operator InputGroupCall(GroupCallBase call) => new() { id = call.ID, access_hash = call.AccessHash }; } partial class RequestedPeer { public abstract long ID { get; } } partial class RequestedPeerUser { public override long ID => user_id; }