Git Product home page Git Product logo

splatoon2-qqbot's Introduction

qqbot

npm install --production

使用方式

依赖环境

1. go-cqhttp

本项目依赖 CQHTTP 协议.

因 CoolQ 停止运营, 现在推荐使用协议兼容的 go-cqhttp.

因此需要先运行 go-cqhttp, 开启 WebSocket 端口. 开启方式见 go-cqhttp 项目文档.

2. docker-compose (可选)

推荐使用 docker-compose 运行此项目.

运行配置

在本项目外新建一个 docker-compose.yml 文件.

git clone https://github.com/spacemeowx2/splatoon2-qqbot.git
touch docker-compose.yml

存入以下内容:

version: "2"

volumes:
  qqbot:
    driver: local
  files:
    driver: local
  tsbot:
    driver: local
services:
  tsbot:
    build:
      context: ./splatoon2-qqbot
      dockerfile: ./Dockerfile.prod
    volumes:
      - "./config.json:/code/config.json"
      - tsbot:/tsbot_storage
    environment:
      # 替换成运行 go-cqhttp 的主机地址. 需要注意的是如果 go-cqhttp 没有跑在 docker-compose 内的话建议把 network_mode 改为 host 来访问主机
      - CQ_HOST=127.0.0.1
      # 如果有设置 ACCESS TOKEN 的话可以填到这里.
      - CQ_ACCESS_TOKEN=
      # 替换成管理员的QQ. 所有加群提醒都会提醒到管理员.
      - TSBOT_ADMIN=123456
      # 在此屏蔽其他QQ机器人, 如官方机器人.
      - TSBOT_BLACKLIST=[226015782,2854196310,2854196306,2854196312]
      # 使用文本形式提醒直播.
      - DISABLE_SHARE=1
      # 存放个人档图片等文件
      - BOT_FILE_ROOT=/tsbot_storage
    restart: always

之后启动这个 docker-compose 就可以了

docker-compose up -d

splatoon2-qqbot's People

Contributors

angrypowman avatar senorsen avatar spacemeowx2 avatar sunoru avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

splatoon2-qqbot's Issues

项目如何运行

大佬,可以简要说明项目如何运行么,配置的几个参数的具体意思?

调用ai接口的时候,post表单没有做处理,导致有注入危险。

aichat.ts中有这样的一段代码

private querystring (data: Record<string, string>) {
    return Object.keys(data).sort().map(k => `${k}=${this.urlencode(data[k])}`).join('&')
}

这段代码中的data是来自qq群中用户输入的,这段信息应该要做一次url_encode,不然可能会有注入的危险。

连接不上websocket

连接不上使用正向websocket运行的go-cqhttp. go-cqhttp只改了QQ号

项目目录结构

root@VM-4-10-debian:~/sp-bot# ls
config.json  device.json	 go-cqhttp_linux_amd64.tar.gz  password.encrypt  splatoon2-qqbot
config.yml   docker-compose.yml  LICENSE		       README.md
data	     go-cqhttp		 logs			       session.token
root@VM-4-10-debian:~/sp-bot# pwd
/root/sp-bot

运行go-cqhttp

root@VM-4-10-debian:~/sp-bot# ps -ef|grep go-cqhttp
root      7989  7764  0 10:40 pts/1    00:00:00 ./go-cqhttp
root     27503 28225  0 11:17 pts/0    00:00:00 grep go-cqhttp

root@VM-4-10-debian:~/sp-bot# lsof -i:6700
COMMAND    PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
go-cqhttp 7989 root   15u  IPv4 53343686      0t0  TCP localhost.localdomain:6700 (LISTEN)

使用docker-conpose运行qq-bot

嘗試第 148 次連線 _(:з」∠)_
嘗試第 148 次連線 _(:з」∠)_
第 148 次連線嘗試失敗 。・゚・(つд`゚)・゚・
第 148 次連線嘗試失敗 。・゚・(つд`゚)・゚・
socket.error SocketError: Failed to establish the websocket connection.
socket.error SocketError: Failed to establish the websocket connection.

go-cqhttp配置文件

root@VM-4-10-debian:~/sp-bot# cat config.yml
# go-cqhttp 默认配置文件

account: # 账号相关
  uin: ********** # QQ账号
  # password: '' # 密码为空时使用扫码登录
  encrypt: true # 是否开启密码加密
  status: 0      # 在线状态 请参考 https://docs.go-cqhttp.org/guide/config.html#在线状态
  relogin: # 重连设置
    delay: 3   # 首次重连延迟, 单位秒
    interval: 3   # 重连间隔
    max-times: 0  # 最大重连次数, 0为无限制

  # 是否使用服务器下发的新地址进行重连
  # 注意, 此设置可能导致在海外服务器上连接情况更差
  use-sso-address: true

heartbeat:
  # 心跳频率, 单位秒
  # -1 为关闭心跳
  interval: 5

message:
  # 上报数据类型
  # 可选: string,array
  post-format: string
  # 是否忽略无效的CQ码, 如果为假将原样发送
  ignore-invalid-cqcode: false
  # 是否强制分片发送消息
  # 分片发送将会带来更快的速度
  # 但是兼容性会有些问题
  force-fragment: false
  # 是否将url分片发送
  fix-url: false
  # 下载图片等请求网络代理
  proxy-rewrite: ''
  # 是否上报自身消息
  report-self-message: false
  # 移除服务端的Reply附带的At
  remove-reply-at: false
  # 为Reply附加更多信息
  extra-reply-data: false
  # 跳过 Mime 扫描, 忽略错误数据
  skip-mime-scan: false

output:
  # 日志等级 trace,debug,info,warn,error
  log-level: warn
  # 日志时效 单位天. 超过这个时间之前的日志将会被自动删除. 设置为 0 表示永久保留.
  log-aging: 15
  # 是否在每次启动时强制创建全新的文件储存日志. 为 false 的情况下将会在上次启动时创建的日志文件续写
  log-force-new: true
  # 是否启用日志颜色
  log-colorful: true
  # 是否启用 DEBUG
  debug: false # 开启调试模式

# 默认中间件锚点
default-middlewares: &default
  # 访问密钥, 强烈推荐在公网的服务器设置
  access-token: ''
  # 事件过滤器文件目录
  filter: ''
  # API限速设置
  # 该设置为全局生效
  # 原 cqhttp 虽然启用了 rate_limit 后缀, 但是基本没插件适配
  # 目前该限速设置为令牌桶算法, 请参考:
  # https://baike.baidu.com/item/%E4%BB%A4%E7%89%8C%E6%A1%B6%E7%AE%97%E6%B3%95/6597000?fr=aladdin
  rate-limit:
    enabled: false # 是否启用限速
    frequency: 1  # 令牌回复频率, 单位秒
    bucket: 1     # 令牌桶大小

database: # 数据库相关设置
  leveldb:
    # 是否启用内置leveldb数据库
    # 启用将会增加10-20MB的内存占用和一定的磁盘空间
    # 关闭将无法使用 撤回 回复 get_msg 等上下文相关功能
    enable: true

  # 媒体文件缓存, 删除此项则使用缓存文件(旧版行为)
  cache:
    image: data/image.db
    video: data/video.db

# 连接服务列表
servers:
  # 添加方式,同一连接方式可添加多个,具体配置说明请查看文档
  #- http: # http 通信
  #- ws:   # 正向 Websocket
  #- ws-reverse: # 反向 Websocket
  #- pprof: #性能分析服务器
  # 正向WS设置
  - ws:
      # 正向WS服务器监听地址
      host: 127.0.0.1
      # 正向WS服务器监听端口
      port: 6700
      middlewares:
        <<: *default # 引用默认中间件

docker-compose.yml启动文件(CQ_HOST=localhost 改为CQ_HOST=127.0.0.1也无效)

root@VM-4-10-debian:~/sp-bot# cat docker-compose.yml
version: "2"

volumes:
  qqbot:
    driver: local
  files:
    driver: local
  tsbot:
    driver: local
services:
  tsbot:
    build:
      context: ./splatoon2-qqbot
      dockerfile: ./Dockerfile.prod
    volumes:
      - "./config.json:/code/config.json"
      - tsbot:/tsbot_storage
    environment:
      # 替换成运行 go-cqhttp 的主机地址. 需要注意的是如果 go-cqhttp 没有跑在 docker-compose 内的话建议把 network_mode 改为 host 来访问主机
      - CQ_HOST=localhost
      # 如果有设置 ACCESS TOKEN 的话可以填到这里.
      - CQ_ACCESS_TOKEN=
      # 替换成管理员的QQ. 所有加群提醒都会提醒到管理员.
      - TSBOT_ADMIN=******
      # 在此屏蔽其他QQ机器人, 如官方机器人.
      - TSBOT_BLACKLIST=[226015782,2854196310,2854196306,2854196312]
      # 使用文本形式提醒直播.
      - DISABLE_SHARE=1
      # 存放个人档图片等文件
      - BOT_FILE_ROOT=/tsbot_storage
    restart: always

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.