UserAuthIfNeeded => LogonUserIfNeeded (+ more robust)

This commit is contained in:
Wizou 2021-08-25 15:32:25 +02:00
parent d4cb4f59d5
commit faf24bfb2a
2 changed files with 19 additions and 5 deletions

View file

@ -17,7 +17,7 @@ static Task Main(string[] _)
{ {
using var client = new WTelegram.Client(); using var client = new WTelegram.Client();
await client.ConnectAsync(); await client.ConnectAsync();
var user = await client.UserAuthIfNeeded(); var user = await client.LogonUserIfNeeded();
Console.WriteLine($"We are logged-in as {user.username ?? user.first_name + " " + user.last_name} (id {user.id})"); Console.WriteLine($"We are logged-in as {user.username ?? user.first_name + " " + user.last_name} (id {user.id})");
} }
``` ```

View file

@ -631,10 +631,17 @@ namespace WTelegram
/// Config callback is queried for: bot_token /// Config callback is queried for: bot_token
/// </summary> /// </summary>
/// <returns>Detail about the logged bot</returns> /// <returns>Detail about the logged bot</returns>
public async Task<User> BotAuthIfNeeded() public async Task<User> LogonBotIfNeeded()
{ {
if (_session.User != null) if (_session.User != null)
return Schema.Deserialize<User>(_session.User); try
{
return Schema.Deserialize<User>(_session.User);
}
catch (Exception ex)
{
Helpers.Log(4, $"Error deserializing User! ({ex.Message}) Proceeding to logon...");
}
var authorization = await Auth_ImportBotAuthorization(0, _apiId, _apiHash, Config("bot_token")); var authorization = await Auth_ImportBotAuthorization(0, _apiId, _apiHash, Config("bot_token"));
if (authorization is not Auth_Authorization { user: User user }) if (authorization is not Auth_Authorization { user: User user })
throw new ApplicationException("Failed to get Authorization: " + authorization.GetType().Name); throw new ApplicationException("Failed to get Authorization: " + authorization.GetType().Name);
@ -650,10 +657,17 @@ namespace WTelegram
/// </summary> /// </summary>
/// <param name="settings"></param> /// <param name="settings"></param>
/// <returns>Detail about the logged user</returns> /// <returns>Detail about the logged user</returns>
public async Task<User> UserAuthIfNeeded(CodeSettings settings = null) public async Task<User> LogonUserIfNeeded(CodeSettings settings = null)
{ {
if (_session.User != null) if (_session.User != null)
return Schema.Deserialize<User>(_session.User); try
{
return Schema.Deserialize<User>(_session.User);
}
catch (Exception ex)
{
Helpers.Log(4, $"Error deserializing User! ({ex.Message}) Proceeding to logon...");
}
string phone_number = Config("phone_number"); string phone_number = Config("phone_number");
var sentCode = await Auth_SendCode(phone_number, _apiId, _apiHash, settings ?? new()); var sentCode = await Auth_SendCode(phone_number, _apiId, _apiHash, settings ?? new());
Helpers.Log(3, $"A verification code has been sent via {sentCode.type.GetType().Name[17..]}"); Helpers.Log(3, $"A verification code has been sent via {sentCode.type.GetType().Name[17..]}");