feat(telegram): 支持 disable_web_page_preview 禁用链接预览

Notification schema 新增 disable_web_page_preview 字段,透传至 Telegram send_message,
插件可通过 post_message(disable_web_page_preview=True) 关闭链接预览,
不传时行为与旧版一致,完全向后兼容。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
DDSRem
2026-04-01 23:02:34 +08:00
committed by jxxghp
parent 321bf94de8
commit 5440dbae51
3 changed files with 11 additions and 0 deletions

View File

@@ -384,6 +384,7 @@ class TelegramModule(_ModuleBase, _MessageBase[Telegram]):
buttons=message.buttons,
original_message_id=message.original_message_id,
original_chat_id=message.original_chat_id,
disable_web_page_preview=message.disable_web_page_preview,
)
def post_medias_message(
@@ -522,6 +523,7 @@ class TelegramModule(_ModuleBase, _MessageBase[Telegram]):
image=message.image,
userid=userid,
link=message.link,
disable_web_page_preview=message.disable_web_page_preview,
)
if result and result.get("success"):
return MessageResponse(

View File

@@ -333,6 +333,7 @@ class Telegram:
buttons: Optional[List[List[dict]]] = None,
original_message_id: Optional[int] = None,
original_chat_id: Optional[str] = None,
disable_web_page_preview: Optional[bool] = None,
) -> Optional[dict]:
"""
发送Telegram消息
@@ -344,6 +345,7 @@ class Telegram:
:param buttons: 按钮列表,格式:[[{"text": "按钮文本", "callback_data": "回调数据"}]]
:param original_message_id: 原消息ID如果提供则编辑原消息
:param original_chat_id: 原消息的聊天ID编辑消息时需要
:param disable_web_page_preview: 是否禁用链接预览
:return: 包含 message_id, chat_id, success 的字典
"""
if not self._telegram_token or not self._telegram_chat_id:
@@ -397,6 +399,7 @@ class Telegram:
image=image,
caption=caption,
reply_markup=reply_markup,
disable_web_page_preview=disable_web_page_preview,
)
self._stop_typing_task(chat_id)
if sent and hasattr(sent, "message_id"):
@@ -766,10 +769,12 @@ class Telegram:
image="",
caption="",
reply_markup: Optional[InlineKeyboardMarkup] = None,
disable_web_page_preview: Optional[bool] = None,
):
"""
向Telegram发送报文返回发送的消息对象
:param reply_markup: 内联键盘
:param disable_web_page_preview: 是否禁用链接预览
:return: 发送成功返回消息对象失败返回None
"""
kwargs = {
@@ -777,6 +782,8 @@ class Telegram:
"parse_mode": "MarkdownV2",
"reply_markup": reply_markup,
}
if disable_web_page_preview is not None:
kwargs["disable_web_page_preview"] = disable_web_page_preview
# 处理图片
image = self.__process_image(image)