跳转至

util

UploadMethod 🔗

Bases: str, Enum

用于向 upload 系列方法描述上传类型

Source code in src/graia/ariadne/connection/util.py
105
106
107
108
109
110
111
112
113
114
115
116
117
118
class UploadMethod(str, Enum):
    """用于向 `upload` 系列方法描述上传类型"""

    Friend = "friend"
    """好友"""

    Group = "group"
    """群组"""

    Temp = "temp"
    """临时消息"""

    def __str__(self) -> str:
        return self.value

Friend class-attribute instance-attribute 🔗

Friend = 'friend'

好友

Group class-attribute instance-attribute 🔗

Group = 'group'

群组

Temp class-attribute instance-attribute 🔗

Temp = 'temp'

临时消息

build_event 🔗

build_event(data: dict) -> MiraiEvent

从尚未明确指定事件类型的对象中获取事件的定义, 并进行解析

Parameters:

  • data (dict) –

    用 dict 表示的序列化态事件, 应包含有字段 type 以供分析事件定义.

Raises:

  • InvalidArgument

    目标对象中不包含字段 type

  • ValueError

    没有找到对应的字段, 通常的, 这意味着应用获取到了一个尚未被定义的事件, 请报告问题.

Returns:

  • MiraiEvent( MiraiEvent ) –

    已经被序列化的事件

Source code in src/graia/ariadne/connection/util.py
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
def build_event(data: dict) -> MiraiEvent:
    """
    从尚未明确指定事件类型的对象中获取事件的定义, 并进行解析

    Args:
        data (dict): 用 dict 表示的序列化态事件, 应包含有字段 `type` 以供分析事件定义.

    Raises:
        InvalidArgument: 目标对象中不包含字段 `type`
        ValueError: 没有找到对应的字段, 通常的, 这意味着应用获取到了一个尚未被定义的事件, 请报告问题.

    Returns:
        MiraiEvent: 已经被序列化的事件
    """
    event_type: str | None = data.get("type")
    if not event_type or not isinstance(event_type, str):
        raise InvalidArgument("Unable to find 'type' field for automatic parsing", data)
    event_class: type[MiraiEvent] | None = extract_event_type(event_type)
    if not event_class:
        logger.error("An event is not recognized! Please report with your log to help us diagnose.")
        raise ValueError(f"Unable to find event: {event_type}", data)
    data = {k: v for k, v in data.items() if k != "type"}
    return event_class.parse_obj(data)