mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-31 14:47:13 +00:00
fix dingtalk message sender id & update dingtalk streaming card without content (#1630)
This commit is contained in:
@@ -23,6 +23,9 @@ class DingTalkMessageConverter(adapter.MessageConverter):
|
|||||||
at = True
|
at = True
|
||||||
if type(msg) is platform_message.Plain:
|
if type(msg) is platform_message.Plain:
|
||||||
content += msg.text
|
content += msg.text
|
||||||
|
if type(msg) is platform_message.Forward:
|
||||||
|
for node in msg.node_list:
|
||||||
|
content += (await DingTalkMessageConverter.yiri2target(node.message_chain))[0]
|
||||||
return content, at
|
return content, at
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@@ -61,7 +64,7 @@ class DingTalkEventConverter(adapter.EventConverter):
|
|||||||
if event.conversation == 'FriendMessage':
|
if event.conversation == 'FriendMessage':
|
||||||
return platform_events.FriendMessage(
|
return platform_events.FriendMessage(
|
||||||
sender=platform_entities.Friend(
|
sender=platform_entities.Friend(
|
||||||
id=event.incoming_message.sender_id,
|
id=event.incoming_message.sender_staff_id,
|
||||||
nickname=event.incoming_message.sender_nick,
|
nickname=event.incoming_message.sender_nick,
|
||||||
remark='',
|
remark='',
|
||||||
),
|
),
|
||||||
@@ -71,7 +74,7 @@ class DingTalkEventConverter(adapter.EventConverter):
|
|||||||
)
|
)
|
||||||
elif event.conversation == 'GroupMessage':
|
elif event.conversation == 'GroupMessage':
|
||||||
sender = platform_entities.GroupMember(
|
sender = platform_entities.GroupMember(
|
||||||
id=event.incoming_message.sender_id,
|
id=event.incoming_message.sender_staff_id,
|
||||||
member_name=event.incoming_message.sender_nick,
|
member_name=event.incoming_message.sender_nick,
|
||||||
permission='MEMBER',
|
permission='MEMBER',
|
||||||
group=platform_entities.Group(
|
group=platform_entities.Group(
|
||||||
@@ -166,8 +169,11 @@ class DingTalkAdapter(adapter.MessagePlatformAdapter):
|
|||||||
content, at = await DingTalkMessageConverter.yiri2target(message)
|
content, at = await DingTalkMessageConverter.yiri2target(message)
|
||||||
|
|
||||||
card_instance, card_instance_id = self.card_instance_id_dict[message_id]
|
card_instance, card_instance_id = self.card_instance_id_dict[message_id]
|
||||||
|
if not content and bot_message.content:
|
||||||
|
content = bot_message.content # 兼容直接传入content的情况
|
||||||
# print(card_instance_id)
|
# print(card_instance_id)
|
||||||
await self.bot.send_card_message(card_instance, card_instance_id, content, is_final)
|
if content:
|
||||||
|
await self.bot.send_card_message(card_instance, card_instance_id, content, is_final)
|
||||||
if is_final and bot_message.tool_calls is None:
|
if is_final and bot_message.tool_calls is None:
|
||||||
# self.seq = 1 # 消息回复结束之后重置seq
|
# self.seq = 1 # 消息回复结束之后重置seq
|
||||||
self.card_instance_id_dict.pop(message_id) # 消息回复结束之后删除卡片实例id
|
self.card_instance_id_dict.pop(message_id) # 消息回复结束之后删除卡片实例id
|
||||||
|
|||||||
Reference in New Issue
Block a user