From cfe5f019f2b63434471a77eb48a90453c77d11ef Mon Sep 17 00:00:00 2001 From: shokollm <270575765+shokollm@users.noreply.github.com> Date: Sat, 4 Apr 2026 23:45:19 +0000 Subject: [PATCH] fix: single delete button per message, use query.message.delete() - /bounty now shows only ONE delete button (not per-bounty) - Callback uses query.message.delete() instead of delete_message by ID - This is more reliable and simpler --- apps/telegram-bot/commands.py | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/apps/telegram-bot/commands.py b/apps/telegram-bot/commands.py index 7152e44..2142bfe 100644 --- a/apps/telegram-bot/commands.py +++ b/apps/telegram-bot/commands.py @@ -155,12 +155,11 @@ async def cmd_delete_message(update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> return parts = data.split(":") - if len(parts) != 3: + if len(parts) != 2: return try: - message_id = int(parts[1]) - expected_user_id = int(parts[2]) + expected_user_id = int(parts[1]) except ValueError: return @@ -170,12 +169,10 @@ async def cmd_delete_message(update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> return try: - await ctx.bot.delete_message( - chat_id=query.message.chat_id, message_id=message_id - ) + await query.message.delete() await query.answer("Deleted") - except Exception: - await query.answer("Could not delete message", show_alert=True) + except Exception as e: + await query.answer(f"Could not delete: {e}", show_alert=True) def is_group(update: Update) -> bool: @@ -253,19 +250,11 @@ async def cmd_bounty(update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None: lines.append(f"Showing {total_count} bounties:") slice_length = 0 - keyboard = [] for b in displayed_bounties: lines.append(format_bounty(b, show_id=True, slice_length=slice_length)) - keyboard.append( - [ - InlineKeyboardButton( - "🗑️ Delete", - callback_data=f"del_msg:{update.message.message_id + len(lines)}:{user_id}", - ) - ] - ) - reply_markup = InlineKeyboardMarkup(keyboard) if keyboard else None + keyboard = [[InlineKeyboardButton("🗑️ Delete", callback_data=f"del_msg:{user_id}")]] + reply_markup = InlineKeyboardMarkup(keyboard) await update.message.reply_text( "\n".join(lines), disable_web_page_preview=True, reply_markup=reply_markup )