NoneBot.adapters.mirai 模块 | NoneBot
Description: 跨平台 Python 异步 QQ 机器人框架

# # NoneBot.adapters.mirai 模块

## # Mirai-API-HTTP 协议适配

协议详情请看: mirai-api-http 文档
(opens new window)

TIP

该Adapter目前仍然处在早期实验性阶段, 并未经过充分测试

如果你在使用过程中遇到了任何问题, 请前往 Issue页面
(opens new window) 为我们提供反馈

WARNING

Mirai-API-HTTP 的适配器以 AGPLv3许可
(opens new window) 单独开源

这意味着在使用该适配器时需要 以该许可开源您的完整程序代码

# # NoneBot.adapters.mirai.config 模块

## # class `Config`

Mirai 配置类

- 必填

  - `auth_key` / `mirai_auth_key`: mirai-api-http 的 auth_key

  - `mirai_host`: mirai-api-http 的地址

  - `mirai_port`: mirai-api-http 的端口

# # NoneBot.adapters.mirai.bot 模块

## # class `SessionManager`

基类：`object`

Bot会话管理器, 提供API主动调用接口

### # async `post(path, *, params=None)`

- 说明

  以POST方式主动提交API请求

- 参数

  - `path: str`: 对应API路径

  - `params: Optional[Dict[str, Any]]`: 请求参数 (无需sessionKey)

- 返回

  - `Dict[str, Any]`: API 返回值

### # async `request(path, *, params=None)`

- 说明

  以GET方式主动提交API请求

- 参数

  - `path: str`: 对应API路径

  - `params: Optional[Dict[str, Any]]`: 请求参数 (无需sessionKey)

### # async `upload(path, *, params)`

- 说明

  以表单(`multipart/form-data`)形式主动提交API请求

- 参数

  - `path: str`: 对应API路径

  - `params: Dict[str, Any]`: 请求参数 (无需sessionKey)

## # class `Bot`

基类：`nonebot.adapters.Bot`

mirai-api-http 协议 Bot 适配。

WARNING

API中为了使代码更加整洁, 我们采用了与PEP8相符的命名规则取代Mirai原有的驼峰命名

部分字段可能与文档在符号上不一致

### # property `api`

返回该Bot对象的会话管理实例以提供API主动调用

### # async `call_api(api, **data)`

WARNING

由于Mirai的HTTP API特殊性, 该API暂时无法实现

TIP

你可以使用 `MiraiBot.api` 中提供的调用方法来代替

### # `send(event, message, at_sender=False)`

- 说明

  根据 `event` 向触发事件的主体发送信息

- 参数

  - `event: Event`: Event对象

  - `message: Union[MessageChain, MessageSegment, str]`: 要发送的消息

  - `at_sender: bool`: 是否 @ 事件主体

### # `send_friend_message(target, message_chain)`

- 说明

  使用此方法向指定好友发送消息

- 参数

  - `target: int`: 发送消息目标好友的 QQ 号

  - `message_chain: MessageChain`: 消息链，是一个消息对象构成的数组

### # `send_temp_message(qq, group, message_chain)`

- 说明

  使用此方法向临时会话对象发送消息

- 参数

  - `qq: int`: 临时会话对象 QQ 号

  - `group: int`: 临时会话群号

  - `message_chain: MessageChain`: 消息链，是一个消息对象构成的数组

### # `send_group_message(group, message_chain, quote=None)`

- 说明

  使用此方法向指定群发送消息

- 参数

  - `group: int`: 发送消息目标群的群号

  - `message_chain: MessageChain`: 消息链，是一个消息对象构成的数组

  - `quote: Optional[int]`: 引用一条消息的 message_id 进行回复

### # `recall(target)`

- 说明

  使用此方法撤回指定消息。对于bot发送的消息，有2分钟时间限制。对于撤回群聊中群员的消息，需要有相应权限

- 参数

  - `target: int`: 需要撤回的消息的message_id

### # `send_image_message(target, qq, group, urls)`

- 说明

  使用此方法向指定对象（群或好友）发送图片消息 除非需要通过此手段获取image_id，否则不推荐使用该接口

  > 当qq和group同时存在时，表示发送临时会话图片，qq为临时会话对象QQ号，group为临时会话发起的群号

- 参数

  - `target: int`: 发送对象的QQ号或群号，可能存在歧义

  - `qq: int`: 发送对象的QQ号

  - `group: int`: 发送对象的群号

  - `urls: List[str]`: 是一个url字符串构成的数组

- 返回

  - `List[str]`: 一个包含图片imageId的数组

### # `upload_image(type, img)`

- 说明

  使用此方法上传图片文件至服务器并返回Image_id

- 参数

  - `type: str`: "friend" 或 "group" 或 "temp"

  - `img: BytesIO`: 图片的BytesIO对象

### # `upload_voice(type, voice)`

- 说明

  使用此方法上传语音文件至服务器并返回voice_id

- 参数

  - `type: str`: 当前仅支持 "group"

  - `voice: BytesIO`: 语音的BytesIO对象

### # `fetch_message(count=10)`

- 说明

  使用此方法获取bot接收到的最老消息和最老各类事件 (会从MiraiApiHttp消息记录中删除)

- 参数

  - `count: int`: 获取消息和事件的数量

### # `fetch_latest_message(count=10)`

- 说明

  使用此方法获取bot接收到的最新消息和最新各类事件 (会从MiraiApiHttp消息记录中删除)

- 参数

  - `count: int`: 获取消息和事件的数量

### # `peek_message(count=10)`

- 说明

  使用此方法获取bot接收到的最老消息和最老各类事件 (不会从MiraiApiHttp消息记录中删除)

- 参数

  - `count: int`: 获取消息和事件的数量

### # `peek_latest_message(count=10)`

- 说明

  使用此方法获取bot接收到的最新消息和最新各类事件 (不会从MiraiApiHttp消息记录中删除)

- 参数

  - `count: int`: 获取消息和事件的数量

### # `messsage_from_id(id)`

- 说明

  通过messageId获取一条被缓存的消息 使用此方法获取bot接收到的消息和各类事件

- 参数

  - `id: int`: 获取消息的message_id

### # `count_message()`

- 说明

  使用此方法获取bot接收并缓存的消息总数，注意不包含被删除的

### # `friend_list()`

- 说明

  使用此方法获取bot的好友列表

- 返回

  - `List[Dict[str, Any]]`: 返回的好友列表数据

### # `group_list()`

- 说明

  使用此方法获取bot的群列表

- 返回

  - `List[Dict[str, Any]]`: 返回的群列表数据

### # `member_list(target)`

- 说明

  使用此方法获取bot指定群种的成员列表

- 参数

  - `target: int`: 指定群的群号

- 返回

  - `List[Dict[str, Any]]`: 返回的群成员列表数据

### # `mute(target, member_id, time)`

- 说明

  使用此方法指定群禁言指定群员（需要有相关权限）

- 参数

  - `target: int`: 指定群的群号

  - `member_id: int`: 指定群员QQ号

  - `time: int`: 禁言时长，单位为秒，最多30天

### # `unmute(target, member_id)`

- 说明

  使用此方法指定群解除群成员禁言（需要有相关权限）

- 参数

  - `target: int`: 指定群的群号

  - `member_id: int`: 指定群员QQ号

### # `kick(target, member_id, msg)`

- 说明

  使用此方法移除指定群成员（需要有相关权限）

- 参数

  - `target: int`: 指定群的群号

  - `member_id: int`: 指定群员QQ号

  - `msg: str`: 信息

### # `quit(target)`

- 说明

  使用此方法使Bot退出群聊

- 参数

  - `target: int`: 退出的群号

### # `mute_all(target)`

- 说明

  使用此方法令指定群进行全体禁言（需要有相关权限）

- 参数

  - `target: int`: 指定群的群号

### # `unmute_all(target)`

- 说明

  使用此方法令指定群解除全体禁言（需要有相关权限）

- 参数

  - `target: int`: 指定群的群号

### # `group_config(target)`

- 说明

  使用此方法获取群设置

- 参数

  - `target: int`: 指定群的群号

- 返回

    {
        "name": "群名称",
        "announcement": "群公告",
        "confessTalk": true,
        "allowMemberInvite": true,
        "autoApprove": true,
        "anonymousChat": true
    }

1
2
3
4
5
6
7
8

### # `modify_group_config(target, config)`

- 说明

  使用此方法修改群设置（需要有相关权限）

- 参数

  - `target: int`: 指定群的群号

  - `config: Dict[str, Any]`: 群设置, 格式见 `group_config` 的返回值

### # `member_info(target, member_id)`

- 说明

  使用此方法获取群员资料

- 参数

  - `target: int`: 指定群的群号

  - `member_id: int`: 群员QQ号

- 返回

    {
        "name": "群名片",
        "specialTitle": "群头衔"
    }

1
2
3
4

### # `modify_member_info(target, member_id, info)`

- 说明

  使用此方法修改群员资料（需要有相关权限）

- 参数

  - `target: int`: 指定群的群号

  - `member_id: int`: 群员QQ号

  - `info: Dict[str, Any]`: 群员资料, 格式见 `member_info` 的返回值

# # NoneBot.adapters.mirai.bot_ws 模块

## # class `WebsocketBot`

基类：`nonebot.adapters.mirai.bot.Bot`

mirai-api-http 正向 Websocket 协议 Bot 适配。

### # classmethod `register(driver, config, qq)`

- 说明

  注册该Adapter

- 参数

  - `driver: Driver`: 程序所使用的``Driver``

  - `config: Config`: 程序配置对象

  - `qq: int`: 要使用的Bot的QQ号 注意: 在使用正向Websocket时必须指定该值!

# # NoneBot.adapters.mirai.message 模块

## # class `MessageType`

基类：`str`, `enum.Enum`

消息类型枚举类

## # class `MessageSegment`

基类：`nonebot.adapters.MessageSegment`

CQHTTP 协议 MessageSegment 适配。具体方法参考 mirai-api-http 消息类型
(opens new window)

### # `as_dict()`

导出可以被正常json序列化的结构体

### # classmethod `quote(id, group_id, sender_id, target_id, origin)`

- 说明

  生成回复引用消息段

- 参数

  - `id: int`: 被引用回复的原消息的message_id

  - `group_id: int`: 被引用回复的原消息所接收的群号，当为好友消息时为0

  - `sender_id: int`: 被引用回复的原消息的发送者的QQ号

  - `target_id: int`: 被引用回复的原消息的接收者者的QQ号（或群号）

  - `origin: MessageChain`: 被引用回复的原消息的消息链对象

### # classmethod `at(target)`

- 说明

  @某个人

- 参数

  - `target: int`: 群员QQ号

### # classmethod `at_all()`

- 说明

  @全体成员

### # classmethod `face(face_id=None, name=None)`

- 说明

  发送QQ表情

- 参数

  - `face_id: Optional[int]`: QQ表情编号，可选，优先高于name

  - `name: Optional[str]`: QQ表情拼音，可选

### # classmethod `plain(text)`

- 说明

  纯文本消息

- 参数

  - `text: str`: 文字消息

### # classmethod `image(image_id=None, url=None, path=None)`

- 说明

  图片消息

- 参数

  - `image_id: Optional[str]`: 图片的image_id，群图片与好友图片格式不同。不为空时将忽略url属性

  - `url: Optional[str]`: 图片的URL，发送时可作网络图片的链接

  - `path: Optional[str]`: 图片的路径，发送本地图片

### # classmethod `flash_image(image_id=None, url=None, path=None)`

- 说明

  闪照消息

- 参数

  同 `image`

### # classmethod `voice(voice_id=None, url=None, path=None)`

- 说明

  语音消息

- 参数

  - `voice_id: Optional[str]`: 语音的voice_id，不为空时将忽略url属性

  - `url: Optional[str]`: 语音的URL，发送时可作网络语音的链接

  - `path: Optional[str]`: 语音的路径，发送本地语音

### # classmethod `xml(xml)`

- 说明

  XML消息

- 参数

  - `xml: str`: XML文本

### # classmethod `json(json)`

- 说明

  Json消息

- 参数

  - `json: str`: Json文本

### # classmethod `app(content)`

- 说明

  应用程序消息

- 参数

  - `content: str`: 内容

### # classmethod `poke(name)`

- 说明

  戳一戳消息

- 参数

  - `name: str`: 戳一戳的类型

    - `Poke`: 戳一戳

    - `ShowLove`: 比心

    - `Like`: 点赞

    - `Heartbroken`: 心碎

    - `SixSixSix`: 666

    - `FangDaZhao`: 放大招

## # class `MessageChain`

基类：`nonebot.adapters.Message`

Mirai 协议 Message 适配

由于Mirai协议的Message实现较为特殊, 故使用MessageChain命名

### # `reduce()`

- 说明

  忽略为空的消息段, 合并相邻的纯文本消息段

### # `export()`

导出为可以被正常json序列化的数组

### # `extract_first(*type)`

- 说明

  弹出该消息链的第一个消息

- 参数

  - *type: MessageType: 指定的消息类型, 当指定后如类型不匹配不弹出

# # NoneBot.adapters.mirai.utils 模块

## # exception `ActionFailed`

基类：`nonebot.exception.ActionFailed`

- 说明

  API 请求成功返回数据，但 API 操作失败。

## # exception `InvalidArgument`

基类：`nonebot.exception.AdapterException`

- 说明

  调用API的参数出错

## # `catch_network_error(function)`

- 说明

  捕捉函数抛出的httpx网络异常并释放 `NetworkError` 异常

  处理返回数据, 在code不为0时释放 `ActionFailed` 异常

WARNING

此装饰器只支持使用了httpx的异步函数

## # `argument_validation(function)`

- 说明

  通过函数签名中的类型注解来对传入参数进行运行时校验

  会在参数出错时释放 `InvalidArgument` 异常

# # NoneBot.adapters.mirai.event 模块

WARNING

事件中为了使代码更加整洁, 我们采用了与PEP8相符的命名规则取代Mirai原有的驼峰命名

部分字段可能与文档在符号上不一致

## # class `Event`

基类：`nonebot.adapters.Event`

mirai-api-http 协议事件，字段与 mirai-api-http 一致。各事件字段参考 mirai-api-http 事件类型
(opens new window)

### # classmethod `new(data)`

此事件类的工厂函数, 能够通过事件数据选择合适的子类进行序列化

### # `normalize_dict(**kwargs)`

返回可以被json正常反序列化的结构体

## # class `UserPermission`

基类：`str`, `enum.Enum`

- 说明

用户权限枚举类

> - `OWNER`: 群主

> - `ADMINISTRATOR`: 群管理

> - `MEMBER`: 普通群成员

## # class `MessageEvent`

基类：`nonebot.adapters.mirai.event.base.Event`

消息事件基类

## # class `GroupMessage`

基类：`nonebot.adapters.mirai.event.message.MessageEvent`

群消息事件

## # class `FriendMessage`

基类：`nonebot.adapters.mirai.event.message.MessageEvent`

好友消息事件

## # class `TempMessage`

基类：`nonebot.adapters.mirai.event.message.MessageEvent`

临时会话消息事件

## # class `NoticeEvent`

基类：`nonebot.adapters.mirai.event.base.Event`

通知事件基类

## # class `MuteEvent`

基类：`nonebot.adapters.mirai.event.notice.NoticeEvent`

禁言类事件基类

## # class `BotMuteEvent`

基类：`nonebot.adapters.mirai.event.notice.MuteEvent`

Bot被禁言

## # class `BotUnmuteEvent`

基类：`nonebot.adapters.mirai.event.notice.MuteEvent`

Bot被取消禁言

## # class `MemberMuteEvent`

基类：`nonebot.adapters.mirai.event.notice.MuteEvent`

群成员被禁言事件（该成员不是Bot）

## # class `MemberUnmuteEvent`

基类：`nonebot.adapters.mirai.event.notice.MuteEvent`

群成员被取消禁言事件（该成员不是Bot）

## # class `BotJoinGroupEvent`

基类：`nonebot.adapters.mirai.event.notice.NoticeEvent`

Bot加入了一个新群

## # class `BotLeaveEventActive`

基类：`nonebot.adapters.mirai.event.notice.BotJoinGroupEvent`

Bot主动退出一个群

## # class `BotLeaveEventKick`

基类：`nonebot.adapters.mirai.event.notice.BotJoinGroupEvent`

Bot被踢出一个群

## # class `MemberJoinEvent`

基类：`nonebot.adapters.mirai.event.notice.NoticeEvent`

新人入群的事件

## # class `MemberLeaveEventKick`

基类：`nonebot.adapters.mirai.event.notice.MemberJoinEvent`

成员被踢出群（该成员不是Bot）

## # class `MemberLeaveEventQuit`

基类：`nonebot.adapters.mirai.event.notice.MemberJoinEvent`

成员主动离群（该成员不是Bot）

## # class `FriendRecallEvent`

基类：`nonebot.adapters.mirai.event.notice.NoticeEvent`

好友消息撤回

## # class `GroupRecallEvent`

基类：`nonebot.adapters.mirai.event.notice.FriendRecallEvent`

群消息撤回

## # class `GroupStateChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.NoticeEvent`

群变化事件基类

## # class `GroupNameChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.GroupStateChangeEvent`

某个群名改变

## # class `GroupEntranceAnnouncementChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.GroupStateChangeEvent`

某群入群公告改变

## # class `GroupMuteAllEvent`

基类：`nonebot.adapters.mirai.event.notice.GroupStateChangeEvent`

全员禁言

## # class `GroupAllowAnonymousChatEvent`

基类：`nonebot.adapters.mirai.event.notice.GroupStateChangeEvent`

匿名聊天

## # class `GroupAllowConfessTalkEvent`

基类：`nonebot.adapters.mirai.event.notice.GroupStateChangeEvent`

坦白说

## # class `GroupAllowMemberInviteEvent`

基类：`nonebot.adapters.mirai.event.notice.GroupStateChangeEvent`

允许群员邀请好友加群

## # class `MemberStateChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.NoticeEvent`

群成员变化事件基类

## # class `MemberCardChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.MemberStateChangeEvent`

群名片改动

## # class `MemberSpecialTitleChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.MemberStateChangeEvent`

群头衔改动（只有群主有操作限权）

## # class `BotGroupPermissionChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.MemberStateChangeEvent`

Bot在群里的权限被改变

## # class `MemberPermissionChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.MemberStateChangeEvent`

成员权限改变的事件（该成员不是Bot）

## # class `RequestEvent`

基类：`nonebot.adapters.mirai.event.base.Event`

请求事件基类

## # class `NewFriendRequestEvent`

基类：`nonebot.adapters.mirai.event.request.RequestEvent`

添加好友申请

### # async `approve(bot)`

- 说明

  通过此人的好友申请

- 参数

  - `bot: Bot`: 当前的 `Bot` 对象

### # async `reject(bot, operate=1, message='')`

- 说明

  拒绝此人的好友申请

- 参数

  - `bot: Bot`: 当前的 `Bot` 对象

  - `operate: Literal[1, 2]`: 响应的操作类型

    - `1`: 拒绝添加好友

    - `2`: 拒绝添加好友并添加黑名单，不再接收该用户的好友申请

  - `message: str`: 回复的信息

## # class `MemberJoinRequestEvent`

基类：`nonebot.adapters.mirai.event.request.RequestEvent`

用户入群申请（Bot需要有管理员权限）

### # async `approve(bot)`

- 说明

  通过此人的加群申请

- 参数

  - `bot: Bot`: 当前的 `Bot` 对象

### # async `reject(bot, operate=1, message='')`

- 说明

  拒绝(忽略)此人的加群申请

- 参数

  - `bot: Bot`: 当前的 `Bot` 对象

  - `operate: Literal[1, 2, 3, 4]`: 响应的操作类型

    - `1`: 拒绝入群

    - `2`: 忽略请求

    - `3`: 拒绝入群并添加黑名单，不再接收该用户的入群申请

    - `4`: 忽略入群并添加黑名单，不再接收该用户的入群申请

  - `message: str`: 回复的信息

## # class `BotInvitedJoinGroupRequestEvent`

基类：`nonebot.adapters.mirai.event.request.RequestEvent`

Bot被邀请入群申请

### # async `approve(bot)`

- 说明

  通过这份被邀请入群申请

- 参数

  - `bot: Bot`: 当前的 `Bot` 对象

### # async `reject(bot, message='')`

- 说明

  拒绝这份被邀请入群申请

- 参数

  - `bot: Bot`: 当前的 `Bot` 对象

  - `message: str`: 邀请消息

# # NoneBot.adapters.mirai.event.base 模块

## # class `UserPermission`

基类：`str`, `enum.Enum`

- 说明

用户权限枚举类

> - `OWNER`: 群主

> - `ADMINISTRATOR`: 群管理

> - `MEMBER`: 普通群成员

## # class `Event`

基类：`nonebot.adapters.Event`

mirai-api-http 协议事件，字段与 mirai-api-http 一致。各事件字段参考 mirai-api-http 事件类型
(opens new window)

### # classmethod `new(data)`

此事件类的工厂函数, 能够通过事件数据选择合适的子类进行序列化

### # `normalize_dict(**kwargs)`

返回可以被json正常反序列化的结构体

# # NoneBot.adapters.mirai.event.meta 模块

## # class `MetaEvent`

基类：`nonebot.adapters.mirai.event.base.Event`

元事件基类

## # class `BotOnlineEvent`

基类：`nonebot.adapters.mirai.event.meta.MetaEvent`

Bot登录成功

## # class `BotOfflineEventActive`

基类：`nonebot.adapters.mirai.event.meta.MetaEvent`

Bot主动离线

## # class `BotOfflineEventForce`

基类：`nonebot.adapters.mirai.event.meta.MetaEvent`

Bot被挤下线

## # class `BotOfflineEventDropped`

基类：`nonebot.adapters.mirai.event.meta.MetaEvent`

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

## # class `BotReloginEvent`

基类：`nonebot.adapters.mirai.event.meta.MetaEvent`

Bot主动重新登录

# # NoneBot.adapters.mirai.event.message 模块

## # class `MessageEvent`

基类：`nonebot.adapters.mirai.event.base.Event`

消息事件基类

## # class `GroupMessage`

基类：`nonebot.adapters.mirai.event.message.MessageEvent`

群消息事件

## # class `FriendMessage`

基类：`nonebot.adapters.mirai.event.message.MessageEvent`

好友消息事件

## # class `TempMessage`

基类：`nonebot.adapters.mirai.event.message.MessageEvent`

临时会话消息事件

# # NoneBot.adapters.mirai.event.notice 模块

## # class `NoticeEvent`

基类：`nonebot.adapters.mirai.event.base.Event`

通知事件基类

## # class `MuteEvent`

基类：`nonebot.adapters.mirai.event.notice.NoticeEvent`

禁言类事件基类

## # class `BotMuteEvent`

基类：`nonebot.adapters.mirai.event.notice.MuteEvent`

Bot被禁言

## # class `BotUnmuteEvent`

基类：`nonebot.adapters.mirai.event.notice.MuteEvent`

Bot被取消禁言

## # class `MemberMuteEvent`

基类：`nonebot.adapters.mirai.event.notice.MuteEvent`

群成员被禁言事件（该成员不是Bot）

## # class `MemberUnmuteEvent`

基类：`nonebot.adapters.mirai.event.notice.MuteEvent`

群成员被取消禁言事件（该成员不是Bot）

## # class `BotJoinGroupEvent`

基类：`nonebot.adapters.mirai.event.notice.NoticeEvent`

Bot加入了一个新群

## # class `BotLeaveEventActive`

基类：`nonebot.adapters.mirai.event.notice.BotJoinGroupEvent`

Bot主动退出一个群

## # class `BotLeaveEventKick`

基类：`nonebot.adapters.mirai.event.notice.BotJoinGroupEvent`

Bot被踢出一个群

## # class `MemberJoinEvent`

基类：`nonebot.adapters.mirai.event.notice.NoticeEvent`

新人入群的事件

## # class `MemberLeaveEventKick`

基类：`nonebot.adapters.mirai.event.notice.MemberJoinEvent`

成员被踢出群（该成员不是Bot）

## # class `MemberLeaveEventQuit`

基类：`nonebot.adapters.mirai.event.notice.MemberJoinEvent`

成员主动离群（该成员不是Bot）

## # class `FriendRecallEvent`

基类：`nonebot.adapters.mirai.event.notice.NoticeEvent`

好友消息撤回

## # class `GroupRecallEvent`

基类：`nonebot.adapters.mirai.event.notice.FriendRecallEvent`

群消息撤回

## # class `GroupStateChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.NoticeEvent`

群变化事件基类

## # class `GroupNameChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.GroupStateChangeEvent`

某个群名改变

## # class `GroupEntranceAnnouncementChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.GroupStateChangeEvent`

某群入群公告改变

## # class `GroupMuteAllEvent`

基类：`nonebot.adapters.mirai.event.notice.GroupStateChangeEvent`

全员禁言

## # class `GroupAllowAnonymousChatEvent`

基类：`nonebot.adapters.mirai.event.notice.GroupStateChangeEvent`

匿名聊天

## # class `GroupAllowConfessTalkEvent`

基类：`nonebot.adapters.mirai.event.notice.GroupStateChangeEvent`

坦白说

## # class `GroupAllowMemberInviteEvent`

基类：`nonebot.adapters.mirai.event.notice.GroupStateChangeEvent`

允许群员邀请好友加群

## # class `MemberStateChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.NoticeEvent`

群成员变化事件基类

## # class `MemberCardChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.MemberStateChangeEvent`

群名片改动

## # class `MemberSpecialTitleChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.MemberStateChangeEvent`

群头衔改动（只有群主有操作限权）

## # class `BotGroupPermissionChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.MemberStateChangeEvent`

Bot在群里的权限被改变

## # class `MemberPermissionChangeEvent`

基类：`nonebot.adapters.mirai.event.notice.MemberStateChangeEvent`

成员权限改变的事件（该成员不是Bot）

# # NoneBot.adapters.mirai.event.request 模块

## # class `RequestEvent`

基类：`nonebot.adapters.mirai.event.base.Event`

请求事件基类

## # class `NewFriendRequestEvent`

基类：`nonebot.adapters.mirai.event.request.RequestEvent`

添加好友申请

### # async `approve(bot)`

- 说明

  通过此人的好友申请

- 参数

  - `bot: Bot`: 当前的 `Bot` 对象

### # async `reject(bot, operate=1, message='')`

- 说明

  拒绝此人的好友申请

- 参数

  - `bot: Bot`: 当前的 `Bot` 对象

  - `operate: Literal[1, 2]`: 响应的操作类型

    - `1`: 拒绝添加好友

    - `2`: 拒绝添加好友并添加黑名单，不再接收该用户的好友申请

  - `message: str`: 回复的信息

## # class `MemberJoinRequestEvent`

基类：`nonebot.adapters.mirai.event.request.RequestEvent`

用户入群申请（Bot需要有管理员权限）

### # async `approve(bot)`

- 说明

  通过此人的加群申请

- 参数

  - `bot: Bot`: 当前的 `Bot` 对象

### # async `reject(bot, operate=1, message='')`

- 说明

  拒绝(忽略)此人的加群申请

- 参数

  - `bot: Bot`: 当前的 `Bot` 对象

  - `operate: Literal[1, 2, 3, 4]`: 响应的操作类型

    - `1`: 拒绝入群

    - `2`: 忽略请求

    - `3`: 拒绝入群并添加黑名单，不再接收该用户的入群申请

    - `4`: 忽略入群并添加黑名单，不再接收该用户的入群申请

  - `message: str`: 回复的信息

## # class `BotInvitedJoinGroupRequestEvent`

基类：`nonebot.adapters.mirai.event.request.RequestEvent`

Bot被邀请入群申请

### # async `approve(bot)`

- 说明

  通过这份被邀请入群申请

- 参数

  - `bot: Bot`: 当前的 `Bot` 对象

### # async `reject(bot, message='')`

- 说明

  拒绝这份被邀请入群申请

- 参数

  - `bot: Bot`: 当前的 `Bot` 对象

  - `message: str`: 邀请消息

Contents

- Mirai-API-HTTP 协议适配
- class Config
- class SessionManager
  - async post(path, *, params=None)
  - async request(path, *, params=None)
  - async upload(path, *, params)
- class Bot
  - property api
  - async call_api(api, **data)
  - send(event, message, at_sender=False)
  - send_friend_message(target, message_chain)
  - send_temp_message(qq, group, message_chain)
  - send_group_message(group, message_chain, quote=None)
  - recall(target)
  - send_image_message(target, qq, group, urls)
  - upload_image(type, img)
  - upload_voice(type, voice)
  - fetch_message(count=10)
  - fetch_latest_message(count=10)
  - peek_message(count=10)
  - peek_latest_message(count=10)
  - messsage_from_id(id)
  - count_message()
  - friend_list()
  - group_list()
  - member_list(target)
  - mute(target, member_id, time)
  - unmute(target, member_id)
  - kick(target, member_id, msg)
  - quit(target)
  - mute_all(target)
  - unmute_all(target)
  - group_config(target)
  - modify_group_config(target, config)
  - member_info(target, member_id)
  - modify_member_info(target, member_id, info)
- class WebsocketBot
  - classmethod register(driver, config, qq)
- class MessageType
- class MessageSegment
  - as_dict()
  - classmethod quote(id, group_id, sender_id, target_id, origin)
  - classmethod at(target)
  - classmethod at_all()
  - classmethod face(face_id=None, name=None)
  - classmethod plain(text)
  - classmethod image(image_id=None, url=None, path=None)
  - classmethod flash_image(image_id=None, url=None, path=None)
  - classmethod voice(voice_id=None, url=None, path=None)
  - classmethod xml(xml)
  - classmethod json(json)
  - classmethod app(content)
  - classmethod poke(name)
- class MessageChain
  - reduce()
  - export()
  - extract_first(*type)
- exception ActionFailed
- exception InvalidArgument
- catch_network_error(function)
- argument_validation(function)
- class Event
  - classmethod new(data)
  - normalize_dict(**kwargs)
- class UserPermission
- class MessageEvent
- class GroupMessage
- class FriendMessage
- class TempMessage
- class NoticeEvent
- class MuteEvent
- class BotMuteEvent
- class BotUnmuteEvent
- class MemberMuteEvent
- class MemberUnmuteEvent
- class BotJoinGroupEvent
- class BotLeaveEventActive
- class BotLeaveEventKick
- class MemberJoinEvent
- class MemberLeaveEventKick
- class MemberLeaveEventQuit
- class FriendRecallEvent
- class GroupRecallEvent
- class GroupStateChangeEvent
- class GroupNameChangeEvent
- class GroupEntranceAnnouncementChangeEvent
- class GroupMuteAllEvent
- class GroupAllowAnonymousChatEvent
- class GroupAllowConfessTalkEvent
- class GroupAllowMemberInviteEvent
- class MemberStateChangeEvent
- class MemberCardChangeEvent
- class MemberSpecialTitleChangeEvent
- class BotGroupPermissionChangeEvent
- class MemberPermissionChangeEvent
- class RequestEvent
- class NewFriendRequestEvent
  - async approve(bot)
  - async reject(bot, operate=1, message='')
- class MemberJoinRequestEvent
  - async approve(bot)
  - async reject(bot, operate=1, message='')
- class BotInvitedJoinGroupRequestEvent
  - async approve(bot)
  - async reject(bot, message='')
- class UserPermission
- class Event
  - classmethod new(data)
  - normalize_dict(**kwargs)
- class MetaEvent
- class BotOnlineEvent
- class BotOfflineEventActive
- class BotOfflineEventForce
- class BotOfflineEventDropped
- class BotReloginEvent
- class MessageEvent
- class GroupMessage
- class FriendMessage
- class TempMessage
- class NoticeEvent
- class MuteEvent
- class BotMuteEvent
- class BotUnmuteEvent
- class MemberMuteEvent
- class MemberUnmuteEvent
- class BotJoinGroupEvent
- class BotLeaveEventActive
- class BotLeaveEventKick
- class MemberJoinEvent
- class MemberLeaveEventKick
- class MemberLeaveEventQuit
- class FriendRecallEvent
- class GroupRecallEvent
- class GroupStateChangeEvent
- class GroupNameChangeEvent
- class GroupEntranceAnnouncementChangeEvent
- class GroupMuteAllEvent
- class GroupAllowAnonymousChatEvent
- class GroupAllowConfessTalkEvent
- class GroupAllowMemberInviteEvent
- class MemberStateChangeEvent
- class MemberCardChangeEvent
- class MemberSpecialTitleChangeEvent
- class BotGroupPermissionChangeEvent
- class MemberPermissionChangeEvent
- class RequestEvent
- class NewFriendRequestEvent
  - async approve(bot)
  - async reject(bot, operate=1, message='')
- class MemberJoinRequestEvent
  - async approve(bot)
  - async reject(bot, operate=1, message='')
- class BotInvitedJoinGroupRequestEvent
  - async approve(bot)
  - async reject(bot, message='')