From 4ccfddd22e17b7f7178e20b04ade84881a575c43 Mon Sep 17 00:00:00 2001 From: Wizou <11647984+wiz0u@users.noreply.github.com> Date: Fri, 31 Oct 2025 00:36:24 +0100 Subject: [PATCH] Collect: Fix Channel losing participants_count --- src/Services.cs | 7 ++++++- src/UpdateManager.cs | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Services.cs b/src/Services.cs index 4b8cd9d..a98c8fe 100644 --- a/src/Services.cs +++ b/src/Services.cs @@ -70,8 +70,13 @@ namespace TL foreach (var chat in chats) if (chat is not Channel channel) _chats[chat.ID] = chat; - else if (!channel.flags.HasFlag(Channel.Flags.min) || !_chats.TryGetValue(channel.id, out var prevChat) || prevChat is not Channel prevChannel || prevChannel.flags.HasFlag(Channel.Flags.min)) + else if (!_chats.TryGetValue(channel.id, out var prevChat) || prevChat is not Channel prevChannel) _chats[channel.id] = channel; + else if (!channel.flags.HasFlag(Channel.Flags.min) || prevChannel.flags.HasFlag(Channel.Flags.min)) + { + if (channel.participants_count == 0) channel.participants_count = prevChannel.participants_count; // non-min channel can lack this info + _chats[channel.id] = channel; + } else { // update previously full channel from min channel: const Channel.Flags updated_flags = (Channel.Flags)0x7FDC0BE0; diff --git a/src/UpdateManager.cs b/src/UpdateManager.cs index 1f7e328..9446054 100644 --- a/src/UpdateManager.cs +++ b/src/UpdateManager.cs @@ -566,7 +566,7 @@ namespace WTelegram /// Save the current state of the manager to JSON file /// File path to write - /// Note: This does not save the the content of collected Users/Chats dictionaries + /// Note: This does not save the content of collected Users/Chats dictionaries public void SaveState(string statePath) => System.IO.File.WriteAllText(statePath, System.Text.Json.JsonSerializer.Serialize(State, Helpers.JsonOptions)); public static Dictionary LoadState(string statePath) => !System.IO.File.Exists(statePath) ? null