kokkoro v2.0.6
本项目是一个基于 amesu 协议库,使用 TypeScript 语言开发的 QQ 机器人框架
介绍
目前 kokkoro 处于 alpha 状态,不过她已经适用于开箱即用,极少部分 API 和配置项可能会在未来版本中发生变化。
原项目 yumemi_bot 最初为个人自用 bot,主要围绕 公主连结☆Re:Dive 开发相关功能,因代码严重耦合不利于维护,使用 ts 分离重构为插件一对多形式的框架。
- 多群插件管理,所有插件针对不同群聊均支持参数自定义
- 支持扫码登录,能有效避免因操作不当导致账号风控、掉线等问题
- 友好的脚手架,无需手动修改配置文件,全由命令自动构建
- 账号同步登录,可添加多个 bot 自由管理
- web 可扩展性,每个插件均支持独立的 web 页面及路由服务
构建
本项目不用安装任何第三方软件,非常简单轻便
仅需三行命令即可构建,你可以选择下列任意一种方式来初始化你的项目
# 全局安装 cli
npm i -g @kokkoro/cli
# 创建并进入文件夹
mkdir bot && cd bot
# 初始化配置文件
kokkoro init
or
# 创建并进入文件夹
mkdir bot && cd bot
# 本地安装 cli
npm i @kokkoro/cli
# 初始化配置文件
npx kokkoro init
若网速较慢可以尝试使用阿里镜像源
npm i -g @kokkoro/cli --registry=https://registry.npmmirror.com
yuki,你为什么不讲下用 yarn 如何安装呀?(这是给小白看的,你 npm 都会用了还需要讲 yarn 么)
结构
当你输入 kokkoro init
后, kokkoro 将会为你在当前所在目录自动安装并生成相关文件
.
├─ data 资源目录
├─ db 数据库目录
├─ logs 日志目录
├─ plugins 插件目录
├─ main.js 程序入口
└─ kokkoro.json 配置文件
项目 启动后 尽量避免编辑器直接修改配置文件,你改了也不会生效的,使用指令修改可以立即生效
启动
一切准备就绪,开始启动你的项目吧。如果你是使用的本地安装,就要使用 npx kokkoro start -d
启动项目。
kokkoro start -d
首次启动项目,将会为 admin 动态编译例如 api url 等配置参数。第一次编译完成后只要不修改相关 config 就不会再次编译。
-d
代表着 develop 模式,会将 web serve 指向内网 ip 运行,方便用于本地调试。若要在服务器部署可以直接使用kokkoro start
或者node main.js
,后者指向公网 ip。
如上述步骤无误,控制台会输出服务地址,首次访问会提示创建 admin 账号,之后进入后台即可管理账号登录与插件状态。
账号登录成功后,会在根目录下的 data/bot
自动生成 QQ 账号的缓存及相关配置文件。
配置参数
在初始化项目后,会在根目录下生成 kokkoro.json
文件,你可以在此修改相关配置
{
// web 服务
"server": {
// 端口号
"port": 2333,
// 域名
"domain": null,
},
// 日志等级,默认 info
// 打印日志会降低性能,若消息量巨大建议修改此参数
"log_level": "info",
// bot 信息,可添加多个
"bots": [
// bot 账号
"uin": 1145141919,
// 项目启动时自动登录,默认 false
"auto_login": false,
// 账号密码,若不填写则使用扫码登陆
"password": null,
// bot 主人,可添加多个
"masters": [
2225151531
],
// 协议配置,不要随意修改,除非你知道自己在做什么
"protocol": {
// 日志等级,与上面的 log_level 不同,只针对 bot 消息打印
"log_level": "info",
// 1:安卓手机(默认) 2:aPad 3:安卓手表 4:MacOS 5:iPad
"platform": 1,
// 忽略自己的消息,默认 true
"ignore_self": true,
// 被风控时是否尝试用分片发送,默认 true
"resend": true,
// 数据存储文件夹
"data_dir": "data/bot",
// 重新登录间隔,默认5(秒)
"reconn_interval": 5,
// 是否缓存群员列表,默认 true,
// 群多的时候 (500~1000) 会多占据约 100MB+ 内存
// 关闭后进程只需不到 20MB 内存
"cache_group_member": true,
// 自动选择最优服务器
// 关闭后会一直使用 `msfwifi.3g.qq.com:8080` 进行连接
"auto_server": true
}
]
}
TODO
🟢 已完成 🔵 待优化 🟡 进行中 🔴 咕咕咕
核心库
Tables | Cool |
---|---|
多 bot 管理 | 🟢 |
数据库支持 | 🟢 |
web api 服务 | 🔵 |
admin 后台 | 🔵 |
QQ 频道支持 | 🔴 |
插件适配
Tables | Cool |
---|---|
cherugo | 🟢 |
hitokoto | 🟢 |
group | 🟢 |
setu | 🟢 |
chatgpt | 🟢 |
rss | 🟡 |
saucenao | 🔵 |
pcr | 🟡 |
sandbox | 🟡 |
aircon | 🟢 |
chess | 🔴 |
guess | 🔴 |
lifeRestart | 🔴 |
qa | 🔴 |
galgame | 🔴 |
补充
首次登录推荐使用扫码,密码登录需要过滑块验证,非真机环境下抓取 ticket 会失效
但是扫码登录后如果进行敏感操作,例如频繁下线上线等,可能会出现掉线需要重新扫码的情况
登录一段时间后,就不会再弹出滑动验证,此时建议将 token 抓到服务器后使用密码登录,更加稳定 φ(≧ω≦*)♪
鸣谢
感谢 JetBrains 提供了免费的开源许可证
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago