Go to file
2024-04-27 19:06:39 +08:00
.github fix 2024-04-26 18:46:12 +08:00
script chore: script move 2024-04-27 15:13:53 +08:00
src refactor: config使用QQ号区分 2024-04-27 19:06:39 +08:00
.editorconfig NapCatQQ 2024-04-15 00:09:08 +08:00
.env.development NapCatQQ 2024-04-15 00:09:08 +08:00
.env.production NapCatQQ 2024-04-15 00:09:08 +08:00
.eslintrc.cjs style:lint 2024-04-15 11:08:31 +08:00
.gitignore fix:checkVesion 2024-04-16 12:46:37 +08:00
.gitmodules NapCatQQ 2024-04-15 00:09:08 +08:00
CHANGELOG.md build: test 2024-04-27 17:53:31 +08:00
LICENSE Create LICENSE 2024-04-16 10:27:32 +08:00
logo.png logo png 2024-04-10 16:47:01 +08:00
package.json fix 2024-04-26 11:30:05 +08:00
README.md refactor: config使用QQ号区分 2024-04-27 19:06:39 +08:00
tsconfig.json refactor: core 2024-04-26 13:55:35 +08:00
vite.config.ts refactor: config使用QQ号区分 2024-04-27 19:06:39 +08:00

NapCatQQ

项目介绍

NapCatQQ瞌睡猫QQ不准叫我NCQQ像睡着了一样在后台低占用运行的无头(没有界面)的NTQQ

目前测试在 Windows 上表现优秀,最低可达只占用内存 20M左右

由于 Linux 上的 QQ 图形依赖较多,会导致内存占用小高,大约 100+M,目前正在研究如何优化

具体占用会因人而异QQ 群、好友越多占用越高

目前只支持 onebot11 协议

下载

前往 Release 页面下载最新版本

启动

NapCat 是基于 官方NTQQ 实现的Bot框架因此先需要安装官方QQ注意同个账号不能同时登录NT QQ 和 NapCatQQ

如果没有安装 QQ 请往后翻查看安装方法

修改 config/onebot11.json内容,并重名为 onebot11_<你的QQ号>.json,如onebot11_1234567.json

json 配置内容参数解释:

{
  // HTTP服务监听的 ip 地址,为空则监听所有地址
  "httpHost": "",
  // 是否启用http服务, true为启动false为禁用如果启用可以通过http接口发送消息
  "enableHttp": false,
  // http服务端口
  "httpPort": 3000,
  // 正向 ws 服务监听的 ip 地址,为空则监听所有地址
  "wsHost": "",
  // 是否启用正向websocket服务
  "enableWs": false,
  // 正向websocket服务端口
  "wsPort": 3001,
  // 是否启用反向websocket服务
  "enableWsReverse": false,
  // 反向websocket对接的地址, 如["ws://127.0.0.1:8080/onebot/v11/ws"]
  "wsReverseUrls": [],
  // 是否启用http上报服务
  "enableHttpPost": false,
  // http上报地址, 如["http://127.0.0.1:8080/onebot/v11/http"]
  "httpPostUrls": [],
  // 是否启用http心跳
  "enableHttpHeart": false,
  // http上报密钥可为空
  "httpSecret": "",
  // 消息上报格式array为消息组string为cq码字符串
  "messagePostFormat": "array",
  // 是否上报自己发送的消息
  "reportSelfMessage": false,
  // 是否开启调试模式开启后上报消息会携带一个raw字段为原始消息内容
  "debug": false,
  // 调用get_file接口时如果获取不到url则使用base64字段返回文件内容
  "enableLocalFile2Url": true,
  // ws心跳间隔单位毫秒
  "heartInterval": 30000,
  // access_token可以为空
  "token": ""
}

配置日志:

复制config/napcat.json 并重命名为 config/napcat_<QQ号>.json

json 配置内容参数解释:

{
  // 是否开启文件日志
  "fileLog": true,
  // 是否开启控制台日志
  "consoleLog": true,
  // 日志等级, 可选值: debug, info, error
  "fileLogLevel": "debug",
  "consoleLogLevel": "info"
}

Windows 启动

运行powershell ./napcat.ps1, 或者 napcat.bat,如果出现乱码,可以尝试运行napcat-utf8.ps1napcat-utf8.bat

如果出现 powershell 运行不了,可以尝试 powershell.exe -ExecutionPolicy Bypass -File ".\napcat.ps1"

推荐使用 bat 运行powershell 会自身占用 20MB 左右的内存

Linux 启动

运行napcat.sh

或使用NapCatDocker

使用无需扫码快速登录

前提是你已经成功登录过QQ可以加参数 -q <你的QQ> 进行登录,如napcat.sh -q 1234567

安装

Linux安装

安装 Linux QQ(22741),已经安装了的可以跳过

目前还在研究怎么精简安装暂时只能安装官方QQ整体依赖

下载QQ

deb x86版本 deb arm版本

rpm x86版本 rpm arm版本

安装QQ

sudo dpkg -i --force-depends ./qq.deb

安装QQ的依赖

sudo apt install libgbm1 libasound2

Windows 安装

安装Windows QQ(22741),已经安装了的可以跳过

Windows版本QQ下载

常见问题

二维码无法扫描

NapCat 会自动保存二维码到目录,可以手动打开图片扫描

如果没有条件访问本地目录,可以将二维码解析的 url 复制到二维码生成网站上生成二维码然后手机QQ扫描

语音、视频发送失败

需要配置 ffmpeg将 ffmpeg 目录加入环境变量,如果仍未生效,可以修改 napcat 启动脚本加入 FFMPEG_PATH 变量指定到 ffmpeg 程序的完整路径

如 Windows 上修改 napcat.ps1在第一行加入

$env:FFMPEG_PATH="d:\ffmpeg\bin\ffmpeg.exe"

修改日志等级

出现 error code v2:-1 之类的提示

不用管,这是正常现象,是因为 QQ 本身的问题,不影响使用

本地登录后迁移至服务器

如果在服务器扫码登录提示出现网络环境不稳定不在同一网络,可以尝试在本地登录后,将 QQ 的文档传到服务器相同目录覆盖Linux 目录位于 ~/.config/QQ, Windows 一般是 文档下的QQ文件夹,具体可以打开 QQ的设置->存储管理 查看

或者手机使用 VPN 等方式连接到服务器网络使其和服务器在同一网络

Windows 运行出现 sqlite3 不是 win32 程序

运行时出现node_sqlite3.node is not a valid Win32 application

检查下载的是否是 Windows 版本的 NapCatQQ

检查是否是安装的 64 位版本的 QQ

如果出现崩溃

由于新版本使用了 Native Hook如果你的 NapCatQQ 崩溃了,尝试删除 MoeHoo.node

其他问题

NapCat 是基于 QQ 22741 版本开发的,其他版本不敢保证是否会出现一些奇怪的问题,有问题可以尝试安装此版本的 QQ

API 文档

NapCat Doc

声明

  • 请不要在无关地方宣传NapCatQQ本项目只是用于学习 node 相关知识,切勿用于违法用途

  • NapCat 不会收集用户隐私信息,但是未来可能会为了更好的利于 NapCat 的优化会收集一些设备信息,如 cpu 架构,系统版本等

相关链接

TG群

鸣谢名单

OpenShamrock

Lagrange