ForcePilot/backend/package/yuxi/channels/adapters/dingding/session.py
Kris 86105d163d feat(dingding): add dingtalk channel adapter implementation
实现钉钉官方的频道适配器,包含完整的消息收发、事件处理、媒体上传下载、流式响应以及webhook支持,覆盖了认证、签名校验、速率限制、健康检查等完整功能流程。
2026-05-12 00:43:14 +08:00

21 lines
631 B
Python

from __future__ import annotations
def generate_dingding_chat_id(raw: dict, chat_type: str) -> str:
if chat_type == "direct":
sender_id = raw.get("senderId", "")
return f"dm_{sender_id}"
conversation_id = raw.get("conversationId", "")
return f"group_{conversation_id}"
def resolve_dingding_chat_type(raw: dict) -> str:
is_group = raw.get("isGroupChat", False)
return "group" if is_group else "direct"
def generate_thread_key(channel_id: str, chat_id: str) -> str:
if chat_id.startswith("dm_"):
return f"{channel_id}:direct:{chat_id}"
return f"{channel_id}:group:{chat_id}"