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