mirror of
https://github.com/langbot-app/LangBot.git
synced 2025-11-25 11:29:39 +08:00
115 lines
2.2 KiB
Python
115 lines
2.2 KiB
Python
from typing import Dict, Any, Optional
|
||
|
||
class QQOfficialEvent(dict):
|
||
@staticmethod
|
||
def from_payload(payload: Dict[str, Any]) -> Optional["QQOfficialEvent"]:
|
||
try:
|
||
event = QQOfficialEvent(payload)
|
||
return event
|
||
except KeyError:
|
||
return None
|
||
|
||
|
||
@property
|
||
def t(self) -> str:
|
||
"""
|
||
事件类型
|
||
"""
|
||
return self.get("t", "")
|
||
|
||
@property
|
||
def user_openid(self) -> str:
|
||
"""
|
||
用户openid
|
||
"""
|
||
return self.get("user_openid",{})
|
||
|
||
@property
|
||
def timestamp(self) -> str:
|
||
"""
|
||
时间戳
|
||
"""
|
||
return self.get("timestamp",{})
|
||
|
||
|
||
@property
|
||
def d_author_id(self) -> str:
|
||
"""
|
||
作者id
|
||
"""
|
||
return self.get("id",{})
|
||
|
||
@property
|
||
def content(self) -> str:
|
||
"""
|
||
内容
|
||
"""
|
||
return self.get("content",'')
|
||
|
||
@property
|
||
def d_id(self) -> str:
|
||
"""
|
||
d_id
|
||
"""
|
||
return self.get("d_id",{})
|
||
|
||
@property
|
||
def id(self) -> str:
|
||
"""
|
||
消息id,msg_id
|
||
"""
|
||
return self.get("id",{})
|
||
|
||
@property
|
||
def channel_id(self) -> str:
|
||
"""
|
||
频道id
|
||
"""
|
||
return self.get("channel_id",{})
|
||
|
||
@property
|
||
def username(self) -> str:
|
||
"""
|
||
用户名
|
||
"""
|
||
return self.get("username",{})
|
||
|
||
@property
|
||
def guild_id(self) -> str:
|
||
"""
|
||
频道id
|
||
"""
|
||
return self.get("guild_id",{})
|
||
|
||
@property
|
||
def member_openid(self) -> str:
|
||
"""
|
||
成员openid
|
||
"""
|
||
return self.get("openid",{})
|
||
|
||
@property
|
||
def attachments(self) -> str:
|
||
"""
|
||
附件url
|
||
"""
|
||
url = self.get("image_attachments", "")
|
||
if url and not url.startswith("https://"):
|
||
url = "https://" + url
|
||
return url
|
||
|
||
@property
|
||
def group_openid(self) -> str:
|
||
"""
|
||
群组id
|
||
"""
|
||
return self.get("group_openid",{})
|
||
|
||
@property
|
||
def content_type(self) -> str:
|
||
"""
|
||
文件类型
|
||
"""
|
||
return self.get("content_type","")
|
||
|