diff --git a/astrbot/core/platform/sources/telegram/tg_event.py b/astrbot/core/platform/sources/telegram/tg_event.py index 7551831d8..bcc9189c2 100644 --- a/astrbot/core/platform/sources/telegram/tg_event.py +++ b/astrbot/core/platform/sources/telegram/tg_event.py @@ -148,7 +148,7 @@ class TelegramPlatformEvent(AstrMessageEvent): msg = await self.client.send_message(text=delta, **payload) current_content = delta except Exception as e: - logger.warning(f"发送消息失败(streaming): {e}") + logger.warning(f"发送消息失败(streaming): {e!s}") message_id = msg.message_id last_edit_time = ( asyncio.get_event_loop().time() @@ -168,17 +168,31 @@ class TelegramPlatformEvent(AstrMessageEvent): ) current_content = delta except Exception as e: - logger.warning(f"编辑消息失败(streaming): {e}") + logger.warning(f"编辑消息失败(streaming): {e!s}") last_edit_time = ( asyncio.get_event_loop().time() ) # 更新上次编辑的时间 try: if delta and current_content != delta: - await self.client.edit_message_text( - text=delta, chat_id=payload["chat_id"], message_id=message_id - ) + try: + markdown_text = telegramify_markdown.markdownify( + delta, max_line_length=None, normalize_whitespace=False + ) + await self.client.edit_message_text( + text=markdown_text, + chat_id=payload["chat_id"], + message_id=message_id, + parse_mode="MarkdownV2" + ) + except Exception as e: + logger.warning(f"Markdown转换失败,使用普通文本: {e!s}") + await self.client.edit_message_text( + text=delta, + chat_id=payload["chat_id"], + message_id=message_id + ) except Exception as e: - logger.warning(f"编辑消息失败(streaming): {e}") + logger.warning(f"编辑消息失败(streaming): {e!s}") return await super().send_streaming(generator)