using System; using System.Threading.Tasks; using BotFramework; using Kruzya.TelegramBot.Core.Extensions; using Telegram.Bot; using Telegram.Bot.Types; using Telegram.Bot.Types.Enums; using West.TelegramBot.ChatManagement.Extensions; namespace West.TelegramBot.ChatManagement.Handler { public class ManagementHandler : BotEventHandler { protected User GetVictim() { return RawUpdate.Message?.ReplyToMessage?.From; } protected async Task CanPunish() { return GetVictim() != null && await Bot.CanPunishMember(Chat, From, GetVictim()); } protected async Task BanMember(User user, DateTime? banEnd = null, bool sendMessage = true) { await BanMember(user.Id, banEnd, sendMessage); if (sendMessage) { await Bot.SendTextMessageAsync( Chat.Id, $"{From.ToHtml(false)} заблокировал {user.ToHtml(false)} на 7 дней", disableNotification: true, parseMode: ParseMode.Html); } } protected async Task BanMember(long userId, DateTime? banEnd = null, bool sendMessage = true) { await Bot.RestrictChatMemberAsync( Chat.Id, userId, new ChatPermissions { CanSendMessages = false }, banEnd ?? DateTime.Now.AddDays(7) ); } } }