nonebot2/archive/2.0.0a14/api/adapters/cqhttp.md
2021-08-04 13:42:21 +08:00

9.6 KiB

contentSidebar sidebarDepth
true 0

NoneBot.adapters.cqhttp 模块

CQHTTP (OneBot) v11 协议适配

协议详情请看: CQHTTP | OneBot

NoneBot.adapters.cqhttp.config 模块

class Config

CQHTTP 配置类

  • 配置项

    • access_token / cqhttp_access_token: CQHTTP 协议授权令牌

    • secret / cqhttp_secret: CQHTTP HTTP 上报数据签名口令

    • ws_urls / cqhttp_ws_urls: CQHTTP 正向 Websocket 连接 Bot ID、目标 URL 字典

NoneBot.adapters.cqhttp.utils 模块

escape(s, *, escape_comma=True)

  • 说明

    对字符串进行 CQ 码转义。

  • 参数

    • s: str: 需要转义的字符串

    • escape_comma: bool: 是否转义逗号(,)。

unescape(s)

  • 说明

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

  • 参数

    • s: str: 需要转义的字符串

NoneBot.adapters.cqhttp.exception 模块

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]: 错误码

NoneBot.adapters.cqhttp.bot 模块

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._base.Bot

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

property type

  • 返回: "cqhttp"

async classmethod check_permission(driver, request)

  • 说明

    CQHTTP (OneBot) 协议鉴权。参考 鉴权

async handle_message(message)

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 调用失败

NoneBot.adapters.cqhttp.message 模块

class MessageSegment

基类:nonebot.adapters._base.MessageSegment[Message]

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

classmethod get_message_class()

is_text()

static anonymous(ignore_failure=None)

static at(user_id)

static contact(type_, id)

static contact_group(group_id)

static contact_user(user_id)

static dice()

static face(id_)

static forward(id_)

static image(file, type_=None, cache=True, proxy=True, timeout=None)

static json(data)

static location(latitude, longitude, title=None, content=None)

static music(type_, id_)

static music_custom(url, audio, title, content=None, img_url=None)

static node(id_)

static node_custom(user_id, nickname, content)

static poke(type_, id_)

static record(file, magic=None, cache=None, proxy=None, timeout=None)

static reply(id_)

static rps()

static shake()

static share(url='', title='', content=None, image=None)

static text(text)

static video(file, cache=None, proxy=None, timeout=None)

static xml(data)

type

  • 类型: str

  • 说明: 消息段类型

data

  • 类型: Dict[str, Union[str, list]]

  • 说明: 消息段数据

class Message

基类:nonebot.adapters._base.Message[nonebot.adapters.cqhttp.message.MessageSegment]

CQHTTP 协议 Message 适配。

classmethod get_segment_class()

extract_plain_text()

NoneBot.adapters.cqhttp.permission 模块

PRIVATE

  • 说明: 匹配任意私聊消息类型事件

PRIVATE_FRIEND

  • 说明: 匹配任意好友私聊消息类型事件

PRIVATE_GROUP

  • 说明: 匹配任意群临时私聊消息类型事件

PRIVATE_OTHER

  • 说明: 匹配任意其他私聊消息类型事件

GROUP

  • 说明: 匹配任意群聊消息类型事件

GROUP_MEMBER

  • 说明: 匹配任意群员群聊消息类型事件

:::warning 警告 该权限通过 event.sender 进行判断且不包含管理员以及群主! :::

GROUP_ADMIN

  • 说明: 匹配任意群管理员群聊消息类型事件

GROUP_OWNER

  • 说明: 匹配任意群主群聊消息类型事件

NoneBot.adapters.cqhttp.event 模块

class Event

基类:nonebot.adapters._base.Event

CQHTTP 协议事件,字段与 CQHTTP 一致。各事件字段参考 CQHTTP 文档

class MessageEvent

基类:nonebot.adapters.cqhttp.event.Event

消息事件

to_me

  • 说明

    消息是否与机器人有关

  • 类型

    bool

reply

  • 说明

    消息中提取的回复消息,内容为 get_msg API 返回结果

  • 类型

    Optional[Reply]

class PrivateMessageEvent

基类:nonebot.adapters.cqhttp.event.MessageEvent

私聊消息

class GroupMessageEvent

基类:nonebot.adapters.cqhttp.event.MessageEvent

群消息

class NoticeEvent

基类:nonebot.adapters.cqhttp.event.Event

通知事件

class GroupUploadNoticeEvent

基类:nonebot.adapters.cqhttp.event.NoticeEvent

群文件上传事件

class GroupAdminNoticeEvent

基类:nonebot.adapters.cqhttp.event.NoticeEvent

群管理员变动

class GroupDecreaseNoticeEvent

基类:nonebot.adapters.cqhttp.event.NoticeEvent

群成员减少事件

class GroupIncreaseNoticeEvent

基类:nonebot.adapters.cqhttp.event.NoticeEvent

群成员增加事件

class GroupBanNoticeEvent

基类:nonebot.adapters.cqhttp.event.NoticeEvent

群禁言事件

class FriendAddNoticeEvent

基类:nonebot.adapters.cqhttp.event.NoticeEvent

好友添加事件

class GroupRecallNoticeEvent

基类:nonebot.adapters.cqhttp.event.NoticeEvent

群消息撤回事件

class FriendRecallNoticeEvent

基类:nonebot.adapters.cqhttp.event.NoticeEvent

好友消息撤回事件

class NotifyEvent

基类:nonebot.adapters.cqhttp.event.NoticeEvent

提醒事件

class PokeNotifyEvent

基类:nonebot.adapters.cqhttp.event.NotifyEvent

戳一戳提醒事件

class LuckyKingNotifyEvent

基类:nonebot.adapters.cqhttp.event.NotifyEvent

群红包运气王提醒事件

class HonorNotifyEvent

基类:nonebot.adapters.cqhttp.event.NotifyEvent

群荣誉变更提醒事件

class RequestEvent

基类:nonebot.adapters.cqhttp.event.Event

请求事件

class FriendRequestEvent

基类:nonebot.adapters.cqhttp.event.RequestEvent

加好友请求事件

class GroupRequestEvent

基类:nonebot.adapters.cqhttp.event.RequestEvent

加群请求/邀请事件

class MetaEvent

基类:nonebot.adapters.cqhttp.event.Event

元事件

class LifecycleMetaEvent

基类:nonebot.adapters.cqhttp.event.MetaEvent

生命周期元事件

class HeartbeatMetaEvent

基类:nonebot.adapters.cqhttp.event.MetaEvent

心跳元事件

get_event_model(event_name)

  • 说明

    根据事件名获取对应 Event ModelFallBack Event Model 列表

  • 返回

    • List[Type[Event]]