Ubuntu 下PupBot 搭建QQ机器人

环境搭建与准备

我这里是使用Vscode链接Ubuntu22.04服务器进行开发

  • 安装Notejs 和 npm

Node.js 是一个跨平台的 JavaScript 运行环境,它构建在为了在服务器端运行 JavaScript 代码而设计的 Chrome JavaScript 上。它通常被用来构建后端应用,但是它也是非常流行的全栈和前端解决方案。npm 是 Node.js 的默认包管理工具,也是世界上最大的软件仓库。

  • 部署PupBot

从 Ubuntu 软件源安装 Node.js 和 npm

sudo apt update
sudo apt upgrade

sudo apt install nodejs npm

这样就安装完成了。我们可以使用

nodejs --version

查看对应版本

版本请选择16以上版本,推荐18。

安装 Pupbot CLI

命令行/终端输入:

npm i -g pupbot@latest --registry https://registry.npmmirror.com

配置CLI

命令行/终端输入:

# 创建空目录作为框架目录,并切换到这个目录
mkdir ~/bot && cd ~/bot
# 根据引导生成配置文件
pup init

pup init command error

解决方法

问题出现的原因是note版本太低

OK了

配置文件

框架目录下的 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官网

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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luciferau

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值