From f48595c0f486c5dede69ecd8a3d2b767b3ea9264 Mon Sep 17 00:00:00 2001 From: Alphyron Date: Sun, 26 Apr 2020 14:41:50 +0200 Subject: [PATCH] :sparkles: Implement forbid writing toggle command --- ...gleonlinecheck.go => toggleonlinecheck.go} | 0 cli/commands/togglewritingforbid.go | 62 +++++++++++++++++++ main.go | 1 + 3 files changed, 63 insertions(+) rename cli/commands/{toogleonlinecheck.go => toggleonlinecheck.go} (100%) create mode 100644 cli/commands/togglewritingforbid.go diff --git a/cli/commands/toogleonlinecheck.go b/cli/commands/toggleonlinecheck.go similarity index 100% rename from cli/commands/toogleonlinecheck.go rename to cli/commands/toggleonlinecheck.go diff --git a/cli/commands/togglewritingforbid.go b/cli/commands/togglewritingforbid.go new file mode 100644 index 0000000..8aaa7b5 --- /dev/null +++ b/cli/commands/togglewritingforbid.go @@ -0,0 +1,62 @@ +package commands + +import ( + "git.dragon-labs.de/alphyron/group_helper/cli" + "git.dragon-labs.de/alphyron/group_helper/logic" + tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api" + "strconv" +) + +type toggleWritingForbidCommand struct { + groupHelperService logic.GroupHelperService +} + +func NewToggleWritingForbidCommand(groupHelperService logic.GroupHelperService) cli.Command { + return &toggleWritingForbidCommand{ + groupHelperService: groupHelperService, + } +} + +func (i toggleWritingForbidCommand) GetUsage() string { + return "/toggleWritingForbidCommand" +} + +func (i toggleWritingForbidCommand) GetCommand() string { + return "/toggleWritingForbidCommand" +} + +func (i toggleWritingForbidCommand) GetDescription() string { + return "Toggle the setting for forbid writing while not verified" +} + +func (i toggleWritingForbidCommand) ExecuteCommand(bot *tgbotapi.BotAPI, update *tgbotapi.Update) (bool, error) { + group, err := i.groupHelperService.GetGroupByID(update.Message.Chat.ID) + + if err != nil { + return false, err + } + + group.ForbidWriting = !group.ForbidWriting + group, err = i.groupHelperService.UpdateGroup(group) + + if err != nil { + return false, err + } + + msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Update the group setting for OnlineCheck to: "+strconv.FormatBool(group.OnlineCheck)) + _, err = bot.Send(msg) + + return err == nil, err +} + +func (i toggleWritingForbidCommand) AllowChatType(chat *tgbotapi.Chat) bool { + return chat.IsGroup() || chat.IsSuperGroup() +} + +func (i toggleWritingForbidCommand) AllowMember(member *tgbotapi.ChatMember) bool { + return member.IsAdministrator() || member.IsCreator() +} + +func (i toggleWritingForbidCommand) AllowEveryMember() bool { + return false +} diff --git a/main.go b/main.go index 4313ede..6083160 100644 --- a/main.go +++ b/main.go @@ -82,6 +82,7 @@ func InitialCommandManager(bot *tgbotapi.BotAPI, service logic.GroupHelperServic cm.RegisterCommand(commands.NewKickMessage(service)) cm.RegisterCommand(commands.NewVerifiedMessage(service)) cm.RegisterCommand(commands.NewToggleOnlineCheckCommand(service)) + cm.RegisterCommand(commands.NewToggleWritingForbidCommand(service)) return cm }