207 lines
4.8 KiB
TypeScript
207 lines
4.8 KiB
TypeScript
/**
|
|
* @author 锦恢
|
|
* @email 1193466151@qq.com
|
|
* @description Lagrange.Core 前端接口
|
|
* @comment 详细的接口信息来源
|
|
* - https://github.com/botuniverse/onebot-11/blob/master/api/public.md
|
|
* - https://docs.go-cqhttp.org/reference/data_struct.html
|
|
*/
|
|
|
|
export interface HeartBeatStatus {
|
|
app_initialized: boolean,
|
|
app_enabled: boolean,
|
|
app_good: boolean,
|
|
online: boolean,
|
|
good: boolean
|
|
}
|
|
|
|
export type MetaEventType = 'heartbeat' | 'lifecycle';
|
|
|
|
export interface HeartBeatMessage {
|
|
interval: number,
|
|
status: HeartBeatStatus,
|
|
meta_event_type: 'heartbeat',
|
|
time: number,
|
|
self_id: number,
|
|
post_type: 'meta_event'
|
|
}
|
|
|
|
export interface Sender {
|
|
user_id: number,
|
|
nickname: string,
|
|
sex: 'unknown' | 'male' | 'female',
|
|
card?: string,
|
|
age?: number,
|
|
area?: string,
|
|
level?: string, // 群聊等级,但是是 string
|
|
role?: string,
|
|
title?: string
|
|
}
|
|
|
|
export interface MsgText {
|
|
type: 'text',
|
|
data: {
|
|
text: string
|
|
}
|
|
}
|
|
|
|
export interface MsgImage {
|
|
type: 'image',
|
|
data: {
|
|
file: string,
|
|
url: string,
|
|
// 在简略窗口可以看到的信息,对于图片来说,这就是 [图片]
|
|
summary: string
|
|
}
|
|
}
|
|
|
|
export interface MsgFace {
|
|
type: 'face',
|
|
data: {
|
|
id: string
|
|
}
|
|
}
|
|
|
|
export interface MsgAt {
|
|
type: 'at',
|
|
data: {
|
|
qq: string
|
|
}
|
|
}
|
|
|
|
export interface MsgFile {
|
|
// 一般是 ''
|
|
id: string,
|
|
// 文件名
|
|
name: string,
|
|
// 文件大小,单位:字节
|
|
size: number,
|
|
// id
|
|
busid: number,
|
|
// 链接 IPv4
|
|
url: string
|
|
}
|
|
|
|
export interface MetaMessage {
|
|
post_type: 'meta_event',
|
|
[msg: string]: any
|
|
}
|
|
|
|
export interface CommonMessage {
|
|
// 事件类型
|
|
post_type: 'message',
|
|
// 信息来自私聊还是群聊
|
|
message_type?: 'private' | 'group',
|
|
// 发送信息的是朋友还是群友/陌生人
|
|
sub_type?: 'friend' | 'normal',
|
|
// 消息的编号
|
|
message_id?: number,
|
|
// 群号
|
|
group_id?: number,
|
|
// 发消息的人的 QQ 号
|
|
user_id: number,
|
|
// 是否为匿名发言,一般都是 null
|
|
anonymous?: null | boolean,
|
|
// 消息内容(结构化)
|
|
message?: MsgText | MsgImage | MsgFace | MsgAt,
|
|
// 消息内容(纯文本)
|
|
raw_message?: string,
|
|
// 发送的时间戳
|
|
time: number,
|
|
// 自己的 id
|
|
self_id: number,
|
|
// 发送的文件
|
|
// 默认字体大小,一般都是 0
|
|
font?: number
|
|
}
|
|
|
|
export interface PrivateMessage {
|
|
// 事件类型
|
|
post_type: 'message',
|
|
// 信息来自私聊还是群聊
|
|
message_type: 'private',
|
|
// 消息的编号
|
|
message_id: number,
|
|
// 发消息的人的 QQ 号
|
|
user_id: number,
|
|
// 消息内容(结构化)
|
|
message: MsgText | MsgImage | MsgFace | MsgAt,
|
|
// 消息内容(纯文本)
|
|
raw_message: string,
|
|
// 发送的时间戳
|
|
time: number,
|
|
// 自己的 id
|
|
self_id: number,
|
|
// 默认字体大小,一般都是 0
|
|
font?: number
|
|
}
|
|
|
|
export interface GroupMessage {
|
|
// 事件类型
|
|
post_type: 'message',
|
|
// 信息来自私聊还是群聊
|
|
message_type: 'group',
|
|
// 发送信息的是朋友还是群友/陌生人
|
|
sub_type: 'friend' | 'normal',
|
|
// 消息的编号
|
|
message_id: number,
|
|
// 群号
|
|
group_id: number,
|
|
// 发消息的人的 QQ 号
|
|
user_id: number,
|
|
// 是否为匿名发言,一般都是 null
|
|
anonymous: null | boolean,
|
|
// 消息内容(结构化)
|
|
message: MsgText | MsgImage | MsgFace | MsgAt,
|
|
// 消息内容(纯文本)
|
|
raw_message: string,
|
|
// 发送的时间戳
|
|
time: number,
|
|
// 自己的 id
|
|
self_id: number,
|
|
// 发送的文件
|
|
// 默认字体大小,一般都是 0
|
|
font?: number
|
|
}
|
|
|
|
export interface FileMessage {
|
|
post_type: 'notice',
|
|
user_id: number,
|
|
file: MsgFile,
|
|
notice_type?: 'offline_file',
|
|
time: number,
|
|
self_id: number
|
|
}
|
|
|
|
// 加群或者加好友
|
|
export interface AddMessage {
|
|
post_type: 'request',
|
|
sub_type: 'add',
|
|
user_id: number,
|
|
group_id: number,
|
|
// 默认为 0 代表没有邀请者
|
|
invitor_id: number,
|
|
request_type: 'private' | 'group',
|
|
// 群问题和申请者的回答
|
|
comment: string,
|
|
flag: string,
|
|
time: number,
|
|
self_id: number,
|
|
}
|
|
|
|
// 同意
|
|
export interface ApproveMessage {
|
|
post_type: 'notice',
|
|
sub_type: 'approve',
|
|
group_id: number,
|
|
operator_id: number,
|
|
user_id: number,
|
|
notice_type: 'group_increase',
|
|
time: number,
|
|
self_id: number,
|
|
}
|
|
|
|
export type Message = MetaMessage | PrivateMessage | GroupMessage | FileMessage | AddMessage | ApproveMessage;
|
|
export type MessagePostType = PrivateMessage | GroupMessage;
|
|
export type NoticePostType = FileMessage | ApproveMessage;
|
|
export type RequestPostType = AddMessage; |