Add a /toggle command to toggle group settings
Signed-off-by: Sayan Biswas <sayan@pokurt.me>
This commit is contained in:
parent
93c799fed3
commit
5bb0a9320f
|
@ -10,11 +10,13 @@ func LoadHandlers(d *ext.Dispatcher) {
|
|||
helpCMD := handlers.NewCommand(HelpCmd, helpHandler)
|
||||
getMeCMD := handlers.NewCommand(FetchCmd, fetchHandler)
|
||||
settingsCMD := handlers.NewCommand(SettingsCmd, settingsHandler)
|
||||
toggleCMD := handlers.NewCommand("toggle", toggleHandler)
|
||||
autoBan := handlers.NewMessage(msgFilter, autoBanHandler)
|
||||
logHandler := handlers.NewMessage(logChatFilter, logChat)
|
||||
d.AddHandler(startCMD)
|
||||
d.AddHandler(helpCMD)
|
||||
d.AddHandler(getMeCMD)
|
||||
d.AddHandler(toggleCMD)
|
||||
d.AddHandler(settingsCMD)
|
||||
d.AddHandler(autoBan)
|
||||
d.AddHandler(logHandler)
|
||||
|
|
|
@ -10,6 +10,13 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
func getUnRecognizedArg() mdparser.WMarkDown {
|
||||
msg := mdparser.GetBold("Unrecognized arguments\n\n").AppendNormal("Supported args are\n")
|
||||
msg.AppendMonoThis("bans").AppendItalicThis(" - toggle SpamProtection Bans\n")
|
||||
msg.AppendMonoThis("detection").AppendItalicThis(" - toggle spam detection")
|
||||
return msg
|
||||
}
|
||||
|
||||
func settingsHandler(b *gotgbot.Bot, ctx *ext.Context) error {
|
||||
chat := ctx.EffectiveChat
|
||||
message := ctx.EffectiveMessage
|
||||
|
@ -44,3 +51,55 @@ func settingsHandler(b *gotgbot.Bot, ctx *ext.Context) error {
|
|||
_, err = message.Reply(b, txt.ToString(), &gotgbot.SendMessageOpts{ParseMode: MarkdownV2})
|
||||
return helpers.SendError(err, ctx, b)
|
||||
}
|
||||
|
||||
func toggleHandler(b *gotgbot.Bot, ctx *ext.Context) error {
|
||||
message := ctx.EffectiveMessage
|
||||
chat := ctx.EffectiveChat
|
||||
args := ctx.Args()
|
||||
if chat.Type == PrivateChat {
|
||||
_, err := message.Reply(b, mdparser.GetItalic("Command only for group").ToString(), &gotgbot.SendMessageOpts{ParseMode: MarkdownV2})
|
||||
return helpers.SendError(err, ctx, b)
|
||||
}
|
||||
data, err := database.GetChat(chat.Id)
|
||||
if err != nil {
|
||||
return helpers.SendError(err, ctx, b)
|
||||
}
|
||||
if data == nil {
|
||||
_, err := message.Reply(b, mdparser.GetItalic("No data found").ToString(), &gotgbot.SendMessageOpts{ParseMode: MarkdownV2})
|
||||
return helpers.SendError(err, ctx, b)
|
||||
}
|
||||
if len(args) < 2 {
|
||||
_, err := message.Reply(b, getUnRecognizedArg().ToString(), &gotgbot.SendMessageOpts{ParseMode: MarkdownV2})
|
||||
return helpers.SendError(err, ctx, b)
|
||||
}
|
||||
|
||||
arg := args[1]
|
||||
switch arg {
|
||||
case "bans":
|
||||
database.InsertChat(chat.Id, !data.DoesAutoBan(), data.DetectSpam(), data.SpamAction)
|
||||
if !data.DoesAutoBan() {
|
||||
_, err := message.Reply(b, mdparser.GetNormal("SpamProtection Bans enabled in ").AppendBold(chat.Title).ToString(),
|
||||
&gotgbot.SendMessageOpts{ParseMode: MarkdownV2})
|
||||
return helpers.SendError(err, ctx, b)
|
||||
} else {
|
||||
_, err := message.Reply(b, mdparser.GetNormal("SpamProtection Bans disabled in ").AppendBold(chat.Title).ToString(),
|
||||
&gotgbot.SendMessageOpts{ParseMode: MarkdownV2})
|
||||
return helpers.SendError(err, ctx, b)
|
||||
}
|
||||
case "detection":
|
||||
database.InsertChat(chat.Id, data.DoesAutoBan(), !data.DetectSpam(), data.SpamAction)
|
||||
if !data.DetectSpam() {
|
||||
_, err := message.Reply(b, mdparser.GetNormal("Spam detection enabled in ").AppendBold(chat.Title).ToString(),
|
||||
&gotgbot.SendMessageOpts{ParseMode: MarkdownV2})
|
||||
return helpers.SendError(err, ctx, b)
|
||||
} else {
|
||||
_, err := message.Reply(b, mdparser.GetNormal("Spam detection disabled in ").AppendBold(chat.Title).ToString(),
|
||||
&gotgbot.SendMessageOpts{ParseMode: MarkdownV2})
|
||||
return helpers.SendError(err, ctx, b)
|
||||
}
|
||||
default:
|
||||
_, err := message.Reply(b, getUnRecognizedArg().ToString(),
|
||||
&gotgbot.SendMessageOpts{ParseMode: MarkdownV2})
|
||||
return helpers.SendError(err, ctx, b)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue