diff --git a/modules/ChatManagement/Handler/Fun/Python.cs b/modules/ChatManagement/Handler/Fun/Python.cs new file mode 100644 index 0000000..78f5112 --- /dev/null +++ b/modules/ChatManagement/Handler/Fun/Python.cs @@ -0,0 +1,42 @@ +#nullable enable + +using System.Threading.Tasks; +using BotFramework.Attributes; +using BotFramework.Enums; +using Castle.Core.Internal; +using Kruzya.TelegramBot.Core.Data; +using Kruzya.TelegramBot.Core.Extensions; +using Telegram.Bot; + +namespace West.TelegramBot.ChatManagement.Handler.Fun +{ + public class Python : ManagementHandler + { + [Command(InChat.Public, "setpython", CommandParseMode.Both)] + public async Task HandleSetpython() + { + var animation = Message?.ReplyToMessage?.Animation; + if (await CanPunish() || animation == null) return; + + var pythonFile = await GetPythonFileOption(); + pythonFile.SetValue(animation.FileId); + Db.MarkAsModified(pythonFile); + } + + [Message(InChat.Public, "(?i)питон|пайтон|python|путхон", MessageFlag.HasText, true)] + public async Task HandlePython() + { + var pythonFileId = (await GetPythonFileOption()).GetValue(string.Empty); + if (pythonFileId.IsNullOrEmpty()) return; + + await Bot.SendAnimationAsync(Chat.Id, pythonFileId, replyToMessageId: Message?.MessageId); + } + + private async Task GetPythonFileOption() + { + return await Db.UserValues.FindOrCreateOption(Chat.Id, "pythonFile"); + } + + public Python(CoreContext db) : base(db) { } + } +} \ No newline at end of file