mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-07-24 21:36:06 +00:00
Merge pull request #1265 from RockChinQ/feat/markdowncard
add support for markdown card in dingtalk & tg
This commit is contained in:
@@ -10,7 +10,7 @@ import traceback
|
|||||||
|
|
||||||
|
|
||||||
class DingTalkClient:
|
class DingTalkClient:
|
||||||
def __init__(self, client_id: str, client_secret: str,robot_name:str,robot_code:str):
|
def __init__(self, client_id: str, client_secret: str,robot_name:str,robot_code:str,markdown_card:bool):
|
||||||
"""初始化 WebSocket 连接并自动启动"""
|
"""初始化 WebSocket 连接并自动启动"""
|
||||||
self.credential = dingtalk_stream.Credential(client_id, client_secret)
|
self.credential = dingtalk_stream.Credential(client_id, client_secret)
|
||||||
self.client = dingtalk_stream.DingTalkStreamClient(self.credential)
|
self.client = dingtalk_stream.DingTalkStreamClient(self.credential)
|
||||||
@@ -26,6 +26,7 @@ class DingTalkClient:
|
|||||||
self.robot_name = robot_name
|
self.robot_name = robot_name
|
||||||
self.robot_code = robot_code
|
self.robot_code = robot_code
|
||||||
self.access_token_expiry_time = ''
|
self.access_token_expiry_time = ''
|
||||||
|
self.markdown_card = markdown_card
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -128,7 +129,10 @@ class DingTalkClient:
|
|||||||
|
|
||||||
|
|
||||||
async def send_message(self,content:str,incoming_message):
|
async def send_message(self,content:str,incoming_message):
|
||||||
self.EchoTextHandler.reply_text(content,incoming_message)
|
if self.markdown_card:
|
||||||
|
self.EchoTextHandler.reply_markdown(title=self.robot_name+'的回答',text=content,incoming_message=incoming_message)
|
||||||
|
else:
|
||||||
|
self.EchoTextHandler.reply_text(content,incoming_message)
|
||||||
|
|
||||||
|
|
||||||
async def get_incoming_message(self):
|
async def get_incoming_message(self):
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from .. import migration
|
||||||
|
|
||||||
|
|
||||||
|
@migration.migration_class("tg-dingtalk-markdown", 38)
|
||||||
|
class TgDingtalkMarkdownMigration(migration.Migration):
|
||||||
|
"""迁移"""
|
||||||
|
|
||||||
|
async def need_migrate(self) -> bool:
|
||||||
|
"""判断当前环境是否需要运行此迁移"""
|
||||||
|
|
||||||
|
for adapter in self.ap.platform_cfg.data['platform-adapters']:
|
||||||
|
if adapter['adapter'] in ['dingtalk','telegram']:
|
||||||
|
if 'markdown_card' not in adapter:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
async def run(self):
|
||||||
|
"""执行迁移"""
|
||||||
|
for adapter in self.ap.platform_cfg.data['platform-adapters']:
|
||||||
|
if adapter['adapter'] in ['dingtalk','telegram']:
|
||||||
|
if 'markdown_card' not in adapter:
|
||||||
|
adapter['markdown_card'] = False
|
||||||
|
await self.ap.platform_cfg.dump_config()
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@ from ..migrations import m020_wecom_config, m021_lark_config, m022_lmstudio_conf
|
|||||||
from ..migrations import m026_qqofficial_config, m027_wx_official_account_config, m028_aliyun_requester_config
|
from ..migrations import m026_qqofficial_config, m027_wx_official_account_config, m028_aliyun_requester_config
|
||||||
from ..migrations import m029_dashscope_app_api_config, m030_lark_config_cmpl, m031_dingtalk_config, m032_volcark_config
|
from ..migrations import m029_dashscope_app_api_config, m030_lark_config_cmpl, m031_dingtalk_config, m032_volcark_config
|
||||||
from ..migrations import m033_dify_thinking_config, m034_gewechat_file_url_config, m035_wxoa_mode, m036_wxoa_loading_message
|
from ..migrations import m033_dify_thinking_config, m034_gewechat_file_url_config, m035_wxoa_mode, m036_wxoa_loading_message
|
||||||
from ..migrations import m037_mcp_config
|
from ..migrations import m037_mcp_config, m038_tg_dingtalk_markdown
|
||||||
|
|
||||||
|
|
||||||
@stage.stage_class("MigrationStage")
|
@stage.stage_class("MigrationStage")
|
||||||
|
|||||||
@@ -131,7 +131,8 @@ class DingTalkAdapter(adapter.MessagePlatformAdapter):
|
|||||||
client_id=config["client_id"],
|
client_id=config["client_id"],
|
||||||
client_secret=config["client_secret"],
|
client_secret=config["client_secret"],
|
||||||
robot_name = config["robot_name"],
|
robot_name = config["robot_name"],
|
||||||
robot_code=config["robot_code"]
|
robot_code=config["robot_code"],
|
||||||
|
markdown_card=config["markdown_card"]
|
||||||
)
|
)
|
||||||
|
|
||||||
async def reply_message(
|
async def reply_message(
|
||||||
|
|||||||
@@ -207,6 +207,9 @@ class TelegramAdapter(adapter.MessagePlatformAdapter):
|
|||||||
"text": component['text'],
|
"text": component['text'],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if self.config['markdown_card'] is True:
|
||||||
|
args["parse_mode"] = "MarkdownV2"
|
||||||
|
|
||||||
if quote_origin:
|
if quote_origin:
|
||||||
args['reply_to_message_id'] = message_source.source_platform_object.message.id
|
args['reply_to_message_id'] = message_source.source_platform_object.message.id
|
||||||
|
|
||||||
|
|||||||
@@ -88,12 +88,14 @@
|
|||||||
"client_id":"",
|
"client_id":"",
|
||||||
"client_secret":"",
|
"client_secret":"",
|
||||||
"robot_code":"",
|
"robot_code":"",
|
||||||
"robot_name":""
|
"robot_name":"",
|
||||||
|
"markdown_card":false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"adapter":"telegram",
|
"adapter":"telegram",
|
||||||
"enable": false,
|
"enable": false,
|
||||||
"token":""
|
"token":"",
|
||||||
|
"markdown_card":false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"adapter":"slack",
|
"adapter":"slack",
|
||||||
|
|||||||
@@ -446,6 +446,11 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"default": "",
|
"default": "",
|
||||||
"description": "钉钉的robot_name"
|
"description": "钉钉的robot_name"
|
||||||
|
},
|
||||||
|
"markdown_card": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "是否使用 Markdown 卡片发送消息"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -466,6 +471,11 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"default": "",
|
"default": "",
|
||||||
"description": "Telegram 的 token"
|
"description": "Telegram 的 token"
|
||||||
|
},
|
||||||
|
"markdown_card": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "是否使用 Markdown 卡片发送消息"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user