UNPKG

onebots

Version:

基于icqq的多例oneBot实现

148 lines (147 loc) 4.1 kB
import { Config } from "./config"; import { Action } from "./action"; import { OneBot, OneBotStatus } from "../../onebot"; import { Logger } from "log4js"; import { WebSocket, WebSocketServer } from "ws"; import { Dispose } from "../../types"; import { Service } from "../../service"; import { Dict } from "@zhinjs/shared"; import { JsonDB } from "../../db"; export declare class V11 extends Service<"V11"> implements OneBot.Base { oneBot: OneBot; config: OneBot.Config<"V11">; action: Action; version: OneBot.Version; protected timestamp: number; protected heartbeat?: NodeJS.Timeout; db: JsonDB; disposes: Dispose[]; protected _queue: Array<{ method: keyof Action; args: any[]; }>; protected queue_running: boolean; logger: Logger; wss?: WebSocketServer; wsr: Set<WebSocket>; constructor(oneBot: OneBot, config: OneBot.Config<"V11">); transformToInt(path: string, value: string): number; transformStrToIntForObj<T extends object>(obj: T, keys: (keyof T)[]): void; getStrByInt(path: string, value: number): string; start(): void; private startHttp; private startHttpReverse; private startWs; private startWsReverse; stop(force?: boolean): Promise<void>; format(_: any, data: any): any; dispatch(data: any): Promise<void>; private _formatEvent; private getReplyMsgIdFromDB; private _httpRequestHandler; /** * 处理ws消息 */ protected _webSocketHandler(ws: WebSocket): void; /** * 创建反向ws */ protected _createWsr(url: string): void; /** * 快速操作 */ protected _quickOperate(event: any, res: any): void; /** * 调用api */ apply(req: V11.Protocol): Promise<string>; /** * 限速队列调用 */ _runQueue(): Promise<void>; } export declare namespace V11 { interface Result<T extends any> { retcode: number; status: "ok" | "async" | "error"; data: T; error: string; msg?: string; wording?: string; echo?: string; } function ok<T extends any>(data: T, retcode?: number, pending?: boolean, echo?: string): Result<T>; function error(error: string, echo?: string, retcode?: number, wording?: string): Result<any>; const defaultConfig: Config; function genMetaEvent(uin: string, type: string): { self_id: string | number; time: number; post_type: string; meta_event_type: string; sub_type: string; }; interface Protocol { action: string; params: any; echo?: any; } interface Config { access_token?: string; post_timeout?: number; enable_cors?: boolean; enable_reissue?: boolean; rate_limit_interval?: number; post_message_format?: "string" | "array"; heartbeat?: number; secret?: string; reconnect_interval?: number; use_http?: boolean; use_ws?: boolean; http_reverse?: (string | Config.HttpReverseConfig)[]; ws_reverse?: string[]; } type Payload<T = Dict> = { [P in string | symbol]: any; } & T; type SelfInfo = { status: OneBotStatus; nickname: string; }; interface GroupInfo { group_id: number; group_name: string; } interface UserInfo { user_id: number; user_name: string; } interface GroupMemberInfo { group_id: number; user_id: number; user_name: string; } interface Segment { type: string; data: Dict; } type Sendable = string | Segment | (string | Segment)[]; interface Message { message: Sendable; } type MessageNode = { content: Sendable; } & ({ uin: number; user_id: never; name: string; nickname: never; } | { user_id: number; uin: never; nickname: string; name: never; }); interface MessageRet { message_id: number; } }