diff --git a/.github/dev.yml b/.github/dev.yml
index 1b468e9..6a17968 100644
--- a/.github/dev.yml
+++ b/.github/dev.yml
@@ -1,7 +1,7 @@
pr: none
trigger: [ master ]
-name: 4.2.2-dev.$(Rev:r)
+name: 4.2.3-dev.$(Rev:r)
pool:
vmImage: ubuntu-latest
diff --git a/src/Client.Helpers.cs b/src/Client.Helpers.cs
index be50015..33e5987 100644
--- a/src/Client.Helpers.cs
+++ b/src/Client.Helpers.cs
@@ -621,6 +621,32 @@ namespace WTelegram
return resultFull;
}
+ /// Helper simplified method: Get all topics of a forum See Possible codes: 400 (details)
+ /// Supergroup
+ /// Search query
+ public async Task Channels_GetAllForumTopics(InputChannelBase channel, string q = null)
+ {
+ var result = await this.Channels_GetForumTopics(channel, limit: 20, q: q);
+ if (result.topics.Length < result.count)
+ {
+ var topics = result.topics.ToList();
+ var messages = result.messages.ToList();
+ while (true)
+ {
+ var more_topics = await this.Channels_GetForumTopics(channel, messages[^1].Date, messages[^1].ID, topics[^1].ID);
+ if (more_topics.topics.Length == 0) break;
+ topics.AddRange(more_topics.topics);
+ messages.AddRange(more_topics.messages);
+ foreach (var kvp in more_topics.chats) result.chats[kvp.Key] = kvp.Value;
+ foreach (var kvp in more_topics.users) result.users[kvp.Key] = kvp.Value;
+ if (topics.Count >= more_topics.count) break;
+ }
+ result.topics = [.. topics];
+ result.messages = [.. messages];
+ }
+ return result;
+ }
+
private const string OnlyChatChannel = "This method works on Chat & Channel only";
/// Generic helper: Adds a single user to a Chat or Channel See
and Possible codes: 400,403
/// Chat/Channel