跳转至

mirai

Mirai 的各种事件

BotEvent 🔗

Bases: MiraiEvent

指示有关 Bot 本身的事件.

Source code in src/graia/ariadne/event/mirai.py
28
29
class BotEvent(MiraiEvent):
    """指示有关 Bot 本身的事件."""

BotGroupPermissionChangeEvent 🔗

Bases: GroupEvent, BotEvent

Bot 账号在一特定群组内所具有的权限发生变化

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Group (annotation): 发生该事件的群组
Source code in src/graia/ariadne/event/mirai.py
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
class BotGroupPermissionChangeEvent(GroupEvent, BotEvent):
    """Bot 账号在一特定群组内所具有的权限发生变化

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Group (annotation): 发生该事件的群组
    """

    type = "BotGroupPermissionChangeEvent"

    origin: MemberPerm
    """原始权限"""

    current: MemberPerm
    """当前权限"""

    group: Group
    """权限改变所在的群信息"""

    Dispatcher = GroupDispatcher

current instance-attribute 🔗

current: MemberPerm

当前权限

group instance-attribute 🔗

group: Group

权限改变所在的群信息

origin instance-attribute 🔗

origin: MemberPerm

原始权限

BotInvitedJoinGroupRequestEvent 🔗

Bases: RequestEvent, BotEvent, GroupEvent

Bot 账号接受到来自某个账号的邀请加入某个群组的请求.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例

事件拓展支持

该事件的处理需要你获取原始事件实例.

  1. 同意请求: await event.accept(), 具体查看该方法所附带的说明.
  2. 拒绝请求: await event.reject(), 具体查看该方法所附带的说明.
Source code in src/graia/ariadne/event/mirai.py
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
class BotInvitedJoinGroupRequestEvent(RequestEvent, BotEvent, GroupEvent):
    """Bot 账号接受到来自某个账号的邀请加入某个群组的请求.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例

    事件拓展支持:
        该事件的处理需要你获取原始事件实例.

        1. 同意请求: `await event.accept()`, 具体查看该方法所附带的说明.
        2. 拒绝请求: `await event.reject()`, 具体查看该方法所附带的说明.
    """

    type = "BotInvitedJoinGroupRequestEvent"

    request_id: int = Field(..., alias="eventId")
    """事件标识,响应该事件时的标识"""

    supplicant: int = Field(..., alias="fromId")
    """邀请人 (好友) 的QQ号"""

    nickname: str = Field(..., alias="nick")
    """申请人的昵称或群名片"""

    message: str
    """申请消息"""

    source_group: int = Field(..., alias="groupId")
    """被邀请进入群的群号"""

    group_name: str = Field(..., alias="groupName")
    """被邀请进入群的群名称"""

    async def accept(self, message: str = "") -> None:
        """接受邀请并加入群组/发起对指定群组的加入申请.

        Args:
            message (str, optional): 附带给对方的消息. 默认为 "".

        Raises:
            LookupError: 尝试上下文外处理事件.
            InvalidSession: 应用实例没准备好!

        Returns:
            None: 没有返回.
        """
        await self._operate(0, message)

    async def reject(self, message: str = "") -> None:
        """拒绝对方加入指定群组的邀请.

        Args:
            message (str, optional): 附带给对方的消息. 默认为 "".

        Raises:
            LookupError: 尝试上下文外处理事件.
            InvalidSession: 应用实例没准备好!

        Returns:
            None: 没有返回.
        """
        await self._operate(1, message)

group_name class-attribute instance-attribute 🔗

group_name: str = Field(..., alias='groupName')

被邀请进入群的群名称

message instance-attribute 🔗

message: str

申请消息

nickname class-attribute instance-attribute 🔗

nickname: str = Field(..., alias='nick')

申请人的昵称或群名片

request_id class-attribute instance-attribute 🔗

request_id: int = Field(..., alias='eventId')

事件标识,响应该事件时的标识

source_group class-attribute instance-attribute 🔗

source_group: int = Field(..., alias='groupId')

被邀请进入群的群号

supplicant class-attribute instance-attribute 🔗

supplicant: int = Field(..., alias='fromId')

邀请人 (好友) 的QQ号

accept async 🔗

accept(message: str = '') -> None

接受邀请并加入群组/发起对指定群组的加入申请.

Parameters:

  • message (str) –

    附带给对方的消息. 默认为 "".

Raises:

  • LookupError

    尝试上下文外处理事件.

  • InvalidSession

    应用实例没准备好!

Returns:

  • None( None ) –

    没有返回.

Source code in src/graia/ariadne/event/mirai.py
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
async def accept(self, message: str = "") -> None:
    """接受邀请并加入群组/发起对指定群组的加入申请.

    Args:
        message (str, optional): 附带给对方的消息. 默认为 "".

    Raises:
        LookupError: 尝试上下文外处理事件.
        InvalidSession: 应用实例没准备好!

    Returns:
        None: 没有返回.
    """
    await self._operate(0, message)

reject async 🔗

reject(message: str = '') -> None

拒绝对方加入指定群组的邀请.

Parameters:

  • message (str) –

    附带给对方的消息. 默认为 "".

Raises:

  • LookupError

    尝试上下文外处理事件.

  • InvalidSession

    应用实例没准备好!

Returns:

  • None( None ) –

    没有返回.

Source code in src/graia/ariadne/event/mirai.py
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
async def reject(self, message: str = "") -> None:
    """拒绝对方加入指定群组的邀请.

    Args:
        message (str, optional): 附带给对方的消息. 默认为 "".

    Raises:
        LookupError: 尝试上下文外处理事件.
        InvalidSession: 应用实例没准备好!

    Returns:
        None: 没有返回.
    """
    await self._operate(1, message)

BotJoinGroupEvent 🔗

Bases: GroupEvent, BotEvent

Bot 账号加入指定群组

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Group (annotation): 发生该事件的群组
  • Member (annotation, optional): 邀请者, 可以为 None
Source code in src/graia/ariadne/event/mirai.py
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
class BotJoinGroupEvent(GroupEvent, BotEvent):
    """Bot 账号加入指定群组

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Group (annotation): 发生该事件的群组
        - Member (annotation, optional): 邀请者, 可以为 None
    """

    type = "BotJoinGroupEvent"

    group: Group
    """Bot 新加入群的信息"""

    inviter: Optional[Member] = Field(..., alias="invitor")
    """如果被邀请入群则为邀请人的 Member 对象"""

    class Dispatcher(AbstractDispatcher):
        mixin = [GroupDispatcher]

        @staticmethod
        async def catch(interface: DispatcherInterface["BotJoinGroupEvent"]):
            if (inviter := interface.event.inviter) and generic_issubclass(Member, interface.annotation):
                return inviter

group instance-attribute 🔗

group: Group

Bot 新加入群的信息

inviter class-attribute instance-attribute 🔗

inviter: Optional[Member] = Field(..., alias='invitor')

如果被邀请入群则为邀请人的 Member 对象

BotLeaveEventActive 🔗

Bases: GroupEvent, BotEvent

Bot 账号主动退出了某群组.

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Group (annotation): 发生该事件的群组
Source code in src/graia/ariadne/event/mirai.py
271
272
273
274
275
276
277
278
279
280
281
282
283
284
class BotLeaveEventActive(GroupEvent, BotEvent):
    """Bot 账号主动退出了某群组.

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Group (annotation): 发生该事件的群组
    """

    type: str = "BotLeaveEventActive"

    group: Group
    """Bot 退出的群的信息"""

    Dispatcher = GroupDispatcher

group instance-attribute 🔗

group: Group

Bot 退出的群的信息

BotLeaveEventDisband 🔗

Bases: GroupEvent, BotEvent

Bot 账号因群主解散群而退出某个群组.

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Group (annotation): 发生该事件的群组
  • Member (annotation): 操作者, 一定是群主.
Source code in src/graia/ariadne/event/mirai.py
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
class BotLeaveEventDisband(GroupEvent, BotEvent):
    """Bot 账号因群主解散群而退出某个群组.

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Group (annotation): 发生该事件的群组
        - Member (annotation): 操作者, 一定是群主.
    """

    type: str = "BotLeaveEventDisband"

    group: Group
    """Bot 退出的群的信息"""

    operator: Optional[Member]
    """操作员, 为群主"""

    class Dispatcher(BaseDispatcher):
        mixin = [GroupDispatcher, OperatorDispatcher]

group instance-attribute 🔗

group: Group

Bot 退出的群的信息

operator instance-attribute 🔗

operator: Optional[Member]

操作员, 为群主

BotLeaveEventKick 🔗

Bases: GroupEvent, BotEvent

Bot 账号被某群组的管理员/群主从该群组中删除.

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Group (annotation): 发生该事件的群组
  • Member (annotation): 操作者, 为群主或管理员.
Source code in src/graia/ariadne/event/mirai.py
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
class BotLeaveEventKick(GroupEvent, BotEvent):
    """Bot 账号被某群组的管理员/群主从该群组中删除.

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Group (annotation): 发生该事件的群组
        - Member (annotation): 操作者, 为群主或管理员.
    """

    type: str = "BotLeaveEventKick"

    group: Group
    """Bot 被踢出的群的信息"""

    operator: Optional[Member]
    """操作员, 为群主或管理员"""

    class Dispatcher(BaseDispatcher):
        mixin = [GroupDispatcher, OperatorDispatcher]

group instance-attribute 🔗

group: Group

Bot 被踢出的群的信息

operator instance-attribute 🔗

operator: Optional[Member]

操作员, 为群主或管理员

BotMuteEvent 🔗

Bases: GroupEvent, BotEvent

Bot 账号在一特定群组内被管理员/群主禁言

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Member (annotation): 执行禁言操作的管理员/群主
  • Group (annotation): 发生该事件的群组
Source code in src/graia/ariadne/event/mirai.py
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
class BotMuteEvent(GroupEvent, BotEvent):
    """Bot 账号在一特定群组内被管理员/群主禁言

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Member (annotation): 执行禁言操作的管理员/群主
        - Group (annotation): 发生该事件的群组
    """

    type = "BotMuteEvent"

    duration: int = Field(..., alias="durationSeconds")
    """禁言时长, 单位为秒"""

    operator: Member
    """执行禁言操作的管理员/群主"""

    Dispatcher = OperatorDispatcher

duration class-attribute instance-attribute 🔗

duration: int = Field(..., alias='durationSeconds')

禁言时长, 单位为秒

operator instance-attribute 🔗

operator: Member

执行禁言操作的管理员/群主

BotOfflineEventActive 🔗

Bases: BotEvent

Bot 账号主动离线

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
Source code in src/graia/ariadne/event/mirai.py
59
60
61
62
63
64
65
66
67
68
69
70
71
72
class BotOfflineEventActive(BotEvent):
    """Bot 账号主动离线

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
    """

    type = "BotOfflineEventActive"

    qq: int
    """主动离线的 Bot 的 QQ 号"""

qq instance-attribute 🔗

qq: int

主动离线的 Bot 的 QQ 号

BotOfflineEventDropped 🔗

Bases: BotEvent

Bot 账号与服务器的连接被服务器主动断开, 或因网络原因离线

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
Source code in src/graia/ariadne/event/mirai.py
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
class BotOfflineEventDropped(BotEvent):
    """Bot 账号与服务器的连接被服务器主动断开, 或因网络原因离线

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
    """

    type = "BotOfflineEventDropped"

    qq: int
    """被服务器断开或因网络问题而掉线的 Bot 的 QQ 号"""

qq instance-attribute 🔗

qq: int

被服务器断开或因网络问题而掉线的 Bot 的 QQ 号

BotOfflineEventForce 🔗

Bases: BotEvent

Bot 账号被迫离线

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
Source code in src/graia/ariadne/event/mirai.py
75
76
77
78
79
80
81
82
83
84
85
86
87
88
class BotOfflineEventForce(BotEvent):
    """Bot 账号被迫离线

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
    """

    type = "BotOfflineEventForce"

    qq: int
    """被挤下线的 Bot 的 QQ 号"""

qq instance-attribute 🔗

qq: int

被挤下线的 Bot 的 QQ 号

BotOnlineEvent 🔗

Bases: BotEvent

Bot 账号登录成功

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
提示

只有使用 ReverseAdapter 时才有可能接受到此事件

Source code in src/graia/ariadne/event/mirai.py
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
class BotOnlineEvent(BotEvent):
    """Bot 账号登录成功

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例

    Note: 提示
        只有使用 ReverseAdapter 时才有可能接受到此事件
    """

    type = "BotOnlineEvent"

    qq: int
    """登录成功的 Bot 的 QQ 号"""

qq instance-attribute 🔗

qq: int

登录成功的 Bot 的 QQ 号

BotReloginEvent 🔗

Bases: BotEvent

Bot 账号正尝试重新登录

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
Source code in src/graia/ariadne/event/mirai.py
107
108
109
110
111
112
113
114
115
116
117
118
119
120
class BotReloginEvent(BotEvent):
    """Bot 账号正尝试重新登录

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
    """

    type = "BotReloginEvent"

    qq: int
    """主动重新登录的 Bot 的 QQ 号"""

qq instance-attribute 🔗

qq: int

主动重新登录的 Bot 的 QQ 号

BotUnmuteEvent 🔗

Bases: GroupEvent, BotEvent

Bot 账号在一特定群组内被管理员/群主解除禁言

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Member (annotation): 执行解除禁言操作的管理员/群主, 若为 None 则为 Bot 账号操作
  • Group (annotation): 发生该事件的群组
Source code in src/graia/ariadne/event/mirai.py
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
class BotUnmuteEvent(GroupEvent, BotEvent):
    """Bot 账号在一特定群组内被管理员/群主解除禁言

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Member (annotation): 执行解除禁言操作的管理员/群主, 若为 None 则为 Bot 账号操作
        - Group (annotation): 发生该事件的群组
    """

    type = "BotUnmuteEvent"

    operator: Member
    """操作的管理员或群主信息"""

    Dispatcher = OperatorDispatcher

operator instance-attribute 🔗

operator: Member

操作的管理员或群主信息

ClientKind 🔗

Bases: int, Enum

详细设备类型。

Source code in src/graia/ariadne/event/mirai.py
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
class ClientKind(int, Enum):
    """详细设备类型。"""

    ANDROID_PAD = 68104
    AOL_CHAOJIHUIYUAN = 73730
    AOL_HUIYUAN = 73474
    AOL_SQQ = 69378
    CAR = 65806
    HRTX_IPHONE = 66566
    HRTX_PC = 66561
    MC_3G = 65795
    MISRO_MSG = 69634
    MOBILE_ANDROID = 65799
    MOBILE_ANDROID_NEW = 72450
    MOBILE_HD = 65805
    MOBILE_HD_NEW = 71426
    MOBILE_IPAD = 68361
    MOBILE_IPAD_NEW = 72194
    MOBILE_IPHONE = 67586
    MOBILE_OTHER = 65794
    MOBILE_PC_QQ = 65793
    MOBILE_PC_TIM = 77313
    MOBILE_WINPHONE_NEW = 72706
    QQ_FORELDER = 70922
    QQ_SERVICE = 71170
    TV_QQ = 69130
    WIN8 = 69899
    WINPHONE = 65804

CommandExecutedEvent 🔗

Bases: MiraiEvent

有一条命令被执行

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例

Source code in src/graia/ariadne/event/mirai.py
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
class CommandExecutedEvent(MiraiEvent):
    """有一条命令被执行

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例
    """

    type = "CommandExecutedEvent"

    name: str
    """命令名称"""

    friend: Optional[Friend]
    """发送命令的好友, 从控制台发送为 None"""

    member: Optional[Member]
    """发送命令的群成员, 从控制台发送为 None"""

    args: List[Element]
    """指令的参数, 以消息元素类型传递"""

    def __init__(self, *args, **kwargs):
        if "args" in kwargs:
            kwargs["args"] = MessageChain.build_chain(kwargs["args"])
        super().__init__(*args, **kwargs)

args instance-attribute 🔗

args: List[Element]

指令的参数, 以消息元素类型传递

friend instance-attribute 🔗

friend: Optional[Friend]

发送命令的好友, 从控制台发送为 None

member instance-attribute 🔗

member: Optional[Member]

发送命令的群成员, 从控制台发送为 None

name instance-attribute 🔗

name: str

命令名称

FriendEvent 🔗

Bases: MiraiEvent

指示有关好友的事件

Source code in src/graia/ariadne/event/mirai.py
32
33
class FriendEvent(MiraiEvent):
    """指示有关好友的事件"""

FriendInputStatusChangedEvent 🔗

Bases: FriendEvent

Bot 账号的某一好友输入状态改变.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
Source code in src/graia/ariadne/event/mirai.py
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
class FriendInputStatusChangedEvent(FriendEvent):
    """Bot 账号的某一好友输入状态改变.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
    """

    type = "FriendInputStatusChangedEvent"

    friend: Friend
    """好友信息"""

    inputting: bool
    """是否正在输入"""

    Dispatcher = FriendDispatcher

friend instance-attribute 🔗

friend: Friend

好友信息

inputting instance-attribute 🔗

inputting: bool

是否正在输入

FriendNickChangedEvent 🔗

Bases: FriendEvent

Bot 账号的某一好友更改了昵称.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Friend (annotation): 更改名称的好友
Source code in src/graia/ariadne/event/mirai.py
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
class FriendNickChangedEvent(FriendEvent):
    """Bot 账号的某一好友更改了昵称.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Friend (annotation): 更改名称的好友
    """

    type = "FriendNickChangedEvent"

    friend: Friend
    """好友信息"""

    from_name: str = Field(..., alias="from")
    """原昵称"""

    to_name: str = Field(..., alias="to")
    """新昵称"""

    Dispatcher = FriendDispatcher

    @root_validator
    def _(cls, values: Dict[str, Any]):
        values["friend"].nickname = values["to_name"]
        return values

friend instance-attribute 🔗

friend: Friend

好友信息

from_name class-attribute instance-attribute 🔗

from_name: str = Field(..., alias='from')

原昵称

to_name class-attribute instance-attribute 🔗

to_name: str = Field(..., alias='to')

新昵称

FriendRecallEvent 🔗

Bases: FriendEvent

有一位与 Bot 账号为好友关系的用户撤回了一条消息

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
Source code in src/graia/ariadne/event/mirai.py
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
class FriendRecallEvent(FriendEvent):
    """有一位与 Bot 账号为好友关系的用户撤回了一条消息

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
    """

    type = "FriendRecallEvent"

    author_id: int = Field(..., alias="authorId")
    """原消息发送者的 QQ 号"""

    message_id: int = Field(..., alias="messageId")
    """原消息的 ID"""

    time: datetime
    """原消息发送时间"""

    operator: int
    """撤回消息者的 QQ 号"""

author_id class-attribute instance-attribute 🔗

author_id: int = Field(..., alias='authorId')

原消息发送者的 QQ 号

message_id class-attribute instance-attribute 🔗

message_id: int = Field(..., alias='messageId')

原消息的 ID

operator instance-attribute 🔗

operator: int

撤回消息者的 QQ 号

time instance-attribute 🔗

time: datetime

原消息发送时间

GroupAllowAnonymousChatEvent 🔗

Bases: GroupEvent

有一群组修改了有关匿名聊天的相关设定

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Group (annotation): 修改了相关设定的群组
  • Member (annotation, optional = None): 作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作
Source code in src/graia/ariadne/event/mirai.py
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
class GroupAllowAnonymousChatEvent(GroupEvent):
    """有一群组修改了有关匿名聊天的相关设定

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Group (annotation): 修改了相关设定的群组
        - Member (annotation, optional = None): 作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作
    """

    type = "GroupAllowAnonymousChatEvent"

    origin: bool
    """原始设定"""

    current: bool
    """当前设定"""

    group: Group
    """修改了相关设定的群组"""

    operator: Optional[Member]
    """作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作"""

    class Dispatcher(BaseDispatcher):
        mixin = [GroupDispatcher, OperatorDispatcher]

current instance-attribute 🔗

current: bool

当前设定

group instance-attribute 🔗

group: Group

修改了相关设定的群组

operator instance-attribute 🔗

operator: Optional[Member]

作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作

origin instance-attribute 🔗

origin: bool

原始设定

GroupAllowConfessTalkEvent 🔗

Bases: GroupEvent

有一群组修改了有关坦白说的相关设定

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Group (annotation): 修改了相关设定的群组
  • Member (annotation, optional = None): 作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作
Source code in src/graia/ariadne/event/mirai.py
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
class GroupAllowConfessTalkEvent(GroupEvent):
    """有一群组修改了有关坦白说的相关设定

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Group (annotation): 修改了相关设定的群组
        - Member (annotation, optional = None): 作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作
    """

    type = "GroupAllowConfessTalkEvent"

    origin: bool
    """原始设定"""

    current: bool
    """当前设定"""

    group: Group
    """修改了相关设定的群组"""

    operator: Optional[Member]
    """作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作"""

    class Dispatcher(BaseDispatcher):
        mixin = [GroupDispatcher, OperatorDispatcher]

current instance-attribute 🔗

current: bool

当前设定

group instance-attribute 🔗

group: Group

修改了相关设定的群组

operator instance-attribute 🔗

operator: Optional[Member]

作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作

origin instance-attribute 🔗

origin: bool

原始设定

GroupAllowMemberInviteEvent 🔗

Bases: GroupEvent

有一群组修改了有关是否允许已有成员邀请其他用户加入群组的相关设定

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Group (annotation): 修改了相关设定的群组
  • Member (annotation, optional = None): 作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作
Source code in src/graia/ariadne/event/mirai.py
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
class GroupAllowMemberInviteEvent(GroupEvent):
    """有一群组修改了有关是否允许已有成员邀请其他用户加入群组的相关设定

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Group (annotation): 修改了相关设定的群组
        - Member (annotation, optional = None): 作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作
    """

    type = "GroupAllowMemberInviteEvent"

    origin: bool
    """原始设定"""

    current: bool
    """当前设定"""

    group: Group
    """修改了相关设定的群组"""

    operator: Optional[Member]
    """作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作"""

    class Dispatcher(BaseDispatcher):
        mixin = [GroupDispatcher, OperatorDispatcher]

current instance-attribute 🔗

current: bool

当前设定

group instance-attribute 🔗

group: Group

修改了相关设定的群组

operator instance-attribute 🔗

operator: Optional[Member]

作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作

origin instance-attribute 🔗

origin: bool

原始设定

GroupEntranceAnnouncementChangeEvent 🔗

Bases: GroupEvent

有一群组被修改了入群公告

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Group (annotation): 被修改了入群公告的群组
  • Member (annotation, optional): 作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作
Source code in src/graia/ariadne/event/mirai.py
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
class GroupEntranceAnnouncementChangeEvent(GroupEvent):
    """有一群组被修改了入群公告

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Group (annotation): 被修改了入群公告的群组
        - Member (annotation, optional): 作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作
    """

    type = "GroupEntranceAnnouncementChangeEvent"

    origin: str
    """原始设定"""

    current: str
    """当前设定"""

    group: Group
    """修改了相关设定的群组"""

    operator: Optional[Member]
    """作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作"""

    class Dispatcher(BaseDispatcher):
        mixin = [GroupDispatcher, OperatorDispatcher]

current instance-attribute 🔗

current: str

当前设定

group instance-attribute 🔗

group: Group

修改了相关设定的群组

operator instance-attribute 🔗

operator: Optional[Member]

作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作

origin instance-attribute 🔗

origin: str

原始设定

GroupEvent 🔗

Bases: MiraiEvent

指示有关群组的事件.

Source code in src/graia/ariadne/event/mirai.py
36
37
class GroupEvent(MiraiEvent):
    """指示有关群组的事件."""

GroupMuteAllEvent 🔗

Bases: GroupEvent

有一群组开启了全体禁言

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Group (annotation): 开启了全体禁言的群组
  • Member (annotation, optional): 作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作
Source code in src/graia/ariadne/event/mirai.py
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
class GroupMuteAllEvent(GroupEvent):
    """有一群组开启了全体禁言

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Group (annotation): 开启了全体禁言的群组
        - Member (annotation, optional): 作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作
    """

    type = "GroupMuteAllEvent"

    origin: bool
    """原始设定"""

    current: bool
    """当前设定"""

    group: Group
    """修改了相关设定的群组"""

    operator: Optional[Member]
    """作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作"""

    class Dispatcher(BaseDispatcher):
        mixin = [GroupDispatcher, OperatorDispatcher]

current instance-attribute 🔗

current: bool

当前设定

group instance-attribute 🔗

group: Group

修改了相关设定的群组

operator instance-attribute 🔗

operator: Optional[Member]

作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作

origin instance-attribute 🔗

origin: bool

原始设定

GroupNameChangeEvent 🔗

Bases: GroupEvent

有一群组被修改了群名称

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Group (annotation): 被修改了群名称的群组
  • Member (annotation): 更改群名称的成员, 权限必定为管理员或是群主
Source code in src/graia/ariadne/event/mirai.py
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
class GroupNameChangeEvent(GroupEvent):
    """有一群组被修改了群名称

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Group (annotation): 被修改了群名称的群组
        - Member (annotation): 更改群名称的成员, 权限必定为管理员或是群主
    """

    type = "GroupNameChangeEvent"

    origin: str
    """原始设定"""

    current: str
    """当前设定"""

    group: Group
    """修改了相关设定的群组"""

    operator: Optional[Member]
    """作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作"""

    class Dispatcher(BaseDispatcher):
        mixin = [GroupDispatcher, OperatorDispatcher]

current instance-attribute 🔗

current: str

当前设定

group instance-attribute 🔗

group: Group

修改了相关设定的群组

operator instance-attribute 🔗

operator: Optional[Member]

作出此操作的管理员/群主, 若为 None 则为 Bot 账号操作

origin instance-attribute 🔗

origin: str

原始设定

GroupRecallEvent 🔗

Bases: GroupEvent

有群成员在指定群组撤回了一条消息。 群成员若具有管理员/群主权限, 则他们可以撤回其他普通群员的消息, 且不受发出时间限制。

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Member (annotation, optional): 执行本操作的群成员, 若为 None 则为 Bot 账号操作
  • Group (annotation): 发生该事件的群组
Source code in src/graia/ariadne/event/mirai.py
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
class GroupRecallEvent(GroupEvent):
    """有群成员在指定群组撤回了一条消息。
    群成员若具有管理员/群主权限,
    则他们可以撤回其他普通群员的消息, 且不受发出时间限制。

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Member (annotation, optional): 执行本操作的群成员, 若为 None 则为 Bot 账号操作
        - Group (annotation): 发生该事件的群组
    """

    type = "GroupRecallEvent"

    author_id: int = Field(..., alias="authorId")
    """原消息发送者的 QQ 号"""

    message_id: int = Field(..., alias="messageId")
    """原消息的 ID"""

    time: datetime
    """原消息发送时间"""

    group: Group
    """消息撤回所在的群"""

    operator: Optional[Member]
    """撤回消息的群成员, 若为 None 则为 Bot 账号操作"""

    class Dispatcher(BaseDispatcher):
        mixin = [GroupDispatcher, OperatorDispatcher]

author_id class-attribute instance-attribute 🔗

author_id: int = Field(..., alias='authorId')

原消息发送者的 QQ 号

group instance-attribute 🔗

group: Group

消息撤回所在的群

message_id class-attribute instance-attribute 🔗

message_id: int = Field(..., alias='messageId')

原消息的 ID

operator instance-attribute 🔗

operator: Optional[Member]

撤回消息的群成员, 若为 None 则为 Bot 账号操作

time instance-attribute 🔗

time: datetime

原消息发送时间

MemberCardChangeEvent 🔗

Bases: GroupEvent

有一群组成员的群名片被更改。 执行者可能是管理员/群主, 该成员自己, 也可能是 Bot 账号 (这时 operatorNone).

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例 Group (annotation): 发生该事件的群组 Member (annotation): - "target" (default, const, str): 被更改群名片的成员 - "operator" (default, const, Optional[str]): 该操作的执行者, 可能是管理员/群主, 该成员自己, 也可能是 Bot 账号(这时, operatorNone).

Source code in src/graia/ariadne/event/mirai.py
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
class MemberCardChangeEvent(GroupEvent):
    """有一群组成员的群名片被更改。
    执行者可能是管理员/群主, 该成员自己, 也可能是 Bot 账号 (这时 `operator` 为 `None`).

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例
        Group (annotation): 发生该事件的群组
        Member (annotation):
          - `"target"` (default, const, str): 被更改群名片的成员
          - `"operator"` (default, const, Optional[str]): 该操作的执行者, 可能是管理员/群主, 该成员自己,
          也可能是 Bot 账号(这时, `operator` 为 `None`).
    """

    type = "MemberCardChangeEvent"

    origin: str
    """原始群名片"""

    current: str
    """现在的群名片"""

    member: Member
    """被更改群名片的成员"""

    operator: Optional[Member]
    """更改群名片的操作者, 可能是管理员/群主, 该成员自己, 也可能是 Bot 账号(这时, `operator` 为 `None`)."""

    Dispatcher = OperatorMemberDispatcher

current instance-attribute 🔗

current: str

现在的群名片

member instance-attribute 🔗

member: Member

被更改群名片的成员

operator instance-attribute 🔗

operator: Optional[Member]

更改群名片的操作者, 可能是管理员/群主, 该成员自己, 也可能是 Bot 账号(这时, operatorNone).

origin instance-attribute 🔗

origin: str

原始群名片

MemberHonorChangeEvent 🔗

Bases: GroupEvent

有一群组成员获得/失去了某个荣誉.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例 Group (annotation): 发生该事件的群组 Member (annotation): 获得/失去荣誉的成员

Source code in src/graia/ariadne/event/mirai.py
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
class MemberHonorChangeEvent(GroupEvent):
    """有一群组成员获得/失去了某个荣誉.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例
        Group (annotation): 发生该事件的群组
        Member (annotation): 获得/失去荣誉的成员
    """

    type = "MemberHonorChangeEvent"

    member: Member
    """获得/失去荣誉的成员"""

    action: str
    """对应的操作, 可能是 `"achieve"` 或 `"lose"`"""

    honor: str
    """获得/失去的荣誉"""

    Dispatcher = MemberDispatcher

action instance-attribute 🔗

action: str

对应的操作, 可能是 "achieve""lose"

honor instance-attribute 🔗

honor: str

获得/失去的荣誉

member instance-attribute 🔗

member: Member

获得/失去荣誉的成员

MemberJoinEvent 🔗

Bases: GroupEvent

有一新成员加入了一特定群组

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
  • Group (annotation): 该用户加入的群组
  • Member (annotation): 关于该用户的成员实例
Source code in src/graia/ariadne/event/mirai.py
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
class MemberJoinEvent(GroupEvent):
    """有一新成员加入了一特定群组

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
        - Group (annotation): 该用户加入的群组
        - Member (annotation): 关于该用户的成员实例
    """

    type = "MemberJoinEvent"
    member: Member
    """加入的成员"""

    inviter: Optional[Member] = Field(..., alias="invitor")
    """邀请该成员的成员, 可为 None"""

    class Dispatcher(AbstractDispatcher):
        mixin = [MemberDispatcher]

        @staticmethod
        async def catch(interface: DispatcherInterface["MemberJoinEvent"]):
            if interface.name == "inviter" and generic_issubclass(Member, interface.annotation):
                return interface.event.inviter

inviter class-attribute instance-attribute 🔗

inviter: Optional[Member] = Field(..., alias='invitor')

邀请该成员的成员, 可为 None

member instance-attribute 🔗

member: Member

加入的成员

MemberJoinRequestEvent 🔗

Bases: RequestEvent, GroupEvent

有一用户向机器人作为管理员/群主的群组申请加入群组.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例

事件拓展支持

该事件的处理需要你获取原始事件实例.

  1. 同意请求: await event.accept(), 具体查看该方法所附带的说明.
  2. 拒绝请求: await event.reject(), 具体查看该方法所附带的说明.
  3. 忽略请求: await event.ignore(), 具体查看该方法所附带的说明.
  4. 拒绝并不再接受来自对方的请求: await event.rejectAndBlock(), 具体查看该方法所附带的说明.
  5. 忽略并不再接受来自对方的请求: await event.ignoreAndBlock(), 具体查看该方法所附带的说明.
Source code in src/graia/ariadne/event/mirai.py
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
class MemberJoinRequestEvent(RequestEvent, GroupEvent):
    """有一用户向机器人作为管理员/群主的群组申请加入群组.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例

    事件拓展支持:
        该事件的处理需要你获取原始事件实例.

        1. 同意请求: `await event.accept()`, 具体查看该方法所附带的说明.
        2. 拒绝请求: `await event.reject()`, 具体查看该方法所附带的说明.
        3. 忽略请求: `await event.ignore()`, 具体查看该方法所附带的说明.
        4. 拒绝并不再接受来自对方的请求: `await event.rejectAndBlock()`, 具体查看该方法所附带的说明.
        5. 忽略并不再接受来自对方的请求: `await event.ignoreAndBlock()`, 具体查看该方法所附带的说明.
    """

    type = "MemberJoinRequestEvent"

    request_id: int = Field(..., alias="eventId")
    """事件标识,响应该事件时的标识"""

    supplicant: int = Field(..., alias="fromId")
    """申请人QQ号"""

    nickname: str = Field(..., alias="nick")
    """申请人的昵称或群名片"""

    message: str
    """申请消息"""

    source_group: int = Field(..., alias="groupId")
    """申请人申请入群的群号"""

    group_name: str = Field(..., alias="groupName")
    """申请人申请入群的群名称"""

    inviter_id: Optional[int] = Field(None, alias="invitorId")
    """邀请该申请人的成员QQ号, 可为 None"""

    async def accept(self, message: str = "") -> None:
        """同意对方加入群组.

        Args:
            message (str, optional): 附带给对方的消息. 默认为 "".

        Raises:
            LookupError: 尝试上下文外处理事件.
            InvalidSession: 应用实例没准备好!

        Returns:
            None: 没有返回.
        """
        await self._operate(0, message)

    async def reject(self, message: str = "") -> None:
        """拒绝对方加入群组.

        Args:
            message (str, optional): 附带给对方的消息. 默认为 "".

        Raises:
            LookupError: 尝试上下文外处理事件.
            InvalidSession: 应用实例没准备好!

        Returns:
            None: 没有返回.
        """
        await self._operate(1, message)

    async def ignore(self, message: str = "") -> None:
        """忽略对方加入群组的请求.

        Args:
            message (str, optional): 附带给对方的消息. 默认为 "".

        Raises:
            LookupError: 尝试上下文外处理事件.
            InvalidSession: 应用实例没准备好!

        Returns:
            None: 没有返回.
        """
        await self._operate(2, message)

    async def reject_and_block(self, message: str = "") -> None:
        """拒绝对方加入群组的请求, 并不再接受来自对方加入群组的请求.

        Args:
            message (str, optional): 附带给对方的消息. 默认为 "".

        Raises:
            LookupError: 尝试上下文外处理事件.
            InvalidSession: 应用实例没准备好!

        Returns:
            None: 没有返回.
        """
        await self._operate(3, message)

    async def ignore_and_block(self, message: str = "") -> None:
        """忽略对方加入群组的请求, 并不再接受来自对方加入群组的请求.

        Args:
            message (str, optional): 附带给对方的消息. 默认为 "".

        Raises:
            LookupError: 尝试上下文外处理事件.
            InvalidSession: 应用实例没准备好!

        Returns:
            None: 没有返回.
        """
        await self._operate(4, message)

group_name class-attribute instance-attribute 🔗

group_name: str = Field(..., alias='groupName')

申请人申请入群的群名称

inviter_id class-attribute instance-attribute 🔗

inviter_id: Optional[int] = Field(None, alias='invitorId')

邀请该申请人的成员QQ号, 可为 None

message instance-attribute 🔗

message: str

申请消息

nickname class-attribute instance-attribute 🔗

nickname: str = Field(..., alias='nick')

申请人的昵称或群名片

request_id class-attribute instance-attribute 🔗

request_id: int = Field(..., alias='eventId')

事件标识,响应该事件时的标识

source_group class-attribute instance-attribute 🔗

source_group: int = Field(..., alias='groupId')

申请人申请入群的群号

supplicant class-attribute instance-attribute 🔗

supplicant: int = Field(..., alias='fromId')

申请人QQ号

accept async 🔗

accept(message: str = '') -> None

同意对方加入群组.

Parameters:

  • message (str) –

    附带给对方的消息. 默认为 "".

Raises:

  • LookupError

    尝试上下文外处理事件.

  • InvalidSession

    应用实例没准备好!

Returns:

  • None( None ) –

    没有返回.

Source code in src/graia/ariadne/event/mirai.py
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
async def accept(self, message: str = "") -> None:
    """同意对方加入群组.

    Args:
        message (str, optional): 附带给对方的消息. 默认为 "".

    Raises:
        LookupError: 尝试上下文外处理事件.
        InvalidSession: 应用实例没准备好!

    Returns:
        None: 没有返回.
    """
    await self._operate(0, message)

ignore async 🔗

ignore(message: str = '') -> None

忽略对方加入群组的请求.

Parameters:

  • message (str) –

    附带给对方的消息. 默认为 "".

Raises:

  • LookupError

    尝试上下文外处理事件.

  • InvalidSession

    应用实例没准备好!

Returns:

  • None( None ) –

    没有返回.

Source code in src/graia/ariadne/event/mirai.py
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
async def ignore(self, message: str = "") -> None:
    """忽略对方加入群组的请求.

    Args:
        message (str, optional): 附带给对方的消息. 默认为 "".

    Raises:
        LookupError: 尝试上下文外处理事件.
        InvalidSession: 应用实例没准备好!

    Returns:
        None: 没有返回.
    """
    await self._operate(2, message)

ignore_and_block async 🔗

ignore_and_block(message: str = '') -> None

忽略对方加入群组的请求, 并不再接受来自对方加入群组的请求.

Parameters:

  • message (str) –

    附带给对方的消息. 默认为 "".

Raises:

  • LookupError

    尝试上下文外处理事件.

  • InvalidSession

    应用实例没准备好!

Returns:

  • None( None ) –

    没有返回.

Source code in src/graia/ariadne/event/mirai.py
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
async def ignore_and_block(self, message: str = "") -> None:
    """忽略对方加入群组的请求, 并不再接受来自对方加入群组的请求.

    Args:
        message (str, optional): 附带给对方的消息. 默认为 "".

    Raises:
        LookupError: 尝试上下文外处理事件.
        InvalidSession: 应用实例没准备好!

    Returns:
        None: 没有返回.
    """
    await self._operate(4, message)

reject async 🔗

reject(message: str = '') -> None

拒绝对方加入群组.

Parameters:

  • message (str) –

    附带给对方的消息. 默认为 "".

Raises:

  • LookupError

    尝试上下文外处理事件.

  • InvalidSession

    应用实例没准备好!

Returns:

  • None( None ) –

    没有返回.

Source code in src/graia/ariadne/event/mirai.py
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
async def reject(self, message: str = "") -> None:
    """拒绝对方加入群组.

    Args:
        message (str, optional): 附带给对方的消息. 默认为 "".

    Raises:
        LookupError: 尝试上下文外处理事件.
        InvalidSession: 应用实例没准备好!

    Returns:
        None: 没有返回.
    """
    await self._operate(1, message)

reject_and_block async 🔗

reject_and_block(message: str = '') -> None

拒绝对方加入群组的请求, 并不再接受来自对方加入群组的请求.

Parameters:

  • message (str) –

    附带给对方的消息. 默认为 "".

Raises:

  • LookupError

    尝试上下文外处理事件.

  • InvalidSession

    应用实例没准备好!

Returns:

  • None( None ) –

    没有返回.

Source code in src/graia/ariadne/event/mirai.py
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
async def reject_and_block(self, message: str = "") -> None:
    """拒绝对方加入群组的请求, 并不再接受来自对方加入群组的请求.

    Args:
        message (str, optional): 附带给对方的消息. 默认为 "".

    Raises:
        LookupError: 尝试上下文外处理事件.
        InvalidSession: 应用实例没准备好!

    Returns:
        None: 没有返回.
    """
    await self._operate(3, message)

MemberLeaveEventKick 🔗

Bases: GroupEvent

有一群组成员被管理员/群主从群组中删除, 当 operatorNone 时, 执行者为 Bot 账号.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例 Group (annotation): 指定的群组 Member (annotation): - "target" (default, const, str): 被从群组删除的成员 - "operator" (default, const, str, optional = None): 执行了该操作的管理员/群主, 也可能是 Bot 账号.

Source code in src/graia/ariadne/event/mirai.py
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
class MemberLeaveEventKick(GroupEvent):
    """有一群组成员被管理员/群主从群组中删除, 当 `operator` 为 `None` 时, 执行者为 Bot 账号.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例
        Group (annotation): 指定的群组
        Member (annotation):
          - `"target"` (default, const, str): 被从群组删除的成员
          - `"operator"` (default, const, str, optional = None): 执行了该操作的管理员/群主, 也可能是 Bot 账号.
    """

    type = "MemberLeaveEventKick"

    member: Member
    """被从群组删除的成员"""

    operator: Optional[Member]
    """执行了该操作的管理员/群主, 也可能是 Bot 账号"""

    Dispatcher = OperatorMemberDispatcher

member instance-attribute 🔗

member: Member

被从群组删除的成员

operator instance-attribute 🔗

operator: Optional[Member]

执行了该操作的管理员/群主, 也可能是 Bot 账号

MemberLeaveEventQuit 🔗

Bases: GroupEvent

有一群组成员主动退出群组.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例 Group (annotation): 发生本事件的群组, 通常的, 在本事件发生后本群组成员数量少于之前 Member (annotation): 主动退出群组的成员

Source code in src/graia/ariadne/event/mirai.py
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
class MemberLeaveEventQuit(GroupEvent):
    """有一群组成员主动退出群组.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例
        Group (annotation): 发生本事件的群组, 通常的, 在本事件发生后本群组成员数量少于之前
        Member (annotation): 主动退出群组的成员
    """

    type = "MemberLeaveEventQuit"

    member: Member
    """主动退出群组的成员"""

    Dispatcher = MemberDispatcher

member instance-attribute 🔗

member: Member

主动退出群组的成员

MemberMuteEvent 🔗

Bases: GroupEvent

有一群组成员被管理员/群组禁言, 当 operatorNone 时为 Bot 账号操作.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例 Group (annotation): 发生该事件的群组 Member (annotation): - "target" (default, const, str): 被禁言的成员 - "operator" (default, const, str, optional = None): 该操作的执行者, 也可能是 Bot 账号.

默认返回 target.

Source code in src/graia/ariadne/event/mirai.py
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
class MemberMuteEvent(GroupEvent):
    """有一群组成员被管理员/群组禁言, 当 `operator` 为 `None` 时为 Bot 账号操作.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例
        Group (annotation): 发生该事件的群组
        Member (annotation):
          - `"target"` (default, const, str): 被禁言的成员
          - `"operator"` (default, const, str, optional = None): 该操作的执行者, 也可能是 Bot 账号.

          默认返回 `target`.
    """

    type = "MemberMuteEvent"
    duration: int = Field(..., alias="durationSeconds")
    """禁言时长, 单位为秒"""

    member: Member
    """被禁言的成员"""

    operator: Optional[Member]
    """该操作的执行者, 也可能是 Bot 账号"""

    Dispatcher = OperatorMemberDispatcher

duration class-attribute instance-attribute 🔗

duration: int = Field(..., alias='durationSeconds')

禁言时长, 单位为秒

member instance-attribute 🔗

member: Member

被禁言的成员

operator instance-attribute 🔗

operator: Optional[Member]

该操作的执行者, 也可能是 Bot 账号

MemberPermissionChangeEvent 🔗

Bases: GroupEvent

有一群组成员的权限被更改/调整, 执行者只可能是群组的群主.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例 Group (annotation): 发生该事件的群组 Member (annotation): 被调整权限的群组成员

Source code in src/graia/ariadne/event/mirai.py
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
class MemberPermissionChangeEvent(GroupEvent):
    """有一群组成员的权限被更改/调整, 执行者只可能是群组的群主.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例
        Group (annotation): 发生该事件的群组
        Member (annotation): 被调整权限的群组成员
    """

    type = "MemberPermissionChangeEvent"

    origin: MemberPerm
    """原来的权限"""

    current: MemberPerm
    """现在的权限"""

    member: Member
    """权限改动的群员的信息"""

    Dispatcher = MemberDispatcher

current instance-attribute 🔗

current: MemberPerm

现在的权限

member instance-attribute 🔗

member: Member

权限改动的群员的信息

origin instance-attribute 🔗

origin: MemberPerm

原来的权限

MemberSpecialTitleChangeEvent 🔗

Bases: GroupEvent

有一群组成员的群头衔被更改, 执行者只可能是群组的群主.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例 Group (annotation): 发生该事件的群组 Member (annotation): 被更改群头衔的群组成员

Source code in src/graia/ariadne/event/mirai.py
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
class MemberSpecialTitleChangeEvent(GroupEvent):
    """有一群组成员的群头衔被更改, 执行者只可能是群组的群主.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例
        Group (annotation): 发生该事件的群组
        Member (annotation): 被更改群头衔的群组成员
    """

    type = "MemberSpecialTitleChangeEvent"

    origin: str
    """原来的头衔"""

    current: str
    """现在的头衔"""

    member: Member
    """被更改头衔的群组成员"""

    Dispatcher = MemberDispatcher

current instance-attribute 🔗

current: str

现在的头衔

member instance-attribute 🔗

member: Member

被更改头衔的群组成员

origin instance-attribute 🔗

origin: str

原来的头衔

MemberUnmuteEvent 🔗

Bases: GroupEvent

有一群组成员被管理员/群组解除禁言, 当 operatorNone 时为 Bot 账号操作.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例 Group (annotation): 发生该事件的群组 Member (annotation): - "target" (default, const, str): 被禁言的成员 - "operator" (default, const, str, optional = None): 该操作的执行者, 可能是管理员或是群主, 也可能是 Bot 账号.

默认返回 target.

Source code in src/graia/ariadne/event/mirai.py
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
class MemberUnmuteEvent(GroupEvent):
    """有一群组成员被管理员/群组解除禁言, 当 `operator` 为 `None` 时为 Bot 账号操作.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例
        Group (annotation): 发生该事件的群组
        Member (annotation):
          - `"target"` (default, const, str): 被禁言的成员
          - `"operator"` (default, const, str, optional = None): \
              该操作的执行者, 可能是管理员或是群主, 也可能是 Bot 账号.

          默认返回 `target`.
    """

    type = "MemberUnmuteEvent"

    member: Member
    """被禁言的群员"""

    operator: Optional[Member]
    """操作执行者, 可能是管理员或是群主, 也可能是 Bot 账号"""

    Dispatcher = OperatorMemberDispatcher

member instance-attribute 🔗

member: Member

被禁言的群员

operator instance-attribute 🔗

operator: Optional[Member]

操作执行者, 可能是管理员或是群主, 也可能是 Bot 账号

NewFriendRequestEvent 🔗

Bases: RequestEvent, FriendEvent

有一用户向机器人提起好友请求.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例

事件拓展支持

该事件的处理需要你获取原始事件实例.

  1. 同意请求: await event.accept(), 具体查看该方法所附带的说明.
  2. 拒绝请求: await event.reject(), 具体查看该方法所附带的说明.
  3. 拒绝并不再接受来自对方的请求: await event.rejectAndBlock(), 具体查看该方法所附带的说明.
Source code in src/graia/ariadne/event/mirai.py
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
class NewFriendRequestEvent(RequestEvent, FriendEvent):
    """有一用户向机器人提起好友请求.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例

    事件拓展支持:
        该事件的处理需要你获取原始事件实例.

        1. 同意请求: `await event.accept()`, 具体查看该方法所附带的说明.
        2. 拒绝请求: `await event.reject()`, 具体查看该方法所附带的说明.
        3. 拒绝并不再接受来自对方的请求: `await event.rejectAndBlock()`, 具体查看该方法所附带的说明.
    """

    type = "NewFriendRequestEvent"

    request_id: int = Field(..., alias="eventId")
    """事件标识,响应该事件时的标识"""

    supplicant: int = Field(..., alias="fromId")
    """申请人QQ号"""

    nickname: str = Field(..., alias="nick")
    """申请人的昵称或群名片"""

    message: str
    """申请消息"""

    source_group: int = Field(..., alias="groupId")
    """申请人如果通过某个群添加好友, 该项为该群群号, 否则为0"""

    async def accept(self, message: str = "") -> None:
        """同意对方的加好友请求.

        Args:
            message (str, optional): 附带给对方的消息. 默认为 "".

        Raises:
            LookupError: 尝试上下文外处理事件.
            InvalidSession: 应用实例没准备好!

        Returns:
            None: 没有返回.
        """
        await self._operate(0, message)

    async def reject(self, message: str = "") -> None:
        """拒绝对方的加好友请求.

        Args:
            message (str, optional): 附带给对方的消息. 默认为 "".

        Raises:
            LookupError: 尝试上下文外处理事件.
            InvalidSession: 应用实例没准备好!

        Returns:
            None: 没有返回.
        """
        await self._operate(1, message)

    async def reject_and_block(self, message: str = "") -> None:
        """拒绝对方的加好友请求, 并不再接受来自对方的加好友请求.

        Args:
            message (str, optional): 附带给对方的消息. 默认为 "".

        Raises:
            LookupError: 尝试上下文外处理事件.
            InvalidSession: 应用实例没准备好!

        Returns:
            None: 没有返回.
        """
        await self._operate(2, message)

message instance-attribute 🔗

message: str

申请消息

nickname class-attribute instance-attribute 🔗

nickname: str = Field(..., alias='nick')

申请人的昵称或群名片

request_id class-attribute instance-attribute 🔗

request_id: int = Field(..., alias='eventId')

事件标识,响应该事件时的标识

source_group class-attribute instance-attribute 🔗

source_group: int = Field(..., alias='groupId')

申请人如果通过某个群添加好友, 该项为该群群号, 否则为0

supplicant class-attribute instance-attribute 🔗

supplicant: int = Field(..., alias='fromId')

申请人QQ号

accept async 🔗

accept(message: str = '') -> None

同意对方的加好友请求.

Parameters:

  • message (str) –

    附带给对方的消息. 默认为 "".

Raises:

  • LookupError

    尝试上下文外处理事件.

  • InvalidSession

    应用实例没准备好!

Returns:

  • None( None ) –

    没有返回.

Source code in src/graia/ariadne/event/mirai.py
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
async def accept(self, message: str = "") -> None:
    """同意对方的加好友请求.

    Args:
        message (str, optional): 附带给对方的消息. 默认为 "".

    Raises:
        LookupError: 尝试上下文外处理事件.
        InvalidSession: 应用实例没准备好!

    Returns:
        None: 没有返回.
    """
    await self._operate(0, message)

reject async 🔗

reject(message: str = '') -> None

拒绝对方的加好友请求.

Parameters:

  • message (str) –

    附带给对方的消息. 默认为 "".

Raises:

  • LookupError

    尝试上下文外处理事件.

  • InvalidSession

    应用实例没准备好!

Returns:

  • None( None ) –

    没有返回.

Source code in src/graia/ariadne/event/mirai.py
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
async def reject(self, message: str = "") -> None:
    """拒绝对方的加好友请求.

    Args:
        message (str, optional): 附带给对方的消息. 默认为 "".

    Raises:
        LookupError: 尝试上下文外处理事件.
        InvalidSession: 应用实例没准备好!

    Returns:
        None: 没有返回.
    """
    await self._operate(1, message)

reject_and_block async 🔗

reject_and_block(message: str = '') -> None

拒绝对方的加好友请求, 并不再接受来自对方的加好友请求.

Parameters:

  • message (str) –

    附带给对方的消息. 默认为 "".

Raises:

  • LookupError

    尝试上下文外处理事件.

  • InvalidSession

    应用实例没准备好!

Returns:

  • None( None ) –

    没有返回.

Source code in src/graia/ariadne/event/mirai.py
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
async def reject_and_block(self, message: str = "") -> None:
    """拒绝对方的加好友请求, 并不再接受来自对方的加好友请求.

    Args:
        message (str, optional): 附带给对方的消息. 默认为 "".

    Raises:
        LookupError: 尝试上下文外处理事件.
        InvalidSession: 应用实例没准备好!

    Returns:
        None: 没有返回.
    """
    await self._operate(2, message)

NudgeEvent 🔗

Bases: MiraiEvent

Bot 账号被某个账号在相应上下文区域进行 "戳一戳"(Nudge) 的行为.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持
  • Ariadne (annotation): 发布事件的应用实例
Source code in src/graia/ariadne/event/mirai.py
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
class NudgeEvent(MiraiEvent):
    """Bot 账号被某个账号在相应上下文区域进行 "戳一戳"(Nudge) 的行为.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        - Ariadne (annotation): 发布事件的应用实例
    """

    type: str = "NudgeEvent"

    supplicant: int = Field(..., alias="fromId")
    """动作发出者的 QQ 号"""

    target: int
    """动作目标的 QQ 号"""

    msg_action: str = Field(..., alias="action")
    """动作类型"""

    msg_suffix: str = Field(..., alias="suffix")
    """自定义动作内容"""

    subject: Union[Group, Friend, Stranger, Client, Dict[str, Any]] = Field(...)
    """事件来源上下文"""

    if not TYPE_CHECKING:

        @property
        def context_type(self) -> Literal["group", "friend", "stranger", "client"]:
            """戳一戳的位置"""
            from traceback import format_exception_only
            from warnings import warn

            from loguru import logger

            warning = DeprecationWarning(  # FIXME: deprecated
                "NudgeEvent.context_type is deprecated in Ariadne 0.11 "
                "and scheduled for removal in Ariadne 0.12, "
                "use NudgeEvent.subject instead."
            )
            warn(warning, stacklevel=2)
            logger.opt(depth=1).warning("".join(format_exception_only(type(warning), warning)).strip())

            if isinstance(self.subject, Group):
                return "group"
            elif isinstance(self.subject, Friend):
                return "friend"
            elif isinstance(self.subject, Stranger):
                return "stranger"
            elif isinstance(self.subject, Client):
                return "client"
            else:
                return self.subject["kind"]

        @property
        def origin_subject_info(self) -> Dict[str, Any]:
            """原始来源"""
            from traceback import format_exception_only
            from warnings import warn

            from loguru import logger

            warning = DeprecationWarning(  # FIXME: deprecated
                "NudgeEvent.origin_subject_info is deprecated in Ariadne 0.11 "
                "and scheduled for removal in Ariadne 0.12, "
                "use NudgeEvent.subject instead."
            )
            warn(warning, stacklevel=2)
            logger.opt(depth=1).warning("".join(format_exception_only(type(warning), warning)).strip())
            return self.subject if isinstance(self.subject, dict) else self.subject.dict()

        @property
        def friend_id(self) -> Optional[int]:
            """好友 QQ 号,如果为好友间戳一戳"""
            from traceback import format_exception_only
            from warnings import warn

            from loguru import logger

            warning = DeprecationWarning(  # FIXME: deprecated
                "NudgeEvent.friend_id is deprecated in Ariadne 0.11 "
                "and scheduled for removal in Ariadne 0.12, "
                "use NudgeEvent.subject instead."
            )
            warn(warning, stacklevel=2)
            logger.opt(depth=1).warning("".join(format_exception_only(type(warning), warning)).strip())
            if isinstance(self.subject, Friend):
                return int(self.subject)
            elif isinstance(self.subject, dict) and self.subject["kind"] == "Friend":
                return self.subject["id"]

        @property
        def group_id(self) -> Optional[int]:
            """群组 QQ 号,如果为群内戳一戳"""
            from traceback import format_exception_only
            from warnings import warn

            from loguru import logger

            warning = DeprecationWarning(  # FIXME: deprecated
                "NudgeEvent.group_id is deprecated in Ariadne 0.11 "
                "and scheduled for removal in Ariadne 0.12, "
                "use NudgeEvent.subject instead."
            )
            warn(warning, stacklevel=2)
            logger.opt(depth=1).warning("".join(format_exception_only(type(warning), warning)).strip())
            if isinstance(self.subject, Group):
                return int(self.subject)
            elif isinstance(self.subject, dict) and self.subject["kind"] == "Group":
                return self.subject["id"]

    class Dispatcher(AbstractDispatcher):
        @staticmethod
        async def catch(interface: DispatcherInterface):
            from ..app import Ariadne

            event: NudgeEvent = interface.event

            if isinstance(event.subject, dict):
                app = Ariadne.current()
                subject = None

                if event.subject["kind"] == "Group":
                    subject = await app.get_group(event.subject["id"])
                elif event.subject["kind"] == "Friend":
                    subject = await app.get_friend(event.subject["id"])

                if subject is not None:
                    event.subject = subject

                return subject

            elif generic_isinstance(event.subject, interface.annotation):
                return event.subject

context_type property 🔗

context_type: Literal['group', 'friend', 'stranger', 'client']

戳一戳的位置

friend_id property 🔗

friend_id: Optional[int]

好友 QQ 号,如果为好友间戳一戳

group_id property 🔗

group_id: Optional[int]

群组 QQ 号,如果为群内戳一戳

msg_action class-attribute instance-attribute 🔗

msg_action: str = Field(..., alias='action')

动作类型

msg_suffix class-attribute instance-attribute 🔗

msg_suffix: str = Field(..., alias='suffix')

自定义动作内容

origin_subject_info property 🔗

origin_subject_info: Dict[str, Any]

原始来源

subject class-attribute instance-attribute 🔗

subject: Union[Group, Friend, Stranger, Client, Dict[str, Any]] = Field(...)

事件来源上下文

supplicant class-attribute instance-attribute 🔗

supplicant: int = Field(..., alias='fromId')

动作发出者的 QQ 号

target instance-attribute 🔗

target: int

动作目标的 QQ 号

OtherClientOfflineEvent 🔗

Bases: MiraiEvent

Bot 账号在其他客户端下线.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例

Source code in src/graia/ariadne/event/mirai.py
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
class OtherClientOfflineEvent(MiraiEvent):
    """Bot 账号在其他客户端下线.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例
    """

    type = "OtherClientOfflineEvent"

    client: Client
    """下线的客户端"""

client instance-attribute 🔗

client: Client

下线的客户端

OtherClientOnlineEvent 🔗

Bases: MiraiEvent

Bot 账号在其他客户端上线.

Tip

建议监听时直接获取事件实例以获取更多信息!

提供的额外注解支持

Ariadne (annotation): 发布事件的应用实例

Source code in src/graia/ariadne/event/mirai.py
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
class OtherClientOnlineEvent(MiraiEvent):
    """Bot 账号在其他客户端上线.

    Tip:
        建议监听时直接获取事件实例以获取更多信息!

    提供的额外注解支持:
        Ariadne (annotation): 发布事件的应用实例
    """

    type = "OtherClientOnlineEvent"

    client: Client
    """上线的客户端"""

    kind: Optional[ClientKind]
    """客户端类型"""

client instance-attribute 🔗

client: Client

上线的客户端

kind instance-attribute 🔗

kind: Optional[ClientKind]

客户端类型

RequestEvent 🔗

Bases: MiraiEvent

各种申请事件的基类.

Source code in src/graia/ariadne/event/mirai.py
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
class RequestEvent(MiraiEvent):
    """各种申请事件的基类."""

    type: str

    request_id: int = Field(..., alias="eventId")
    """事件标识,响应该事件时的标识"""

    supplicant: int = Field(..., alias="fromId")
    """申请人QQ号"""

    source_group: int = Field(..., alias="groupId")

    nickname: str = Field(..., alias="nick")
    """申请人的昵称或群名片"""

    message: str
    """申请消息"""

    async def _operate(self, operation: int, msg: str = "") -> None:
        """内部接口, 用于内部便捷发送相应操作."""
        from ..app import Ariadne

        api_route = self.type[0].lower() + self.type[1:]
        await Ariadne.current().connection.call(
            f"resp_{api_route}",
            CallMethod.POST,
            {
                "eventId": self.request_id,
                "fromId": self.supplicant,
                "groupId": self.source_group,
                "operate": operation,
                "message": msg,
            },
        )

message instance-attribute 🔗

message: str

申请消息

nickname class-attribute instance-attribute 🔗

nickname: str = Field(..., alias='nick')

申请人的昵称或群名片

request_id class-attribute instance-attribute 🔗

request_id: int = Field(..., alias='eventId')

事件标识,响应该事件时的标识

supplicant class-attribute instance-attribute 🔗

supplicant: int = Field(..., alias='fromId')

申请人QQ号