mirror of
https://github.com/wiz0u/WTelegramClient.git
synced 2025-12-06 06:52:01 +01:00
OnUpdate is now only for updates. OnOther is used for other notifications
This commit is contained in:
parent
5adde27f88
commit
753ac12eb1
|
|
@ -18,10 +18,9 @@ namespace WTelegramClientTest
|
|||
client.OnUpdate += Client_OnUpdate;
|
||||
Console.ReadKey();
|
||||
|
||||
async Task Client_OnUpdate(IObject arg)
|
||||
async Task Client_OnUpdate(UpdatesBase updates)
|
||||
{
|
||||
if (arg is not Updates { updates: var updates } upd) return;
|
||||
foreach (var update in updates)
|
||||
foreach (var update in updates.UpdateList)
|
||||
{
|
||||
if (update is not UpdateNewMessage { message: Message message })
|
||||
continue; // if it's not about a new message, ignore the update
|
||||
|
|
|
|||
|
|
@ -39,9 +39,8 @@ namespace WTelegramClientTest
|
|||
}
|
||||
}
|
||||
|
||||
private static async Task Client_OnUpdate(IObject arg)
|
||||
private static async Task Client_OnUpdate(UpdatesBase updates)
|
||||
{
|
||||
if (arg is not UpdatesBase updates) return;
|
||||
updates.CollectUsersChats(Users, Chats);
|
||||
foreach (var update in updates.UpdateList)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -33,9 +33,8 @@ namespace WTelegramClientTest
|
|||
}
|
||||
|
||||
// if not using async/await, we could just return Task.CompletedTask
|
||||
private static async Task Client_OnUpdate(IObject arg)
|
||||
private static async Task Client_OnUpdate(UpdatesBase updates)
|
||||
{
|
||||
if (arg is not UpdatesBase updates) return;
|
||||
updates.CollectUsersChats(Users, Chats);
|
||||
foreach (var update in updates.UpdateList)
|
||||
switch (update)
|
||||
|
|
|
|||
|
|
@ -76,9 +76,8 @@ Type a command, or a message to send to the active secret chat:");
|
|||
} while (true);
|
||||
}
|
||||
|
||||
private static async Task Client_OnUpdate(IObject arg)
|
||||
private static async Task Client_OnUpdate(UpdatesBase updates)
|
||||
{
|
||||
if (arg is not UpdatesBase updates) return;
|
||||
updates.CollectUsersChats(Users, Chats);
|
||||
foreach (var update in updates.UpdateList)
|
||||
switch (update)
|
||||
|
|
|
|||
|
|
@ -25,7 +25,9 @@ namespace WTelegram
|
|||
{
|
||||
/// <summary>This event will be called when unsollicited updates/messages are sent by Telegram servers</summary>
|
||||
/// <remarks>Make your handler <see langword="async"/>, or return <see cref="Task.CompletedTask"/> or <see langword="null"/><br/>See <see href="https://github.com/wiz0u/WTelegramClient/blob/master/Examples/Program_ListenUpdates.cs?ts=4#L23">Examples/Program_ListenUpdate.cs</see> for how to use this</remarks>
|
||||
public event Func<IObject, Task> OnUpdate;
|
||||
public event Func<UpdatesBase, Task> OnUpdate;
|
||||
/// <summary>This event is called for other types of notifications (login states, reactor errors, ...)</summary>
|
||||
public event Func<IObject, Task> OnOther;
|
||||
/// <summary>Used to create a TcpClient connected to the given address/port, or throw an exception on failure</summary>
|
||||
public TcpFactory TcpHandler { get; set; } = DefaultTcpHandler;
|
||||
public delegate Task<TcpClient> TcpFactory(string host, int port);
|
||||
|
|
@ -646,7 +648,7 @@ namespace WTelegram
|
|||
}
|
||||
break;
|
||||
case 48: // incorrect server salt (in this case, the bad_server_salt response is received with the correct salt, and the message is to be re-sent with it)
|
||||
_dcSession.Salt = ((BadServerSalt)badMsgNotification).new_server_salt;
|
||||
_dcSession.Salt = ((BadServerSalt)badMsgNotification).new_server_salt; //TODO: GetFutureSalts
|
||||
break;
|
||||
default:
|
||||
retryLast = false;
|
||||
|
|
@ -688,7 +690,7 @@ namespace WTelegram
|
|||
{
|
||||
try
|
||||
{
|
||||
var task = OnUpdate?.Invoke(obj);
|
||||
var task = obj is UpdatesBase updates ? OnUpdate?.Invoke(updates) : OnOther?.Invoke(obj);
|
||||
if (task != null) await task;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
|||
Loading…
Reference in a new issue