fix(dingtalk): group and person id not distinguished

This commit is contained in:
Junyan Qin
2025-03-02 17:35:06 +08:00
parent a198b6da0b
commit bc8c346e68
3 changed files with 28 additions and 20 deletions

View File

@@ -1,4 +1,5 @@
import base64
import json
import time
from typing import Callable
import dingtalk_stream
@@ -156,6 +157,7 @@ class DingTalkClient:
async def get_message(self,incoming_message:dingtalk_stream.chatbot.ChatbotMessage):
try:
# print(json.dumps(incoming_message.to_dict(), indent=4, ensure_ascii=False))
message_data = {
"IncomingMessage":incoming_message,
}
@@ -188,9 +190,9 @@ class DingTalkClient:
message_data['Type'] = 'audio'
# 删掉开头的@消息
if 'Content' in message_data and message_data["Content"].startswith("@"+self.robot_name):
message_data["Content"] = message_data["Content"][len("@"+self.robot_name):]
copy_message_data = message_data.copy()
del copy_message_data['IncomingMessage']
# print("message_data:", json.dumps(copy_message_data, indent=4, ensure_ascii=False))
except Exception:
traceback.print_exc()

View File

@@ -1,4 +1,5 @@
from typing import Dict, Any, Optional
import dingtalk_stream
class DingTalkEvent(dict):
@staticmethod
@@ -15,7 +16,7 @@ class DingTalkEvent(dict):
return self.get("Content","")
@property
def incoming_message(self):
def incoming_message(self) -> Optional["dingtalk_stream.chatbot.ChatbotMessage"]:
return self.get("IncomingMessage")
@property
@@ -65,4 +66,4 @@ class DingTalkEvent(dict):
Returns:
str: 字符串表示。
"""
return f"<WecomEvent {super().__repr__()}>"
return f"<DingTalkEvent {super().__repr__()}>"