using System.Collections.Generic; using System.Threading.Tasks; using BotFramework.Utils; using Kruzya.TelegramBot.Core.Data; using Kruzya.TelegramBot.Core.Extensions; using Telegram.Bot; using Telegram.Bot.Types; namespace West.TelegramBot.ChatManagement.Handler; public partial class BanStickerSet { private async Task CanBotDeleteMessages() { return await Bot.GetChatMemberAsync( Chat.Id, (await Bot.GetMeAsync()).Id ) is ChatMemberAdministrator {CanDeleteMessages: true}; } private async Task IsStickerBanned(Sticker sticker) { var bannedList = (await GetBannedStickerSetOption()).GetValue>(); return bannedList != null && sticker.SetName != null && bannedList.Contains(sticker.SetName); } private async Task GetBannedStickerSetOption() { return await Db.UserValues.FindOrCreateOption(Chat.Id, "cmBannedStickers"); } public async Task PreCommand(ParamParser.StickerSet.Param stickerSetParam) { if (!stickerSetParam.IsValid) { await Reply("Неверный набор стикеров."); return false; } return await CanUseCommands(); } public string FormatStickerSetAction(StickerSet stickerSet, string action) { return new HtmlString() .Text("Набор стикеров ") .Url($"https://t.me/addstickers/{stickerSet.Name}", stickerSet.Title) .Text($" {action}.") .ToString(); } private async Task CanUseCommands() { return await Bot.GetChatMemberAsync(Chat.Id, From.Id) is ChatMemberAdministrator {CanDeleteMessages: true} or ChatMemberOwner; } }