From 52b203276436905061057a5ec71c4039f0921be7 Mon Sep 17 00:00:00 2001 From: Astra Date: Thu, 2 Apr 2026 14:31:16 +0100 Subject: [PATCH] Remove patch --- patches/0004-callbacks.go.patch | 152 -------------------------------- telegram-join-approval-nuzzles | 1 - 2 files changed, 153 deletions(-) delete mode 100644 patches/0004-callbacks.go.patch delete mode 160000 telegram-join-approval-nuzzles diff --git a/patches/0004-callbacks.go.patch b/patches/0004-callbacks.go.patch deleted file mode 100644 index d71db9e..0000000 --- a/patches/0004-callbacks.go.patch +++ /dev/null @@ -1,152 +0,0 @@ ---- a/handlers/callbacks.go -+++ b//handlers/callbacks.go -@@ -6,7 +6,7 @@ - "strings" - "time" - -- utils "git.zio.sh/astra/telegram-join-approval-bot/pkg/utils" -+ utils "git.zio.sh/astra/telegram-join-approval-nuzzles/pkg/utils" - api "github.com/OvyFlash/telegram-bot-api" - ) - -@@ -39,7 +39,6 @@ - bot.DeletePendingUser(args) - case "decline": - bot.handleDeclineRequest(query, user, userString, adminUserString) -- bot.DeletePendingUser(args) - case "ban": - bot.showBanConfirmation(query, user) - bot.API.Request(api.NewCallback(query.ID, "")) -@@ -47,6 +46,19 @@ - case "banc": - bot.handleBanRequest(query, user, userString, adminUserString) - bot.DeletePendingUser(args) -+ case "remind": -+ bot.sendReminder(query, user, userString, adminUserString) -+ bot.API.Request(api.NewCallback(query.ID, "Reminder sent!")) -+ case "cannedrespsel": -+ parts := strings.Split(query.Data, "_") -+ if len(parts) >= 3 { -+ var respIdx int -+ fmt.Sscanf(parts[2], "%d", &respIdx) -+ bot.sendCannedResponse(query, user, respIdx) -+ } -+ bot.DeletePendingUser(args) -+ bot.API.Request(api.NewCallback(query.ID, "")) -+ return - } - - if bot.Config.DeleteRequestAfterDecision { -@@ -54,6 +66,22 @@ - } - } - -+func (bot *Bot) sendReminder(query *api.CallbackQuery, user *ExtendedChatJoinRequest, userString, adminUserString string) { -+ utils.SendMessage(bot.API, user.From.ID, 0, bot.Config.ReminderMessage) -+ -+ // Edit admin message to show reminder was sent -+ messageText := fmt.Sprintf(AdminJoinRequestMsg, userString, user.From.ID, user.JoinReason) -+ messageText += fmt.Sprintf("\n\nReminder sent by: %s\nReminder sent at: %s", -+ adminUserString, time.Now().Format("2006-01-02 15:04:05")) -+ -+ keyboard := utils.NewApprovalKeyboard(user.From.ID) -+ -+ edit := api.NewEditMessageText(query.Message.Chat.ID, query.Message.MessageID, messageText) -+ edit.ParseMode = api.ModeHTML -+ edit.ReplyMarkup = &keyboard -+ bot.API.Send(edit) -+} -+ - // handleApproveRequest approves a join request and sends an approval callback. - func (bot *Bot) handleApproveRequest(query *api.CallbackQuery, user *ExtendedChatJoinRequest, userString, adminUserString string) { - r := api.ApproveChatJoinRequestConfig{ -@@ -94,14 +122,39 @@ - return - } - -- utils.EditMessage(bot.API, query.Message.Chat.ID, query.Message.MessageID, -- fmt.Sprintf(AdminDeclinedMsg, -- userString, user.From.ID, user.JoinReason, adminUserString, -- time.Now().Format("2006-01-02 15:04:05"), -- defaultReason, -- ), -+ messageText := fmt.Sprintf(AdminDeclinedMsg, -+ userString, user.From.ID, user.JoinReason, adminUserString, -+ time.Now().Format("2006-01-02 15:04:05"), -+ defaultReason, - ) - -+ edit := api.NewEditMessageText(query.Message.Chat.ID, query.Message.MessageID, messageText) -+ edit.ParseMode = api.ModeHTML -+ edit.Entities = query.Message.Entities -+ -+ if len(bot.Config.CannedDeclineResponses) > 0 { -+ var rows [][]api.InlineKeyboardButton -+ for i, response := range bot.Config.CannedDeclineResponses { -+ // Clean up the response text for button display -+ snippet := strings.TrimSpace(response) -+ snippet = strings.ReplaceAll(snippet, "\n", " ") -+ // Remove multiple consecutive spaces -+ for strings.Contains(snippet, " ") { -+ snippet = strings.ReplaceAll(snippet, " ", " ") -+ } -+ // Truncate to 30 chars for button text -+ if len(snippet) > 30 { -+ snippet = snippet[:30] + "..." -+ } -+ btn := api.NewInlineKeyboardButtonData(snippet, fmt.Sprintf("cannedrespsel_%d_%d", user.From.ID, i)) -+ rows = append(rows, []api.InlineKeyboardButton{btn}) -+ } -+ keyboard := api.NewInlineKeyboardMarkup(rows...) -+ edit.ReplyMarkup = &keyboard -+ } -+ -+ bot.API.Send(edit) -+ - bot.API.Request(api.NewCallback(query.ID, "Join request declined.")) - } - -@@ -176,12 +229,14 @@ - userID, username, joinReason, declinedBy, declinedAt := utils.GetInfoFromMsg(repliedMsg.Text) - - reason := utils.EscapeHTML(update.Message.Text) -- if strings.HasPrefix(update.Message.Text, "+") { -- reason = utils.EscapeHTML(update.Message.Text[1:]) -+ if !strings.HasPrefix(update.Message.Text, "/") { -+ reason = utils.EscapeHTML(update.Message.Text) - utils.SendMessage(bot.API, userID, 0, - fmt.Sprintf("Your join request was declined for the following reason:\n\n%s", reason)) - } - -+ reason = strings.TrimPrefix(reason, "/") -+ - utils.EditMessage(bot.API, update.Message.Chat.ID, repliedMsg.MessageID, - fmt.Sprintf(AdminDeclinedMsg, username, userID, joinReason, declinedBy, declinedAt, reason)) - -@@ -189,6 +244,26 @@ - bot.API.Send(api.NewDeleteMessage(update.Message.Chat.ID, update.Message.MessageID)) - } - -+// sendCannedResponse sends a canned decline response to the declined user. -+func (bot *Bot) sendCannedResponse(query *api.CallbackQuery, user *ExtendedChatJoinRequest, respIdx int) { -+ if respIdx < 0 || respIdx >= len(bot.Config.CannedDeclineResponses) { -+ return -+ } -+ -+ reason := utils.EscapeHTML(bot.Config.CannedDeclineResponses[respIdx]) -+ utils.SendMessage(bot.API, user.From.ID, 0, -+ fmt.Sprintf("Your join request was declined for the following reason:\n\n%s", reason)) -+ -+ // Extract user info from original message and reformat with the canned response -+ userID, username, joinReason, declinedBy, declinedAt := utils.GetInfoFromMsg(query.Message.Text) -+ -+ edit := api.NewEditMessageText(query.Message.Chat.ID, query.Message.MessageID, -+ fmt.Sprintf(AdminDeclinedMsg, username, userID, joinReason, declinedBy, declinedAt, reason)) -+ edit.ParseMode = api.ModeHTML -+ edit.Entities = query.Message.Entities -+ bot.API.Send(edit) -+} -+ - // parseCallbackData parses the action and user ID from a callback query's data string. - func parseCallbackData(data string) (action string, userID int64, err error) { - normalized := strings.Join(strings.Split(data, "_"), " ") diff --git a/telegram-join-approval-nuzzles b/telegram-join-approval-nuzzles deleted file mode 160000 index 334fe2b..0000000 --- a/telegram-join-approval-nuzzles +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 334fe2bf8f84228ef0e0bfabb0fd4173a29ebb62