mirror of
https://github.com/wiz0u/WTelegramClient.git
synced 2026-04-04 14:07:41 +00:00
added Messages_GetAllDialogs. UserOrChat(null) returns null
This commit is contained in:
parent
f3a55385ab
commit
78d7e250f3
6 changed files with 81 additions and 65 deletions
|
|
@ -44,8 +44,8 @@ namespace WTelegramClientTest
|
|||
{
|
||||
// Zero means the access hash for Durov's Channel was not collected yet.
|
||||
// So we need to obtain it through Client API calls whose results contains the access_hash field, such as:
|
||||
// - Messages_GetAllChats (see Program_GetAllChats.cs for an example on how to use it)
|
||||
// - Messages_GetDialogs (see Program_ListenUpdates.cs for an example on how to use it)
|
||||
// - Messages_GetAllChats (see Program_GetAllChats.cs for an example on how to use it)
|
||||
// - Messages_GetAllDialogs (see Program_ListenUpdates.cs for an example on how to use it)
|
||||
// - Contacts_ResolveUsername (see below for an example on how to use it)
|
||||
// and many more API methods...
|
||||
// The access_hash fields can be found inside instance of User, Channel, Photo, Document, etc..
|
||||
|
|
|
|||
|
|
@ -25,16 +25,8 @@ namespace WTelegramClientTest
|
|||
// Note that on login Telegram may sends a bunch of updates/messages that happened in the past and were not acknowledged
|
||||
Console.WriteLine($"We are logged-in as {My.username ?? My.first_name + " " + My.last_name} (id {My.id})");
|
||||
// We collect all infos about the users/chats so that updates can be printed with their names
|
||||
var dialogsBase = await Client.Messages_GetDialogs(); // dialogs = groups/channels/users
|
||||
if (dialogsBase is Messages_Dialogs dialogs)
|
||||
while (dialogs.dialogs.Length != 0)
|
||||
{
|
||||
dialogs.CollectUsersChats(_users, _chats);
|
||||
var lastDialog = dialogs.dialogs[^1];
|
||||
var lastMsg = dialogs.messages.LastOrDefault(m => m.Peer.ID == lastDialog.Peer.ID && m.ID == lastDialog.TopMessage);
|
||||
var offsetPeer = dialogs.UserOrChat(lastDialog).ToInputPeer();
|
||||
dialogs = (Messages_Dialogs)await Client.Messages_GetDialogs(lastMsg?.Date ?? default, lastDialog.TopMessage, offsetPeer);
|
||||
}
|
||||
var dialogs = await Client.Messages_GetAllDialogs(); // dialogs = groups/channels/users
|
||||
dialogs.CollectUsersChats(_users, _chats);
|
||||
Console.ReadKey();
|
||||
}
|
||||
}
|
||||
|
|
@ -64,7 +56,7 @@ namespace WTelegramClientTest
|
|||
case UpdateUserStatus uus: Console.WriteLine($"{User(uus.user_id)} is now {uus.status.GetType().Name[10..]}"); break;
|
||||
case UpdateUserName uun: Console.WriteLine($"{User(uun.user_id)} has changed profile name: @{uun.username} {uun.first_name} {uun.last_name}"); break;
|
||||
case UpdateUserPhoto uup: Console.WriteLine($"{User(uup.user_id)} has changed profile photo"); break;
|
||||
default: Console.WriteLine(update.GetType().Name); break;
|
||||
default: Console.WriteLine(update.GetType().Name); break; // there are much more update types than the above cases
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue