新增QQ Bot适配器完整代码栈,包含: 1. 基础适配器入口与工具类封装 2. 会话管理、重试队列与流量控制 3. 命令系统与内置指令(ping/help/status等) 4. 富媒体消息处理与格式转换 5. 引用存储与审批管理 6. 凭证备份与会话持久化 7. 健康检查与交互回调系统
106 lines
2.9 KiB
Python
106 lines
2.9 KiB
Python
"""QQ Bot Gateway 常量定义"""
|
|
|
|
|
|
class Opcode:
|
|
DISPATCH = 0
|
|
HEARTBEAT = 1
|
|
IDENTIFY = 2
|
|
RESUME = 6
|
|
RECONNECT = 7
|
|
INVALID_SESSION = 9
|
|
HELLO = 10
|
|
HEARTBEAT_ACK = 11
|
|
|
|
|
|
class ECode:
|
|
UNKNOWN_ERROR = 4000
|
|
UNKNOWN_OPCODE = 4001
|
|
DECODE_ERROR = 4002
|
|
NOT_AUTHENTICATED = 4003
|
|
AUTHENTICATION_FAILED = 4004
|
|
RATE_LIMITED = 4008
|
|
SESSION_TIMEOUT = 4009
|
|
INVALID_SHARD = 4010
|
|
INVALID_SHARD_COUNT = 4011
|
|
INVALID_INTENT = 4012
|
|
INVALID_API_VERSION = 4013
|
|
INVALID_SEQ = 4014
|
|
BOT_REMOVED = 4100
|
|
ACCOUNT_BANNED = 4101
|
|
FATAL_CLOSE = 4914
|
|
FATAL_ERROR = 4915
|
|
|
|
|
|
class Intent:
|
|
GUILDS = 1 << 0
|
|
GUILD_MEMBERS = 1 << 1
|
|
GUILD_MESSAGES = 1 << 9
|
|
GUILD_MESSAGE_REACTIONS = 1 << 10
|
|
GUILD_DIRECT_MESSAGES = 1 << 12
|
|
GROUP_AND_C2C = 1 << 25
|
|
INTERACTION = 1 << 26
|
|
AUDIO_ACTION = 1 << 29
|
|
AT_MESSAGES = 1 << 30
|
|
DEFAULT = GUILD_MESSAGES | AT_MESSAGES | GUILD_DIRECT_MESSAGES
|
|
ALL = DEFAULT | GROUP_AND_C2C | INTERACTION
|
|
|
|
|
|
class EventType:
|
|
READY = "READY"
|
|
RESUMED = "RESUMED"
|
|
AT_MESSAGE_CREATE = "AT_MESSAGE_CREATE"
|
|
DIRECT_MESSAGE_CREATE = "DIRECT_MESSAGE_CREATE"
|
|
C2C_MESSAGE_CREATE = "C2C_MESSAGE_CREATE"
|
|
GROUP_AT_MESSAGE_CREATE = "GROUP_AT_MESSAGE_CREATE"
|
|
MESSAGE_CREATE = "MESSAGE_CREATE"
|
|
INTERACTION_CREATE = "INTERACTION_CREATE"
|
|
MESSAGE_DELETE = "MESSAGE_DELETE"
|
|
PUBLIC_MESSAGE_DELETE = "PUBLIC_MESSAGE_DELETE"
|
|
|
|
|
|
CLOSE_CODE_MAP: dict[int, str] = {
|
|
ECode.UNKNOWN_ERROR: "unknown_error",
|
|
ECode.UNKNOWN_OPCODE: "unknown_opcode",
|
|
ECode.DECODE_ERROR: "decode_error",
|
|
ECode.NOT_AUTHENTICATED: "not_authenticated",
|
|
ECode.AUTHENTICATION_FAILED: "authentication_failed",
|
|
ECode.RATE_LIMITED: "rate_limited",
|
|
ECode.SESSION_TIMEOUT: "session_timeout",
|
|
ECode.INVALID_SHARD: "invalid_shard",
|
|
ECode.INVALID_SHARD_COUNT: "invalid_shard_count",
|
|
ECode.INVALID_INTENT: "invalid_intent",
|
|
ECode.INVALID_API_VERSION: "invalid_api_version",
|
|
ECode.INVALID_SEQ: "invalid_seq",
|
|
ECode.BOT_REMOVED: "bot_removed",
|
|
ECode.ACCOUNT_BANNED: "account_banned",
|
|
4015: "invalid_shard_id",
|
|
4102: "bot_removed_group",
|
|
}
|
|
SERVER_CLOSE_CODE_MAP: dict[int, str] = {
|
|
4900: "server_internal_error",
|
|
4901: "server_overload",
|
|
4902: "server_maintenance",
|
|
4903: "server_network_error",
|
|
4904: "gateway_overload",
|
|
4905: "gateway_maintenance",
|
|
4906: "gateway_internal_error",
|
|
4907: "gateway_network_error",
|
|
4908: "gateway_unavailable",
|
|
4909: "service_degraded",
|
|
4910: "database_error",
|
|
4911: "cache_error",
|
|
4912: "rate_limit_server",
|
|
4913: "server_timeout",
|
|
}
|
|
|
|
DM_CHAT_PREFIX = "dm_"
|
|
GROUP_CHAT_PREFIX = "group_"
|
|
|
|
WS_OP_DISPATCH = Opcode.DISPATCH
|
|
WS_OP_HEARTBEAT = Opcode.HEARTBEAT
|
|
WS_OP_HEARTBEAT_ACK = Opcode.HEARTBEAT_ACK
|
|
WS_OP_HELLO = Opcode.HELLO
|
|
WS_OP_IDENTIFY = Opcode.IDENTIFY
|
|
WS_OP_INVALID_SESSION = Opcode.INVALID_SESSION
|
|
WS_OP_RECONNECT = Opcode.RECONNECT
|