From 096655bb7e435e68457177b7e7c7e5f48db40f47 Mon Sep 17 00:00:00 2001 From: Astra Date: Tue, 17 Feb 2026 20:29:27 +0000 Subject: [PATCH] add ban confirm button --- handlers/callbacks.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/handlers/callbacks.go b/handlers/callbacks.go index 2a3e2ee..1065494 100644 --- a/handlers/callbacks.go +++ b/handlers/callbacks.go @@ -39,6 +39,10 @@ func (bot *Bot) HandleCallbackQuery(query *api.CallbackQuery) { case "decline": bot.handleDeclineRequest(query, user, userString, adminUserString) case "ban": + bot.showBanConfirmation(query, user, userString) + bot.API.Request(api.NewCallback(query.ID, "")) + return + case "banc": bot.handleBanRequest(query, user, userString, adminUserString) } @@ -127,6 +131,23 @@ func (bot *Bot) handleBanRequest(query *api.CallbackQuery, user *ExtendedChatJoi bot.API.Request(api.NewCallback(query.ID, "User banned.")) } +// showBanConfirmation displays a confirmation prompt for the ban action. +func (bot *Bot) showBanConfirmation(query *api.CallbackQuery, user *ExtendedChatJoinRequest, userString string) { + approveBtn := api.NewInlineKeyboardButtonData("Approve", fmt.Sprintf("approve_%d", user.From.ID)) + declineBtn := api.NewInlineKeyboardButtonData("Decline", fmt.Sprintf("decline_%d", user.From.ID)) + confirmBtn := api.NewInlineKeyboardButtonData("Ban (confirm)", fmt.Sprintf("banc_%d", user.From.ID)) + keyboard := api.NewInlineKeyboardMarkup( + []api.InlineKeyboardButton{approveBtn, declineBtn}, + []api.InlineKeyboardButton{confirmBtn}, + ) + + msg := fmt.Sprintf("Are you sure you want to ban %s for 24 hours?", userString) + edit := api.NewEditMessageText(query.Message.Chat.ID, query.Message.MessageID, msg) + edit.ReplyMarkup = &keyboard + edit.ParseMode = api.ModeHTML + bot.API.Send(edit) +} + // HandleDeclineReason allows admins to provide a decline reason by replying to decline messages. func (bot *Bot) HandleDeclineReason(update *api.Update) { repliedMsg := update.Message.ReplyToMessage