3.0.25 • Published 2 years ago

oitq v3.0.25

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

oitq

一个优雅的机器人开发框架

template 插件仓库

  • 创建/初始化项目
mkdir oitq-app && cd oitq-app
npm init -y
  • 安装oitq
npm install oitq
  • 准备工作
  1. 创建配置文件oitq.yaml
logLevel: info # 日志等级
plugin_dir: plugins # 你存放插件的目录地址
adapters: # 适配器配置
  oicq: # 该适配器框架已集成,可直接使用
    bots:
      -
        uin: 147258369 # 你的机器人账号
        master: 1659488338 # 机器人主人账号
        password: 123456789 # 你的机器人密码
        protocol: # 传给createClient的config配置
          platform: 5
services: # 服务配置
  http: # 该服务框架已集成,可直接使用
    port: 8086 # http监听的端口
plugins:
  terminalLogin: # 命令行登录插件,启用后可从命令行登录机器人 (该插件框架已集成,可直接使用)
  help: # 帮助插件,启用后可使用帮助指令 (该插件框架已集成,可直接使用)
  daemon: # 插件服务监听进程,在服务挂掉时自动重启 (该插件框架已集成,可直接使用)
    autoRestart: true # 是否开启自动重启
  watcher: # 插件改动监听插件,变更插件后会自动重启相应插件 (该插件框架已集成,可直接使用)
    root: . # 监听的根目录路径
  1. 创建入口文件 index.js,并输入一下内容
const {start} = require('oitq')
start('oitq.yaml') // 在配置文件名为oitq.yaml oitq.config.yaml时,参数可缺省
  1. 启动
node ./index.js
  • 你也可以手动在package.json里面配置启动脚本

关于适配器

  • oitq默认内置了oicq的适配器,你可以直接通过在配置文件中添加相关配置即可调用该适配器,具体配置可参考上文
  • 若你有其他平台的需求,可自行开发适配器,也可提issue,我会不定期查看需求

编写插件

  1. 使用oitq编写插件,一般情况下,你无需关注插件如何加载/卸载】,程序会根据你的配置文件自动尝试加载相应名称的插件
  2. 若你同时启用了daemon插件和watcher插件,并正确配置了插件所在目录,oitq会在你编写插件时,自动加载你变更后的新插件,配置文件变更时,根据你的更改自动判断是重启项目还是重启指定插件插件

HelloWorld

  • 现在,让我们来编写一个最简单的Hello World插件,来熟悉插件的编写方式
  • 此处我们使用项目下的plugins作为我们的插件目录,此处的插件目录需与配置文件里的plugin_dir一致,插件才能正常加载
  • 为方便理解,我们使用js来开发插件,当然,如果你更喜欢ts,也可以使用ts开发,oitq内置了对ts的支持,你无需任何配置

1. 在插件目录下新建hello.js,并编写如下代码

plugins/hello.js

import {Plugin} from 'oitq'
const helloWorldPlugin = new Plugin('helloWorld',__filename)//此处我们定义了一个名为helloWorld的插件,并声明了其所在的文件路径为__filename
helloWorldPlugin.command('hello','all') //定义了一个hello指令,并声明其触发环境为all(即所有收到的消息)
    .desc('我说 hello 你回复 world') // 为该指令添加描述说明
    .action(()=>'world') // 在指令触发时返回的文本内容

2. 加载插件

  • 新建的插件默认不会被加载,我们需要在配置文件里添加相应插件配置后才能架子啊
  • 由于该插件没有配置,我们将该插件的配置留空即可

oitq.yaml

# ...
plugins:
# ...
  helloWorld:
# ...
  • 若你启用了watcher并正确配置了插件目录信息,此时你会在控制台看到,oitq已经自动加载了该插件
  • 若未启用watcher,则需要你手动重启项目,oitq才会加载该插件,我们推荐在开发模式下启用watcher插件,在生产环境不启用watcher插件

编写更为复杂的插件

通过上边的helloWorld插件,相信你已经对oitq的插件有了一定的了解,但是上文提到的配置文件有什么用,怎么用,你应该还是一头雾水。现在,我们来额外增加一些功能,让你深入了解一下Plugin的更多功能

plugins/hello.js

import {Plugin} from 'oitq'
const helloWorldPlugin = new Plugin('helloWorld',__filename)//此处我们定义了一个名为helloWorld的插件,并声明了其所在的文件路径为__filename
const config=helloWorldPlugin.config // 在你可以通过实例化Plugin的对象获取到该插件的配置
helloWorldPlugin.on('oicq.message',(session)=>{ // 监听oicq的message事件,oicq适配器对oicq的数据做了封装,将所有事件的参数封装为统一的session
    if(session.raw_message==='你好') session.reply('世界')
})
helloWorldPlugin.command('hello','all') //定义了一个hello指令,并声明其触发环境为all(即所有收到的消息)
    .desc('我说 hello 你回复 world') // 为该指令添加描述说明
    .action(()=>'world') // 在指令触发时返回的文本内容
const dispose= helloWorldPlugin.on('oicq.system.login.qrcode',(session)=>{ // oitq对底层事件传输做了封装,on方法会返回一个取消当前监听的回调函数
    console.log(session.image)
    if(true){ //你可以根据自己需求,调用dispose取消当前监听
        dispose()
    }
})
2.0.5

2 years ago

2.0.4

2 years ago

3.0.12

2 years ago

3.0.13

2 years ago

3.0.10

2 years ago

3.0.11

2 years ago

3.0.16

2 years ago

3.0.17

2 years ago

3.0.14

2 years ago

3.0.15

2 years ago

3.0.0-1

2 years ago

2.0.4-17

2 years ago

2.0.4-16

2 years ago

2.0.4-19

2 years ago

2.0.4-18

2 years ago

2.0.4-13

2 years ago

3.0.5-1

2 years ago

2.0.4-12

2 years ago

2.0.4-15

2 years ago

2.0.4-14

2 years ago

2.0.4-11

2 years ago

2.0.4-10

2 years ago

2.0.4-2

2 years ago

2.0.4-1

2 years ago

3.0.4

2 years ago

3.0.3

2 years ago

3.0.2

2 years ago

3.0.1

2 years ago

3.0.8

2 years ago

3.0.7

2 years ago

3.0.6

2 years ago

3.0.5

2 years ago

2.0.4-9

2 years ago

2.0.4-8

2 years ago

2.0.4-7

2 years ago

3.0.0-beta

2 years ago

3.0.0

2 years ago

2.0.4-20

2 years ago

2.0.4-6

2 years ago

2.0.4-5

2 years ago

2.0.4-4

2 years ago

2.0.4-21

2 years ago

2.0.4-3

2 years ago

3.0.0-alpha

2 years ago

3.0.23

2 years ago

3.0.24

2 years ago

3.0.21

2 years ago

3.0.22

2 years ago

3.0.25

2 years ago

3.0.20

2 years ago

2.0.5-1

2 years ago

3.0.18

2 years ago

3.0.19

2 years ago

3.0.9

2 years ago

2.0.5-8

2 years ago

2.0.5-7

2 years ago

2.0.5-6

2 years ago

2.0.5-5

2 years ago

2.0.5-4

2 years ago

2.0.5-3

2 years ago

2.0.5-2

2 years ago

2.0.2-alpha

2 years ago

1.2.8

2 years ago

1.2.7

2 years ago

1.2.4

2 years ago

1.2.3

2 years ago

2.0.3

2 years ago

2.0.3-beta

2 years ago

2.0.2

2 years ago

2.0.2-beta

2 years ago

1.2.12

2 years ago

2.0.1-beta

2 years ago

1.2.13

2 years ago

2.0.1-alpha

2 years ago

1.2.16

2 years ago

1.2.17

2 years ago

1.2.14

2 years ago

1.2.15

2 years ago

1.2.18

2 years ago

1.2.19

2 years ago

1.2.20

2 years ago

2.0.3-rc

2 years ago

1.2.23

2 years ago

1.2.24

2 years ago

1.2.22

2 years ago

1.2.27

2 years ago

1.2.28

2 years ago

1.2.25

2 years ago

1.2.26

2 years ago

1.2.29

2 years ago

2.0.3-alpha

2 years ago

1.2.30

2 years ago

1.2.31

2 years ago

1.2.9

2 years ago

2.0.2-rc

2 years ago

1.2.34

2 years ago

1.2.35

2 years ago

1.2.32

2 years ago

1.2.33

2 years ago

1.2.36

2 years ago

1.2.37

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.9

2 years ago

0.1.8

2 years ago

0.1.7-alpha

2 years ago

0.1.7

2 years ago

0.1.6-beta

2 years ago

0.1.6-alpha

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.8-beta

2 years ago

1.0.8-alpha

2 years ago

1.0.8

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago