[whois] Add chatmember status to output. Update .gitignore.

This commit is contained in:
West14
2022-01-20 14:28:26 +02:00
parent b1876edf13
commit a8c02184e9
3 changed files with 40 additions and 3 deletions
@@ -12,6 +12,7 @@ using Kruzya.TelegramBot.Core.Service;
using Microsoft.Extensions.Logging;
using Telegram.Bot;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
namespace West.TelegramBot.ChatManagement.Handler
{
@@ -58,6 +59,7 @@ namespace West.TelegramBot.ChatManagement.Handler
}
else
{
message += $"<code>{await GetChatMemberStatusString(user)}</code>\n";
message += $"<code>Репутация: {await GetUserReputation(user)}\n";
message += $"Предупреждения: {(await GetWarnOption(user)).GetValue<int>()}</code>";
}
@@ -156,5 +158,24 @@ namespace West.TelegramBot.ChatManagement.Handler
{
return await Db.UserValues.FindOrCreateOption(Chat.Id, user.Id, "reputation");
}
private async Task<string> GetChatMemberStatusString(User user)
{
var chatMember = await Bot.GetChatMemberAsync(Chat.Id, user.Id);
var customStatus = _userService.GetUserCustomStatus(user.Id);
if (customStatus != null)
{
return customStatus;
}
return chatMember.Status switch
{
ChatMemberStatus.Creator => "Владелец",
ChatMemberStatus.Restricted => "Заблокированный",
ChatMemberStatus.Administrator => "Администратор",
_ => "Пользователь"
};
}
}
}