From 0e00da6617d6bed993ba9ae1203417a3684d5ccd Mon Sep 17 00:00:00 2001 From: Guanchao Wang Date: Wed, 2 Apr 2025 12:33:15 +0800 Subject: [PATCH] Merge pull request #1270 from RockChinQ/fix/telegram-markdown fix: markdown and image problems in tg --- pkg/core/bootutils/deps.py | 1 + pkg/platform/sources/slack.yaml | 7 ------- pkg/platform/sources/telegram.py | 20 +++++++++++--------- requirements.txt | 1 + 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/pkg/core/bootutils/deps.py b/pkg/core/bootutils/deps.py index c1db6482..71639d08 100644 --- a/pkg/core/bootutils/deps.py +++ b/pkg/core/bootutils/deps.py @@ -35,6 +35,7 @@ required_deps = { "telegram": "python-telegram-bot", "certifi": "certifi", "mcp": "mcp", + "telegramify_markdown":"telegramify-markdown", } diff --git a/pkg/platform/sources/slack.yaml b/pkg/platform/sources/slack.yaml index ffc924e3..7b16960c 100644 --- a/pkg/platform/sources/slack.yaml +++ b/pkg/platform/sources/slack.yaml @@ -31,13 +31,6 @@ spec: type: int required: true default: 2288 - - name: host - label: - en_US: Host - zh_CN: 监听主机 - type: string - required: true - default: 0.0.0.0 execution: python: path: ./slack.py diff --git a/pkg/platform/sources/telegram.py b/pkg/platform/sources/telegram.py index b8c4a4b7..05e24a44 100644 --- a/pkg/platform/sources/telegram.py +++ b/pkg/platform/sources/telegram.py @@ -4,7 +4,7 @@ import telegram import telegram.ext from telegram import Update from telegram.ext import ApplicationBuilder, ContextTypes, CommandHandler, MessageHandler, filters - +import telegramify_markdown import typing import asyncio import traceback @@ -86,9 +86,10 @@ class TelegramMessageConverter(adapter.MessageConverter): if message.text: message_text = message.text message_components.extend(parse_message_text(message_text)) - + if message.photo: - message_components.extend(parse_message_text(message.caption)) + if message.caption: + message_components.extend(parse_message_text(message.caption)) file = await message.photo[-1].get_file() @@ -201,19 +202,20 @@ class TelegramAdapter(adapter.MessagePlatformAdapter): for component in components: if component['type'] == 'text': - + content = telegramify_markdown.markdownify( + content= component['text'], + ) args = { "chat_id": message_source.source_platform_object.effective_chat.id, - "text": component['text'], + "text": content, } - if self.config['markdown_card'] is True: args["parse_mode"] = "MarkdownV2" + if quote_origin: + args['reply_to_message_id'] = message_source.source_platform_object.message.id - if quote_origin: - args['reply_to_message_id'] = message_source.source_platform_object.message.id + await self.bot.send_message(**args) - await self.bot.send_message(**args) async def is_muted(self, group_id: int) -> bool: return False diff --git a/requirements.txt b/requirements.txt index cd82211c..a185ee24 100644 --- a/requirements.txt +++ b/requirements.txt @@ -35,5 +35,6 @@ python-telegram-bot certifi mcp slack_sdk +telegramify-markdown # indirect taskgroup==0.0.0a4 \ No newline at end of file