mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-12 00:36:03 +00:00
feat: add support for dingtalk
This commit is contained in:
64
libs/dingtalk_api/dingtalkevent.py
Normal file
64
libs/dingtalk_api/dingtalkevent.py
Normal file
@@ -0,0 +1,64 @@
|
||||
from typing import Dict, Any, Optional
|
||||
|
||||
class DingTalkEvent(dict):
|
||||
@staticmethod
|
||||
def from_payload(payload: Dict[str, Any]) -> Optional["DingTalkEvent"]:
|
||||
try:
|
||||
event = DingTalkEvent(payload)
|
||||
return event
|
||||
except KeyError:
|
||||
return None
|
||||
|
||||
|
||||
@property
|
||||
def content(self):
|
||||
return self.get("Content","")
|
||||
|
||||
@property
|
||||
def incoming_message(self):
|
||||
return self.get("IncomingMessage")
|
||||
|
||||
@property
|
||||
def type(self):
|
||||
return self.get("Type","")
|
||||
|
||||
@property
|
||||
def picture(self):
|
||||
return self.get("Picture","")
|
||||
|
||||
@property
|
||||
def conversation(self):
|
||||
return self.get("conversation_type","")
|
||||
|
||||
|
||||
|
||||
def __getattr__(self, key: str) -> Optional[Any]:
|
||||
"""
|
||||
允许通过属性访问数据中的任意字段。
|
||||
|
||||
Args:
|
||||
key (str): 字段名。
|
||||
|
||||
Returns:
|
||||
Optional[Any]: 字段值。
|
||||
"""
|
||||
return self.get(key)
|
||||
|
||||
def __setattr__(self, key: str, value: Any) -> None:
|
||||
"""
|
||||
允许通过属性设置数据中的任意字段。
|
||||
|
||||
Args:
|
||||
key (str): 字段名。
|
||||
value (Any): 字段值。
|
||||
"""
|
||||
self[key] = value
|
||||
|
||||
def __repr__(self) -> str:
|
||||
"""
|
||||
生成事件对象的字符串表示。
|
||||
|
||||
Returns:
|
||||
str: 字符串表示。
|
||||
"""
|
||||
return f"<WecomEvent {super().__repr__()}>"
|
||||
Reference in New Issue
Block a user