From a4f2c574b07666283e141ab7db0e70a1920886e5 Mon Sep 17 00:00:00 2001 From: DDSRem <1448139087@qq.com> Date: Sat, 11 Apr 2026 00:54:32 +0800 Subject: [PATCH] fix(telegram): pass disable_web_page_preview through edit_message_text Interactive plugin flows edit existing messages; the flag was only applied on send_message, so link previews stayed enabled after edits. Co-authored-by: Cursor Agent --- app/modules/telegram/telegram.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/app/modules/telegram/telegram.py b/app/modules/telegram/telegram.py index de3e6e7d..7161996a 100644 --- a/app/modules/telegram/telegram.py +++ b/app/modules/telegram/telegram.py @@ -2,7 +2,7 @@ import asyncio import re import threading import time -from typing import Optional, List, Dict, Callable, Union +from typing import Any, Optional, List, Dict, Callable, Union from urllib.parse import urljoin, quote from telebot import TeleBot, apihelper @@ -384,7 +384,12 @@ class Telegram: if original_message_id and original_chat_id: # 编辑消息 result = self.__edit_message( - original_chat_id, original_message_id, caption, buttons, image + original_chat_id, + original_message_id, + caption, + buttons, + image, + disable_web_page_preview=disable_web_page_preview, ) self._stop_typing_task(chat_id) return { @@ -719,6 +724,7 @@ class Telegram: text: str, buttons: Optional[List[List[dict]]] = None, image: Optional[str] = None, + disable_web_page_preview: Optional[bool] = None, ) -> Optional[bool]: """ 编辑已发送的消息 @@ -727,6 +733,7 @@ class Telegram: :param text: 新的消息内容 :param buttons: 按钮列表 :param image: 图片URL或路径 + :param disable_web_page_preview: 是否禁用链接预览(仅纯文本编辑时生效) :return: 编辑是否成功 """ if not self._bot: @@ -751,13 +758,18 @@ class Telegram: ) else: # 如果没有图片,使用edit_message_text - self._bot.edit_message_text( - chat_id=chat_id, - message_id=message_id, - text=standardize(text), - parse_mode="MarkdownV2", - reply_markup=reply_markup, - ) + edit_text_kwargs: Dict[str, Any] = { + "chat_id": chat_id, + "message_id": message_id, + "text": standardize(text), + "parse_mode": "MarkdownV2", + "reply_markup": reply_markup, + } + if disable_web_page_preview is not None: + edit_text_kwargs["disable_web_page_preview"] = ( + disable_web_page_preview + ) + self._bot.edit_message_text(**edit_text_kwargs) return True except Exception as e: logger.error(f"编辑消息失败:{str(e)}")