fix: fix of crashes if messages is unable to read

This commit is contained in:
Pavel-Savely Savianok 2025-02-06 17:59:39 +03:00
parent 645cc9a5d0
commit df34347920

View File

@ -86,23 +86,35 @@ namespace TelegramMessageCounter
Console.ForegroundColor = ConsoleColor.White;
return null;
}
var res = Client.Messages_GetHistory((InputPeer)peer).Result;
List<Messages_MessagesBase> messagesList = [res];
for (int offset = 0; offset < res.Count; offset += 100)
{
if (offset > res.Count) offset = res.Count;
Console.ForegroundColor = ConsoleColor.Yellow;
Console.Write($"\rReading messages, please wait, it may take a while... {offset} => {res.Count}");
try
List<Messages_MessagesBase> messagesList = [];
var messageCount = 0;
try
{
var res = Client.Messages_GetHistory((InputPeer)peer).Result;
for (int offset = 0; offset < res.Count; offset += 100)
{
messagesList.Add(Client.Messages_GetHistory((InputPeer)peer, 0, default, offset).Result);
}
catch (Exception)
{
// ignored
if (offset > res.Count) offset = res.Count;
Console.ForegroundColor = ConsoleColor.Yellow;
Console.Write($"\rReading messages, please wait, it may take a while... {offset} => {res.Count}");
try
{
messagesList.Add(Client.Messages_GetHistory((InputPeer)peer, 0, default, offset).Result);
}
catch (Exception)
{
// ignored
}
}
messageCount =res.Count;
}
catch (Exception)
{
// ignored
}
Console.ForegroundColor = ConsoleColor.Yellow;
Console.Write("\nEvaluating results...");
foreach (var messageBase in messagesList)
@ -127,7 +139,7 @@ namespace TelegramMessageCounter
(float)myCounter / targetCounter,
targetCounter,
myCounter,
res.Count,
messageCount,
string.IsNullOrEmpty(peer?.username ?? "") ? peer?.id.ToString() ?? "unknown" : $"@{peer?.username}");
}