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

# # NoneBot.adapters.cqhttp 模块

## # `escape(s, *, escape_comma=True)`

- 说明

  对字符串进行 CQ 码转义。

- 参数

  - `s: str`: 需要转义的字符串

  - `escape_comma: bool`: 是否转义逗号（`,`）。

## # `unescape(s)`

- 说明

  对字符串进行 CQ 码去转义。

- 参数

  - `s: str`: 需要转义的字符串

## # exception `CQHTTPAdapterException`

基类：`nonebot.exception.AdapterException`

## # exception `ActionFailed`

基类：`nonebot.exception.ActionFailed`, `nonebot.adapters.cqhttp.exception.CQHTTPAdapterException`

- 说明

  API 请求返回错误信息。

- 参数

  - `retcode: Optional[int]`: 错误码

## # exception `NetworkError`

基类：`nonebot.exception.NetworkError`, `nonebot.adapters.cqhttp.exception.CQHTTPAdapterException`

- 说明

  网络错误。

- 参数

  - `retcode: Optional[int]`: 错误码

## # exception `ApiNotAvailable`

基类：`nonebot.exception.ApiNotAvailable`, `nonebot.adapters.cqhttp.exception.CQHTTPAdapterException`

## # async `_check_reply(bot, event)`

- 说明

  检查消息中存在的回复，去除并赋值 `event.reply`, `event.to_me`

- 参数

  - `bot: Bot`: Bot 对象

  - `event: Event`: Event 对象

## # `_check_at_me(bot, event)`

- 说明

  检查消息开头或结尾是否存在 @机器人，去除并赋值 `event.to_me`

- 参数

  - `bot: Bot`: Bot 对象

  - `event: Event`: Event 对象

## # `_check_nickname(bot, event)`

- 说明

  检查消息开头是否存在，去除并赋值 `event.to_me`

- 参数

  - `bot: Bot`: Bot 对象

  - `event: Event`: Event 对象

## # `_handle_api_result(result)`

- 说明

  处理 API 请求返回值。

- 参数

  - `result: Optional[Dict[str, Any]]`: API 返回数据

- 返回

  - `Any`: API 调用返回数据

- 异常

  - `ActionFailed`: API 调用失败

## # class `Bot`

基类：`nonebot.adapters.BaseBot`

CQHTTP 协议 Bot 适配。继承属性参考 BaseBot 。

### # property `type`

- 返回: `"cqhttp"`

### # async classmethod `check_permission(driver, connection_type, headers, body)`

- 说明

  CQHTTP (OneBot) 协议鉴权。参考 鉴权
  (opens new window)

### # async `handle_message(message)`

- 说明

  调用 _check_reply, _check_at_me, _check_nickname 处理事件并转换为 Event

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

- 说明

  调用 CQHTTP 协议 API

- 参数

  - `api: str`: API 名称

  - `**data: Any`: API 参数

- 返回

  - `Any`: API 调用返回数据

- 异常

  - `NetworkError`: 网络错误

  - `ActionFailed`: API 调用失败

### # async `send(event, message, at_sender=False, **kwargs)`

- 说明

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

- 参数

  - `event: Event`: Event 对象

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

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

  - `**kwargs`: 覆盖默认参数

- 返回

  - `Any`: API 调用返回数据

- 异常

  - `ValueError`: 缺少 `user_id`, `group_id`

  - `NetworkError`: 网络错误

  - `ActionFailed`: API 调用失败

## # class `Event`

基类：`nonebot.adapters.BaseEvent`

CQHTTP 协议 Event 适配。继承属性参考 BaseEvent 。

### # property `id`

- 类型: `Optional[int]`

- 说明: 事件/消息 ID

### # property `name`

- 类型: `str`

- 说明: 事件名称，由类型与 `.` 组合而成

### # property `self_id`

- 类型: `str`

- 说明: 机器人自身 ID

### # property `time`

- 类型: `int`

- 说明: 事件发生时间

### # property `type`

- 类型: `str`

- 说明: 事件类型

### # property `detail_type`

- 类型: `str`

- 说明: 事件详细类型

### # property `sub_type`

- 类型: `Optional[str]`

- 说明: 事件子类型

### # property `user_id`

- 类型: `Optional[int]`

- 说明: 事件主体 ID

### # property `group_id`

- 类型: `Optional[int]`

- 说明: 事件主体群 ID

### # property `to_me`

- 类型: `Optional[bool]`

- 说明: 消息是否与机器人相关

### # property `message`

- 类型: `Optional[Message]`

- 说明: 消息内容

### # property `reply`

- 类型: `Optional[dict]`

- 说明: 回复消息详情

### # property `raw_message`

- 类型: `Optional[str]`

- 说明: 原始消息

### # property `plain_text`

- 类型: `Optional[str]`

- 说明: 纯文本消息内容

### # property `sender`

- 类型: `Optional[dict]`

- 说明: 消息发送者信息

## # class `MessageSegment`

基类：`nonebot.adapters.BaseMessageSegment`

CQHTTP 协议 MessageSegment 适配。具体方法参考协议消息段类型或源码。

## # class `Message`

基类：`nonebot.adapters.BaseMessage`

CQHTTP 协议 Message 适配。

Contents

- escape(s, *, escape_comma=True)
- unescape(s)
- exception CQHTTPAdapterException
- exception ActionFailed
- exception NetworkError
- exception ApiNotAvailable
- async _check_reply(bot, event)
- _check_at_me(bot, event)
- _check_nickname(bot, event)
- _handle_api_result(result)
- class Bot
  - property type
  - async classmethod check_permission(driver, connection_type, headers, body)
  - async handle_message(message)
  - async call_api(api, **data)
  - async send(event, message, at_sender=False, **kwargs)
- class Event
  - property id
  - property name
  - property self_id
  - property time
  - property type
  - property detail_type
  - property sub_type
  - property user_id
  - property group_id
  - property to_me
  - property message
  - property reply
  - property raw_message
  - property plain_text
  - property sender
- class MessageSegment
- class Message