Categorygithub.com/CuteReimu/tfcc-bot-go
modulepackage
0.0.0-20240512124903-7d8de2a46146
Repository: https://github.com/cutereimu/tfcc-bot-go.git
Documentation: pkg.go.dev

# README

东方Project沙包聚集地机器人

本项目已迁移至 https://github.com/CuteReimu/YinYangJade

这是东方Project沙包聚集地(以下简称“红群”)的机器人,基于MiraiGo编写。

声明

  • 本项目采用AGPLv3协议开源。同时强烈建议各位开发者遵循以下原则:
    • 任何间接接触本项目的软件也要求使用AGPLv3协议开源
    • 不鼓励,不支持一切商业用途
  • 由于使用本项目提供的接口、文档等造成的不良影响和后果与本人和红群无关
  • 由于本项目的特殊性,可能随时停止开发或删档
  • 本项目为开源项目,不接受任何的催单和索取行为

使用方法

建议在编译前更新一下依赖:

go get -u

编译:

go build -o tfcc-bot.exe

然后双击运行生成出来的tfcc-bot.exe即可。比较建议在cmd窗口中输入tfcc-bot.exe运行,以防panic后报错信息无法看到。

在功能完善后,会将编译好的包放在Release中供大家下载。

关闭程序时,请使用ctrl+C关闭,以确保db、log、bot等模块正常关闭。如果强制退出,可能会导致部分数据未写入硬盘,下次启动时丢失数据。

配置文件

第一次运行会自动生成配置文件application.yaml,如下:

bilibili:
  area_v2: "236"           # 直播分区,236-主机游戏
  mid: "12345678"          # B站ID
  password: "12345678"     # 密码
  room_id: "12345678"      # B站直播间房间号
  username: "13888888888"  # B站用户名
bot:
  login-method: qrcode  # 登录方式
  account: 0           # 机器人QQ号
  password: ""         # 机器人密码
qq:
  rand_count: 10            # 每天随符卡限制次数
  rand_one_time_limit: 20   # 单次随符卡的数量限制
  related_url: ""           # 关联的网站网址
  super_admin_qq: 12345678  # 主管理员QQ号
  qq_group: # 主要功能的QQ群
    - 12345678
repeater_interruption:
  allowance: 5  # 打断复读功能限制的复读次数
  cool_down: 3  # 打断复读冷却时间(秒)
  qq_group: # 打断复读的Q群
    - 12345678
schedule:
  before: # 预约功能提前提醒时间(秒)
    - 10800
    - 21600
  qq_group: # 预约功能提醒QQ群
  - 12345678
  video_push_delay: 600  # 视频推送间隔
thwiki:
  enable: false  # 是否开启查新闻功能

修改配置文件后重新启动即可。

模块

  • chatPipeline 非命令式的QQ聊天消息处理。想要新增,实现pipelineHandler接口并在init()中调用register()即可
  • commandHandler QQ聊天中输入的命令。想要新增命令,实现cmdHandler接口并在init()中调用register()即可
  • db 一个嵌入式Key-Value型数据库,使用这个模块存储的数据会被存在硬盘里,下次重启后仍然保留
  • perm 权限管理,管理员和白名单
  • main.go 程序入口

运行时生成的文件

以下文件会在运行时自动生成

  • assets/database/ 是db模块的数据文件
  • log/ 日志文件
  • application.yaml 是配置文件
  • device.json 是设备信息文件。不要删除,否则会被QQ认为你换了一台设备登录
  • session.token 是会话信息文件,用于重启时快速恢复登录状态。想要更换QQ号登录请删除这个文件

功能一览

  • 管理员、白名单
  • B站开播、修改直播标题、查询直播状态
  • 随作品、随机体
  • B站视频解析
  • B站视频推送
  • 投票
  • 查新闻
  • 增加预约功能
  • 查询分数表
  • 打断复读
  • 随符卡
  • rep解析

第三方库的使用

  • github.com/Mrs4s/MiraiGo 一个移植于mirai的golang实现的库
  • github.com/dgraph-io/badger 一个强大的内嵌的数据库系统
  • github.com/sirupsen/logrus 一个强大的日志库
  • github.com/go-resty/resty 强大的Http Client库
  • github.com/tidwall/gjson 易用的json解析库
  • github.com/spf13/viper 强大的config解析库
  • github.com/ozgio/strutil 一个字符串处理库
  • github.com/araddon/dateparse 一个可以识别任意格式日期的库
  • github.com/dlclark/regexp2 完整版的正则表达式库
  • github.com/pkg/errors 可以将golang本身的error包装的库
  • github.com/CuteReimu/threp 一个东方replay文件的解析库
  • github.com/CuteReimu/bilibili 一个B站API的golang版sdk

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author