import {AtType, RawMessage} from "../ntqqapi/types"; import {EventType} from "./event/OB11BaseEvent"; export interface OB11User { user_id: number; nickname: string; remark?: string } export enum OB11UserSex { male = "male", female = "female", unknown = "unknown" } export enum OB11GroupMemberRole { owner = "owner", admin = "admin", member = "member", } export interface OB11GroupMember { group_id: number user_id: number nickname: string card?: string sex?: OB11UserSex age?: number join_time?: number last_sent_time?: number level?: number role?: OB11GroupMemberRole title?: string } export interface OB11Group { group_id: number group_name: string member_count?: number max_member_count?: number } interface OB11Sender { user_id: number, nickname: string, sex?: OB11UserSex, age?: number, card?: string, // 群名片 level?: string, // 群等级 role?: OB11GroupMemberRole } export enum OB11MessageType { private = "private", group = "group" } export interface OB11Message { self_id?: number, time: number, message_id: number, real_id: string, user_id: number, group_id?: number, message_type: "private" | "group", sub_type?: "friend" | "group" | "normal", sender: OB11Sender, message: OB11MessageData[], raw_message: string, font: number, post_type?: EventType, raw?: RawMessage } export interface OB11Return { status: string retcode: number data: DataType message: string, echo?: string, // ws调用api才有此字段 wording?: string, // go-cqhttp字段,错误信息 } export enum OB11MessageDataType { text = "text", image = "image", voice = "record", at = "at", reply = "reply", json = "json", face = "face", node = "node" // 合并转发消息 } export interface OB11MessageText { type: OB11MessageDataType.text, data: { text: string, // 纯文本 } } interface OB11MessageFileBase { data: { file: string, http_file?: string; } } export interface OB11MessageImage extends OB11MessageFileBase { type: OB11MessageDataType.image } export interface OB11MessageRecord extends OB11MessageFileBase { type: OB11MessageDataType.voice } export interface OB11MessageAt { type: OB11MessageDataType.at data: { qq: string | "all" } } export interface OB11MessageReply { type: OB11MessageDataType.reply data: { id: string } } export interface OB11MessageFace { type: OB11MessageDataType.face data: { id: string } } export type OB11MessageMixType = OB11MessageData[] | string | OB11MessageData; export interface OB11MessageNode { type: OB11MessageDataType.node data: { id?: string user_id?: number nickname: string content: OB11MessageMixType } } export type OB11MessageData = OB11MessageText | OB11MessageFace | OB11MessageAt | OB11MessageReply | OB11MessageImage | OB11MessageRecord | OB11MessageNode export interface OB11PostSendMsg { message_type?: "private" | "group" user_id: string, group_id?: string, message: OB11MessageMixType; messages?: OB11MessageMixType; // 兼容 go-cqhttp } export interface OB11Version { app_name: "LLOneBot" app_version: string protocol_version: "v11" } export interface OB11Status { online: boolean | null, good: boolean }