[whois] Move whois to separate handler in ChatManagement.

This commit is contained in:
West14
2022-02-14 10:20:07 +02:00
parent 2d4b36f8c3
commit d3ec6cfb4b
2 changed files with 67 additions and 39 deletions
-39
View File
@@ -8,9 +8,7 @@ using Kruzya.TelegramBot.Core.Data;
using Kruzya.TelegramBot.Core.Extensions;
using Kruzya.TelegramBot.Core.Service;
using Microsoft.Extensions.Logging;
using Telegram.Bot;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
namespace West.TelegramBot.Reputation.Handler;
@@ -53,25 +51,6 @@ public class Reputation : CommonHandler
_logger = logger;
}
[Command("whois", CommandParseMode.Both)]
public async Task HandleWhois()
{
var user = RepliedUser ?? From;
var message = $"{user.ToHtml()}\n";
if (user.IsBot)
{
message += "<code>Бот</code>";
}
else
{
message += $"<code>{await GetChatMemberStatusString(user)}</code>\n";
message += $"<code>Репутация: {await GetUserReputation(user)}\n";
message += $"Предупреждения: {(await GetWarnOption(user)).GetValue<int>()}</code>";
}
await Reply(message);
}
[Message(InChat.Public, MessageFlag.HasText | MessageFlag.HasSticker)]
public async Task HandleReputation()
{
@@ -154,22 +133,4 @@ public class Reputation : CommonHandler
{
return await _reputationService.GetUserReputationAsync(Chat, user);
}
private async Task<string> GetChatMemberStatusString(User user)
{
var customStatus = _userService.GetUserCustomStatus(user.Id);
if (customStatus != null)
{
return customStatus;
}
var chatMember = await Bot.GetChatMemberAsync(Chat.Id, user.Id);
return chatMember.Status switch
{
ChatMemberStatus.Creator => "Владелец",
ChatMemberStatus.Restricted => "Заблокированный",
ChatMemberStatus.Administrator => "Администратор",
_ => "Пользователь"
};
}
}