feat:添加 Group 类型

This commit is contained in:
Moyuyanli
2025-03-11 17:10:04 +08:00
parent d9ec434699
commit 76cfc31a1d

View File

@@ -1,5 +1,5 @@
import time
from typing import List
from typing import List, Dict, Any
from dataclasses import dataclass
from astrbot.core.message.components import BaseMessageComponent
from .message_type import MessageType
@@ -10,6 +10,52 @@ class MessageMember:
user_id: str # 发送者id
nickname: str = None
def __str__(self):
# 使用 f-string 来构建返回的字符串表示形式
return (f"User ID: {self.user_id}\n"
f"Nickname: {self.nickname if self.nickname else 'N/A'}")
@dataclass
class Group:
group_id: str
group_name: str = None
# 群头像
group_avatar: str = None
# 群主id
group_owner: str = None
# 群管理员id
group_admin: str = None
# 群成员
members: List[MessageMember] = None
def __str__(self):
# 使用 f-string 来构建返回的字符串表示形式
return (f"Group ID: {self.group_id}\n"
f"Name: {self.group_name if self.group_name else 'N/A'}\n"
f"Avatar: {self.group_avatar if self.group_avatar else 'N/A'}\n"
f"Owner ID: {self.group_owner if self.group_owner else 'N/A'}\n"
f"Admin ID: {self.group_admin if self.group_admin else 'N/A'}")
@classmethod
def from_dict(cls, data: Dict[str, Any]) -> "Group":
# 提取members信息并转换为MessageMember对象
members = [
MessageMember(user_id=member["wxid"], nickname=member["nickName"])
for member in data.get("memberList", [])
]
return cls(
group_id=data["chatroomId"],
group_name=data.get("nickName"),
group_avatar=data.get("smallHeadImgUrl"),
group_owner=data.get("chatRoomOwner"),
members=members,
)
class AstrBotMessage:
"""