重构并增强Napcat适配器的功能

- 更新了`BaseAdapter`以简化子进程处理。
- 对`AdapterManager`进行了重构,以便根据适配器的`run_in_subprocess`属性来管理适配器。
- 增强了`NapcatAdapter`,以利用新的`CoreSinkManager`实现更优的进程管理。
- 在`utils.py`中实现了针对群组和成员信息的缓存机制。
- 改进了`message_handler.py`中的消息处理,以支持各种消息类型和格式。
- 已将插件配置版本更新至7.8.3。
This commit is contained in:
Windpicker-owo
2025-11-25 19:55:36 +08:00
parent 1ebdc37b22
commit 6b3b2a8245
38 changed files with 2082 additions and 3277 deletions

View File

@@ -16,6 +16,24 @@ class DatabaseUserInfo(BaseDataModel):
user_nickname: str = field(default_factory=str) # 用户昵称
user_cardname: str | None = None # 用户备注名或群名片,可为空
@classmethod
def from_dict(cls, data: dict) -> "DatabaseUserInfo":
"""从字典创建实例"""
return cls(
platform=data.get("platform", ""),
user_id=data.get("user_id", ""),
user_nickname=data.get("user_nickname", ""),
user_cardname=data.get("user_cardname"),
)
def to_dict(self) -> dict:
"""将实例转换为字典"""
return {
"platform": self.platform,
"user_id": self.user_id,
"user_nickname": self.user_nickname,
"user_cardname": self.user_cardname,
}
@dataclass
class DatabaseGroupInfo(BaseDataModel):
@@ -26,7 +44,23 @@ class DatabaseGroupInfo(BaseDataModel):
group_name: str = field(default_factory=str) # 群组名称
group_platform: str | None = None # 群组所在平台,可为空
@classmethod
def from_dict(cls, data: dict) -> "DatabaseGroupInfo":
"""从字典创建实例"""
return cls(
group_id=data.get("group_id", ""),
group_name=data.get("group_name", ""),
group_platform=data.get("group_platform"),
)
def to_dict(self) -> dict:
"""将实例转换为字典"""
return {
"group_id": self.group_id,
"group_name": self.group_name,
"group_platform": self.group_platform,
}
@dataclass
class DatabaseChatInfo(BaseDataModel):
"""