Skip to content

适配器(Adapter)

TIP

继承自 EventEmitter

此处介绍仅为基础介绍,已足够普通开发这使用,如需进阶(自行开发机器人适配器),可联 系开发者

属性(Attrs)

bots:BotList

  • 存放机器人的数组

logger:Logger

  • Log4js的Logger,使用方法自行搜索log4js

status:Record<string,BotStatus>

获取该适配器下所有机器人的状态

构造函数 constructor(zhin:Zhin,protocol:string,options:AdapterOptions)

方法(Methods)

botStatus(self_id:string|number):BotStatus

获取该适配器下指定机器人的状态

getLogger(sub_type:string):Logger

获取一个Log4js的Logger,使用方法自行搜索log4js

dispatch(event:string|symbol,session:Session):void

Zhin推送会话

start

启动适配器

stop

停止适配器

startBot(options:BotOptions):void

启动一个机器人

配置文件 AdapterOptions

typescript
export type AdapterOptions<BO = {}, AO = {}> = {
  bots?: BotOptions<BO>[]; // 机器人配置文件数组
} & AO;

命名空间(Namespace)

typescript
export const adapterConstructs: AdapterConstructs = {};
// 用于定义适配器,普通开发者可忽略
export function define<K extends keyof Zhin.Adapters, BO = {}, AO = {}>(
  key: K,
  protocolConstruct: AdapterConstruct<K, BO, AO>,
  botConstruct: BotConstruct<K, BO, AO>,
) {
  adapterConstructs[key] = protocolConstruct;
  Bot.define(key, botConstruct);
}
// 适配器模块的类型声明,普通开发者可忽略
export interface Install<T = any> {
  install(ctx: Context, config?: T);
}
export interface BotStatus {
  start_time: number;
  lost_times: number;
  recv_msg_cnt: number;
  sent_msg_cnt: number;
  msg_cnt_per_min: number;
  online: boolean;
}
// 获取指定平台的适配器
export function get<K extends keyof Zhin.Adapters>(protocol: K) {
  return {
    Adapter: adapterConstructs[protocol],
    Bot: Bot.botConstructors[protocol],
  };
}