Thanks to visit codestin.com
Credit goes to github.com

Skip to content

STDSuperman/QQRobot

 
 

Repository files navigation

QQRobot

QQRobot

✨ 基于 Mirai + mirai-api-http + NestJS 实现的一项 QQ 机器人项目✨

license license

license

概述

基于MiraiQQ各项事件监听与收发功能,支持自定义组合操作QQ能力,同时借助Mirai-Api-Http封装提供RESTful API,实现对其他语言的支持。

功能介绍

  • 多群消息转发互通,实现跨群聊天功能
  • 接入天行API,通过检测关键字实现诸如获取 舔狗日记彩虹屁(一段文字)等 功能
  • 支持输入关键字实现群员投票踢人能力

更多功能正在持续开发中...

✨预览

🚀 开发手册

环境准备

整体环境依赖于Mirai,故首先需要安装相关环境提供QQ托管能力。

安装 Mirai 环境

当前项目依赖 mirai-api-http 版本为 1.x

  1. 安装Mirai Console Loader相关安装地址

建议优先尝试他的手动安装方式

这里笔者采用它提供的自动安装方式未成功,故采用的手动方式,如果自动安装不行,建议采用手动安装,手动安装的话会需要你安装一个大于11的JDK,这里建议采用开源版本的。

  1. 使用Mirai Console Loader安装mirai-api-http插件。

在当前安装路径下启动终端并中执行以下命令

./mcl --update-package net.mamoe:mirai-api-http --channel stable --type plugin

执行完毕之后你可以通过执行./mcl命令直接启动,看mirai环境是否正常启动成功。

相关API地址:mirai-api-http API 文档

这里主要是因为笔者服务端采用Nodejs环境进行开发,故需要该插件提供RESTful接口与websocket连接与QQ通信。

配置mirai-api-http全局配置:

  1. 按照官方文档在Mirai Console Loader安装目录下找到相关配置文件:config/MiraiApiHttp(名字不一定叫这个,不过目录名一表示的含义是mirai-api-http的)/setting.yml (没有则自行创建)
  2. 配置端口为9999(因为笔者项目指定的端口为这个,如果这里想自定义或者用系统默认的8080,则你需要将笔者项目 src/config/index.ts 文件中的BOT_SERVER_PORT改成你这里设置的端口)
  3. 修改authKey,或不修改,同时复制这个authKey,后续在笔者项目src/config/index.tsAUTH_KEY指定为这个
  4. enableWebsocket设置为true
  5. heartbeatenable设置为true

这里的src/config/index.ts主要用于一些全局配置项,克隆项目后可以进行查看修改。

这样差不多笔者准备需要你配置的地方改好了,其他如果需要自己自主定义的就按照官方文档自行修改,相应的也可能需要修改config/index.ts中配置。

配置文件示例

笔者的文件目录为:config\net.mamoe.mirai-api-http\setting.yml

cors: 
  - '*'
host: 0.0.0.0
port: 9999
authKey: 000000000
cacheSize: 4096
enableWebsocket: true
report: 
  enable: false
  groupMessage: 
    report: true
  friendMessage: 
    report: true
  tempMessage: 
    report: true
  eventMessage: 
    report: true
  destinations: []
  extraHeaders: {}

heartbeat: 
  enable: true
  delay: 1000
  period: 15000
  destinations: []
  extraBody: {}

  extraHeaders: {}

redis

本项目需要依赖redis环境,故需要你安装并启动redis服务。

启动

  1. 启动MCL(上面安装的)。
  2. 输入登录指令,将一个用于机器人的QQ号进行登录。

在上述步骤都完成之后,你需要安装的东西基本完毕了,可以启动本项目进行进一步服务端开发了。

克隆(下载)项目

git clone [email protected]:STDSuperman/QQRobot.git

项目配置

src/config/index.ts文件中包含的配置以及含义请打开该文件查看注释部分。

除了前面提到的需要修改src/config/index.ts配置之外,你需要在当前项目根目录下新建一个.env文件,用于配置一些私密数据,具体值如下:

TIAN_API_KEY=xxx
QQAccount=xxx
QQPassword=xxx
SERVER_HOST=xxx
配置介绍
配置项 相关介绍
TIAN_API_KEY 天行API申请的KEY,需要你在官网进行申请,与此同时,你还需要申请舔狗日记彩虹屁等天行API应用,都是免费的。 必填。否则无法使用相关API
QQAccount 你登录的用作机器人的QQ账号 可选。(目前使用该配置的功能mirai暂未支持)
QQPassword 你登录的机器人密码 可选。(目前使用该配置的功能mirai暂未支持)
SERVER_HOST 你登录的mirai服务地址(如果本机就127.0.0.1localhost即可) 必填。

项目中需要引入机器人的群,需要预先将机器人账号设为管理员,否则投票踢人功能会存在异常。

项目启动

进入克隆后的项目,执行安装命令,安装完毕之后执行启动命令。

使用npm
npm i
npm run start
使用yarn
yarn
yarn start

About

一个QQ机器人🤖项目

Resources

License

Stars

Watchers

Forks

Packages

No packages published