![](https://img-blog.csdnimg.cn/img_convert/37389c0256287e7d20e2a77801509c89.jpeg)
环境搭建与准备
我这里是使用Vscode链接Ubuntu22.04服务器进行开发
安装Notejs 和 npm
Node.js 是一个跨平台的 JavaScript 运行环境,它构建在为了在服务器端运行 JavaScript 代码而设计的 Chrome JavaScript 上。它通常被用来构建后端应用,但是它也是非常流行的全栈和前端解决方案。npm 是 Node.js 的默认包管理工具,也是世界上最大的软件仓库。
部署PupBot
从 Ubuntu 软件源安装 Node.js 和 npm
sudo apt update
![](https://img-blog.csdnimg.cn/img_convert/721279603ec7d213b9e16447cacf5ccf.jpeg)
sudo apt upgrade
![](https://img-blog.csdnimg.cn/img_convert/7831ebc184764824b5510ba49bea042b.jpeg)
![](https://img-blog.csdnimg.cn/img_convert/636d9d520d686c795ad2456026085754.jpeg)
sudo apt install nodejs npm
这样就安装完成了。我们可以使用
nodejs --version
![](https://img-blog.csdnimg.cn/img_convert/e282a11087a5edd7b4a93100c4a113a2.jpeg)
查看对应版本
版本请选择16以上版本,推荐18。
安装 Pupbot CLI
命令行/终端输入:
npm i -g pupbot@latest --registry https://registry.npmmirror.com
![](https://img-blog.csdnimg.cn/img_convert/6526aeeb800d1cb581023634771df182.jpeg)
![](https://img-blog.csdnimg.cn/img_convert/f9fadab0f5a9dbf99bb8b785a8ed965f.jpeg)
配置CLI
命令行/终端输入:
# 创建空目录作为框架目录,并切换到这个目录
mkdir ~/bot && cd ~/bot
# 根据引导生成配置文件
pup init
pup init command error
![](https://img-blog.csdnimg.cn/img_convert/0bd0230dc525a90a7bd0c90e428e5eb9.jpeg)
问题出现的原因是note版本太低
OK了
![](https://img-blog.csdnimg.cn/img_convert/052ced80d8b69652a323df48b8061ec2.jpeg)
配置文件
框架目录下的 config.json 是 PupBot 的配置文件,包含了一系列框架配置,可以手动进行修改,重启后生效。
pup start 命令会检索当前目录下的 config.json 配置文件以及 app.js 入口文件,从而使用正确的配置启动框架。
字段说明
{
// Bot QQ 账号,由 CLI 引导生成
"account": 114514,
// 登录方式,由 CLI 引导生成,可选 password(密码登录) 和 qrcode(扫码登录)
"login_mode": "password",
// 设备锁验证方式,选择密码登录时,由 CLI 引导生成,如果选扫码默认是验证码登录
// 可选 sms(短信验证码验证) 和 qrcode(扫码验证)
"device_mode": "sms",
// 框架日志消息显示模式,默认为 short(精简模式,忽略 CQ 码,消耗资源少)
// 也可设置为 detail(详细模式,会显示 CQ 码具体内容,对于调试插件有帮助)
"message_mode": "short",
// Bot 账号密码,在选择密码登录时,由 CLI 引导生成,如果选择扫码默认为空
"password": "",
// 框架日志输出等级,默认 info,不输出日志可置为 off,调试插件可以设为 debug
"log_level": "info",
// 管理员列表,由 CLI 引导生成,第一个为主管理员(必须),其余的为副管理员(可选)
"admins": [1141284758,1706328818],
// 启用插件列表,包括 npm 插件(pupbot-plugin- 开头)和 plugins 目录下的插件
// npm 插件(pupbot-plugin- 开头)忽略 pupbot-plugin- 前缀
"plugins": ["demo"],
// 机器人事件通知
"notice": {
// 是否启用,可通过消息指令 `/config notice on` 和 `/config notice off` 进行实时切换
"enable": true,
// 好友列表相关配置
"friend": {
// 好友申请
"request": {
// 是否开启好友申请通知,默认开启(true),不开启请设置为 false
"enable": true,
// 处理好友申请,可选:ignore(忽略,默认), accept(同意), refuse(拒绝)
"action": "ignore"
},
// 新增好友通知,默认开启(true),不开启请设置为 false
"increase": true,
// 好友减少通知,默认开启(true),不开启请设置为 false
"decrease": true,
// 好友私聊消息通知,默认关闭(false),开启请设置为 true
"message": false
},
// 群聊相关配置
"group": {
// 邀请机器人进群
"request": {
// 是否开启通知,默认开启(true),不开启请设置为 false
"enable": true,
// 处理群邀请,可选:ignore(忽略,默认), accept(同意), refuse(拒绝)
"action": "ignore"
},
// 新增群聊通知,默认开启(true),不开启请设置为 false
"increase": true,
// 新增群聊通知,默认开启(true),不开启请设置为 false
"decrease": true,
// 机器人被禁言通知,默认开启(true),不开启请设置为 false
"ban": true,
// 群管理员变动通知,默认开启(true),不开启请设置为 false
"admin": true,
// 群转让通知,默认开启(true),不开启请设置为 false
"transfer": true
}
},
// oicq 协议配置,参考 oicq 文档,data 目录限制为 data/oicq,无法手动修改
"oicq_config": {
// 登录协议:1 为安卓手机,2 为安卓平板,3 为安卓手表,4 为 MacOS,5 为 iPad
"platform": 5,
// oicq 的日志等级,oicq 日志会输出到框架目录的 log 文件夹下
"log_level": "info",
// 群聊中,是否忽略机器人自身的消息,默认忽略,不忽略请改为 false
"ignore_self": true,
// 是否自动选择最优服务器,默认开启,关闭请改为 false
// 关闭后会一直使用 msfwifi.3g.qq.com:8080 进行连接
"auto_server": true,
// 是否缓存群员列表,默认缓存提高效率,关闭后将大幅减小占用的内存
"cache_group_member": true,
// 网络问题导致掉线时的重连间隔,默认 5(秒),设置为 0 不自动重连
"reconn_interval": 5,
// 被风控时是否尝试用分片发送,默认 true,不发送分片请设置为 false
"resend": true,
// 指定 ffprobe 路径
"ffmpeg_path": "ffmpeg",
// 指定 ffprobe 路径
"ffprobe_path": "ffprobe"
}
}
config.json 简略例子(官网给出)
{
"account": 114514,
"login_mode": "password",
"device_mode": "sms",
"message_mode": "short",
"password": "",
"log_level": "info",
"admins": [1706328818,1141284758],
"plugins": ["demo"],
"notice": {
"enable": true,
"friend": {
"request": {
"enable": true,
"action": "ignore"
},
"increase": true,
"decrease": true,
"message": false
},
"group": {
"request": {
"enable": true,
"action": "ignore"
},
"increase": true,
"decrease": true,
"ban": true,
"admin": true,
"transfer": true
}
},
"oicq_config": {
"platform": 5,
"log_level": "info",
"ignore_self": true,
"auto_server": true,
"cache_group_member": true,
"reconn_interval": 5,
"resend": true,
"ffmpeg_path": "ffmpeg",
"ffprobe_path": "ffprobe"
}
}
启动 Pupbot
pup start
如果发现二维码显示异常,可能是由于终端字体不兼容导致的,请尝试手动打开 框架目录/data/oicq/[qq] 目录下的二维码图片进行扫码(有效期两分钟)。
后台部署(可选)
pup deploy
相关指令
管理员消息指令 | 功能与说明 |
/help | 显示框架命令列表 |
/status | 检测并上报当前机器人状态以及系统状态 |
/plugin或/p | 查看插件相关的消息指令及其格式 |
/plugin list | 查看本地所有检测到的插件 |
/plugin on <name> | 通过插件名启用指定插件 |
/plugin reload <name> | 通过插件名重载指定插件 |
/plugin off <name> | 通过插件名禁用指定插件 |
/plugin onall | 启用所有检索到的插件 |
/plugin offall | 禁用所有检索到的插件 |
/plugin add <name> | 安装 npm 插件(pupbot-plugin- 前缀) |
/plugin update <?name> | 更新 npm 插件(pupbot-plugin- 前缀) |
/config | 查看框架设置消息指令及其格式 |
/config detail | 查看框架详细设置 |
/config admin add <qq> | 添加机器人管理并立即生效 |
/config admin rm <qq> | 删除机器人管理并立即生效 |
/config notice on | 开启机器人消息通知,通知仅通知主管理员 |
/config notice off | 关闭机器人消息通知,通知仅通知主管理员 |
/config group <operation> | 设置好友邀请机器人进群的操作,可选:ignore(忽略), accept(同意),refuse(拒绝) |
/config friend <operation> | 设置添加机器人为好友的请求的操作,可选:ignore(忽略), accept(同意),refuse(拒绝) |
/update | 更新框架依赖和 npm 插件 |
/about | 查看框架介绍 |
/exit | 退出机器人进程 |
PupBot 没有 UI 界面,插件管理、管理变更、状态监控等操作都是通过 QQ 消息指令来实现的。向机器人发送 /help 可查看所有框架命令,仅限管理员使用,私聊群聊均有效。
PupBot CLI 命令
PupBot CLI 是框架的命令行工具,就是你启动框架的 pup 命令。
输入 pup 命令即可查看 CLI 的详细用法,下表列出了 CLI 的所有命令及其说明。
PupBot CLI 命令列表
CLI 命令 | 功能与说明 |
pup | 显示 PupBot CLI 命令帮助 |
pup -v | 显示 PupBot CLI 版本号 |
pup init | 初始化框架配置和入口文件 |
pup init --force | 初始化框架配置和入口文件并覆盖原有配置 |
pup init --install | 初始化框架配置和入口文件并安装依赖 |
pup init --start | 初始化框架配置和入口文件并安装依赖且启动 |
pup install | 安装依赖文件,可选传入指定依赖进行安装 |
pup start | 通过生成的 config.json 配置文件启动框架 |
pup deploy | 通过 pm2 将框架进程部署在后台 |
pup log | 查看 pm2 框架进程日志 |
pup list | 查看 pm2 后台进程列表 |
pup stop | 通过 pm2 停止框架进程 |
pup delete | 通过 pm2 删除后台框架进程 |
pup create | 引导生成插件开发模板,支持 JS/TS |
pup update | 检查脚手架新版本,并自动更新框架和其他依赖 |
pup fix --device | 修复命令,--device 随机修改设备 IMEI |