ruff
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
from dataclasses import dataclass, field
|
||||
from typing import List, Optional, Dict, Any
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from .sender import Sender
|
||||
|
||||
|
||||
@dataclass
|
||||
class MessageSegment:
|
||||
type: str
|
||||
@@ -26,7 +28,6 @@ class MessageSegment:
|
||||
return f"[MS:{self.type}:{self.data}]"
|
||||
|
||||
|
||||
|
||||
@dataclass
|
||||
class Event:
|
||||
post_type: str
|
||||
@@ -58,27 +59,25 @@ class Event:
|
||||
segments = []
|
||||
if isinstance(raw_msg_array, list):
|
||||
segments = [
|
||||
MessageSegment(type=seg["type"], data=seg["data"])
|
||||
MessageSegment(type=seg["type"], data=seg["data"])
|
||||
for seg in raw_msg_array
|
||||
]
|
||||
|
||||
sender_data = data.get("sender")
|
||||
sender_obj = None
|
||||
if isinstance(sender_data, dict):
|
||||
sender_obj = Sender(**{
|
||||
k: v for k, v in sender_data.items()
|
||||
if k in Sender.__annotations__
|
||||
})
|
||||
sender_obj = Sender(
|
||||
**{k: v for k, v in sender_data.items() if k in Sender.__annotations__}
|
||||
)
|
||||
|
||||
# 数据整合
|
||||
processed_data = data.copy()
|
||||
processed_data["message"] = segments
|
||||
processed_data["sender"] = sender_obj
|
||||
|
||||
|
||||
# 字段过滤:只提取 dataclass 中定义的字段
|
||||
valid_data = {
|
||||
k: v for k, v in processed_data.items()
|
||||
if k in cls.__annotations__
|
||||
k: v for k, v in processed_data.items() if k in cls.__annotations__
|
||||
}
|
||||
return cls(**valid_data)
|
||||
|
||||
@@ -93,4 +92,4 @@ class Event:
|
||||
|
||||
@property
|
||||
def is_request(self) -> bool:
|
||||
return self.post_type == "request"
|
||||
return self.post_type == "request"
|
||||
|
||||
Reference in New Issue
Block a user