From ffbb9dfee83e9d51e9b6450053767e358c53d665 Mon Sep 17 00:00:00 2001 From: West14 <30056636+West14@users.noreply.github.com> Date: Tue, 18 Jan 2022 21:36:47 +0200 Subject: [PATCH] [rules] Implement /rules and /setrules. DIsable build of arm images. --- .github/workflows/build-image.yml | 2 +- modules/ChatManagement/Handler/Rules.cs | 44 ++++++++++++------------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index c66de99..f7ca409 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -33,7 +33,7 @@ jobs: name: Build and push uses: docker/build-push-action@v2 with: - platforms: linux/amd64,linux/arm64 + platforms: linux/amd64 push: ${{ github.ref == 'refs/heads/dev' }} tags: ${{ secrets.REGISTRY_URL }}/west/telegram-bot:latest, ${{ secrets.REGISTRY_URL }}/west/telegram-bot:${{ steps.commit_sha.outputs.sha_short }} \ No newline at end of file diff --git a/modules/ChatManagement/Handler/Rules.cs b/modules/ChatManagement/Handler/Rules.cs index 6a80ce6..e6bc472 100644 --- a/modules/ChatManagement/Handler/Rules.cs +++ b/modules/ChatManagement/Handler/Rules.cs @@ -4,45 +4,43 @@ using BotFramework.Enums; using Kruzya.TelegramBot.Core.Data; using Kruzya.TelegramBot.Core.Extensions; using Telegram.Bot; +using Telegram.Bot.Exceptions; namespace West.TelegramBot.ChatManagement.Handler { - internal partial class Rules : ManagementHandler + internal class Rules : ManagementHandler { [Command(InChat.Public, "setrules", CommandParseMode.Both)] public async Task HandleSetRules() { var replyToMessage = Message?.ReplyToMessage; - var text = replyToMessage?.Text; - if (replyToMessage == null || text == null) - { - return; - } - //var entities = replyToMessage.Entities; - //if (entities != null) - //{ - // //foreach (var entity in entities) - // //{ - // // var entityText = text.Substring(entity.Offset, entity.Length); - // // text = text - // // .Remove(entity.Offset, entity.Length) - // // .Insert(entity.Offset) - // //} - //} + if (replyToMessage == null || !await CanPunish()) return; - - await Bot.SendTextMessageAsync(Chat, "tut bilo milo kruzi no on protiv"); + var opt = await Db.UserValues.FindOrCreateOption(Chat.Id, "rulesMsgId"); + opt.SetValue(replyToMessage.MessageId); + Db.MarkAsModified(opt); } [Command(InChat.Public, "rules", CommandParseMode.Both)] public async Task HandleRules() { - var opt = Db.UserValues.FindOrCreateOption(Chat.Id, "rules"); + var opt = await Db.UserValues.FindOption(Chat.Id, "rulesMsgId"); + if (opt == null) + { + return; + } + + try + { + await Bot.CopyMessageAsync(Chat.Id, Chat.Id, opt.GetValue()); + } + catch (ApiRequestException) + { + Db.MarkAsDeleted(opt); + } } - public Rules(CoreContext db) : base(db) - { - } + public Rules(CoreContext db) : base(db) {} } } \ No newline at end of file