2 Star 3 Fork 1

zmx0142857 / qq-tex-bot

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or Download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

qq-tex-bot

使用 mirai, mirai-jsmathjax 实现的用于渲染数学公式的 qq 机器人.

功能展示

目前支持的命令:

  • /tex: tex 公式, 较复杂, 但功能更全;
  • /am: asciimath, 简易版本的公式标记语言.
图1 图2

快速上手

1. 安装 mirai

mirai 是全平台、开源的 qq 机器人框架, 使用 java 和 kotlin 编写. 官方用户手册

  • 确保 java 版本至少是 11
  • 新建目录 mirai, 下载 mcl-installer, 然后运行
  • 安装 mirai-api-http 插件, 用于提供 http 接口:
    ./mcl --update-package net.mamoe:mirai-api-http --type plugin --channel stable
  • 安装滑块验证模块:
    ./mcl --update-package net.mamoe:mirai-login-solver-selenium --type plugin --channel nightly
  • 运行 ./mcl, 一切正常的话, mirai-console 就会启动起来.
  • 最后, 参考官方说明, 可以配置一下 qq 的自动登录.
    /autoLogin add <account> <password> [passwordKind]    # 添加自动登录

Trouble Shooting

  • 默认情况下 mirai 以 android 协议登录, 此时不允许再用 android 手机登录同一个账号, 否则 mirai 会被强制下线.
  • mirai 的更新可能会出 bug. 如果遇到问题, 可以编辑 config.json 把 mirai 的 channel 改成 stable. 然后重启 ./mcl 即可.
  • 如要将机器人部署到服务器, 建议先在自己电脑上登录 mirai console, 并进行滑块验证. 成功以后关闭 mirai console, 将 bots/<qq号>/device.json 文件拷贝到服务器. 这时服务器应该能顺利登录.

2. 安装 node js 依赖

假定已经安装最新版本的 node js. 在 qq-tex-bot 项目根目录 (package.json 所在的目录) 下运行

npm install

安装过程如遇到 phantomjs 下载失败, 可以手动下载到指定的目录中:

Downloading https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-windows.zip
Saving to C:\Users\Administrator\AppData\Local\Temp\phantomjs\phantomjs-2.1.1-windows.zip
Receiving...
Error making request.
Error: connect ETIMEDOUT *.*.*.*:443
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1148:16)

比如上面这种情况, 只需到 https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-windows.zip 下载文件, 保存到 C:\Users\Administrator\AppData\Local\Temp\phantomjs\phantomjs-2.1.1-windows.zip, 然后重新运行 npm install 即可.

在项目根目录下新建 config.js, 填写必要信息:

module.exports = {
  server: {
    authKey: '', // mirai-api-http 提供的 authKey
    qq: 123456, // 机器人的 qq 号
  },
  groups: {
    112233: '群名称', // 群号和群名称
  },
  image: {
    // 图片目录绝对路径. 分隔符一律用斜杠 (/), 不要用反斜杠, 即使你是 windows
    path: '??/mirai/data/net.mamoe.mirai-api-http/images',
  }
}
参数 解释 类型 必填
server.authKey mirai-api-http 提供的 authKey, 请妥善保存, 不要泄露 String 必填
server.qq 机器人的 qq 号 Number 必填
groups 机器人加入的群, 以 群号: 群名 的格式填写, 可填多个 Object 必填
image.path mirai 图片目录的绝对路径. 分隔符一律用斜杠 (/), 不要用反斜杠, 即使你是 windows String 必填
server.baseUrl mirai 服务的地址 String 默认值 http://localhost:8080
tex.ex 公式的字体大小 Number 默认值 16
image.engine svg 转 png 的图片引擎, 可选 phantom 或 magick. 如果选择 magick 引擎, 还需要安装 image magick, 并保证 path 环境变量中有 magick 命令 String 默认值 phantom
image.name 临时图片的文件名 String 默认值 tmp.png

最后, 运行 npm startnode index.js 启动机器人.

cli

机器人的简单命令行界面

  • /ls: 查看当前加入的所有群
  • /cd [index]: 切换到第 index 个群, 如省略 index, 则显示当前的群
  • 文字消息 \178: 发送文字消息到当前的群. \178 代表滑稽的 qq 表情. 更多表情码在这里

mirai-api-http 的使用

登录

POST /auth
{
  "authKey": "***"
}

认证

POST /verify
{
  "sessionKey": "***",
  "qq": ???
}

发消息

POST /sendGroupMessage
{
  "sessionKey": "***",
  "target": ???,
  "messageChain": [{
    "type": "Plain",
    "text": "本机器人不支持回复QQ表情喔~"
  }]
}

改名片

POST /memberInfo
{
  "sessionKey": "***",
  "target": ???,
  "memberId": ???,
  "info": {"name": "AsciiMath小助手"}
}

FAQs

  • 电脑端打 /am 会变成表情怎么办?

    解决方法1: 右键单击输入框, 关闭表情快捷键

    解决方法2: 使用 /AM

  • 如何编写多行文字 / 公式?

    更新: /am 现在直接支持多行公式:

    /am
    "第一行"
    "第二行"

    可以用 gather 环境

    /tex
    \begin{gather}
    x^2 \\ y^2
    \end{gather}

    或者 \displaylines:

    /tex
    \displaylines{ x=a+b \\ y=b+c }

    或者用矩阵:

    /am
    {: "第一行"; "第二行" :}

TODO

Repository Comments ( 0 )

Sign in for post a comment

About

使用 mirai, mirai-js 和 mathjax 实现的用于渲染数学公式的 qq 机器人 expand collapse
JavaScript
AGPL-3.0
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
1
https://gitee.com/zmx0142857/qq-tex-bot.git
git@gitee.com:zmx0142857/qq-tex-bot.git
zmx0142857
qq-tex-bot
qq-tex-bot
master

Search