Files
telegram-bot/modules/ChatManagement/Handler/BanStickerSet.Utils.cs
T

64 lines
2.0 KiB
C#
Raw Normal View History

#nullable enable
using System.Collections.Generic;
2022-05-05 19:29:25 +03:00
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<bool> CanBotDeleteMessages()
{
return await Bot.GetChatMemberAsync(
Chat.Id,
(await Bot.GetMeAsync()).Id
) is ChatMemberAdministrator {CanDeleteMessages: true};
}
private async Task<bool> IsStickerBanned(Sticker sticker)
{
var bannedList = (await GetBannedStickerSetOption()).GetValue<List<string>>();
return bannedList != null && sticker.SetName != null && bannedList.Contains(sticker.SetName);
}
private async Task<BotUserValue> GetBannedStickerSetOption()
{
return await Db.UserValues.FindOrCreateOption(Chat.Id, "cmBannedStickers");
}
public async Task<bool> PreCommand(ParamParser.StickerSet.Param? stickerSetParam = null)
2022-05-05 19:29:25 +03:00
{
if (stickerSetParam != null && !stickerSetParam.IsValid)
2022-05-05 19:29:25 +03:00
{
await Reply("Неверный набор стикеров.");
return false;
}
return await CanUseCommands();
}
public string FormatStickerSetAction(StickerSet stickerSet, string action)
=> FormatStickerSetAction(stickerSet.Name, stickerSet.Title, action);
public string FormatStickerSetAction(string name, string action)
=> FormatStickerSetAction(name, name, action);
public string FormatStickerSetAction(string name, string title, string action)
=> new HtmlString()
2022-05-05 19:29:25 +03:00
.Text("Набор стикеров ")
.Url($"https://t.me/addstickers/{name}", title)
2022-05-05 19:29:25 +03:00
.Text($" {action}.")
.ToString();
private async Task<bool> CanUseCommands()
{
return await Bot.GetChatMemberAsync(Chat.Id, From.Id) is ChatMemberAdministrator {CanDeleteMessages: true}
or ChatMemberOwner;
}
}