✨ 基于 Lagrange.Core 与 Drogon 实现 ✨
没有特殊需求可以配置好可以直接参考Docker部署即可运行
私聊群组均可用
server镜像大小为67Mb
Function | Status | Ver |
---|---|---|
基本订阅通知功能 | ✔ | v0.1 |
命令查询直播间信息 | R | --- |
%% Subscribe Sequence
sequenceDiagram
participant CqMessageManager
participant CqFilter*
participant CqCommandHandler
participant BiliBiliSubscribeWorker
loop MessageHandler
CqMessageManager->>CqFilter*: PushMessage
CqFilter*->>CqCommandHandler: FilterPermission
Note over CqCommandHandler: MatchSubscribeCommand
Note over CqCommandHandler: UpdateToDatabase
CqCommandHandler->>BiliBiliSubscribeWorker: CacheReloadSignal
activate BiliBiliSubscribeWorker
Note over BiliBiliSubscribeWorker: ReloadCache
deactivate BiliBiliSubscribeWorker
end
%% Notify Service Sequence
sequenceDiagram
participant BiliBiliSubscribeWorker
participant LiveSubscribeDataBase
participant CqMessageWorker
participant CqConnectionPool
loop CacheReloader
Note over BiliBiliSubscribeWorker: OnCacheLoad
BiliBiliSubscribeWorker->>LiveSubscribeDataBase: FetchSubscribeList
LiveSubscribeDataBase->>BiliBiliSubscribeWorker: AllSubscribeData
activate BiliBiliSubscribeWorker
loop PriorityTimerQueueWorker
Note over BiliBiliSubscribeWorker: TimerOntime
BiliBiliSubscribeWorker->>CqMessageWorker: SendNotify
activate CqConnectionPool
CqMessageWorker->>CqConnectionPool: SendMessageByOnlineBot
deactivate CqConnectionPool
end
deactivate BiliBiliSubscribeWorker
end
git clone --recursive https://github.com/Diam2023/Bilibili-Tools.git BilibiliTools
- mysql
- redis
- server
- lagrange
修改24
行3555838354
为你的qq号, 并删除25:26
行
cd BilibiliTools
docker compose build
docker compose up
# docker compose up -d
docker compose stop
docker compose down
配置文件参考Lagrange.Core配置文件
{
"Type": "ReverseWebSocket",
"Host": "127.0.0.1",
"Port": 8998,
"Suffix": "/qq/receive",
"ReconnectInterval": 5000,
"HeartBeatInterval": 5000,
"HeartBeatEnable": true,
"AccessToken": ""
}
- jsoncpp
- libuuid
- zlib
- 数据库环境
- Redis
- MySQL
配置文件路径./config.json
{
"custom_config": {
// 这个选项暂时没用
"enabel_private_subscribe": true,
// 默认获取时间周期 单位为s
// 该选项设置默认直播状态获取频率
"default_fetch_delay": 60,
// 设置最小获取时间周期
"min_fetch_delay": 30,
// 设置最大获取时间周期
"max_fetch_delay": 100000,
"cqhttp": {
// 机器人名字
"bot_name": "小鱼bot",
// 命令匹配前缀
"command_prefix": "/",
// 帮助信息前缀
"short_help_prefix": " ",
// 帮助命令
"command": [
{
// 用于触发帮助 触发方式 help subscribe
"name": "subscribe",
"command": "subscribe <uid> [timer]",
// 匹配规则
// 解析后 1为uid 2为时间
// 最后 *为容错
// TODO 增加只匹配前缀成功的提示
"match_rule": "(subscribe) ([0-9]+) ?([0-9]*) *",
"short_help": "订阅用户直播间",
"full_help": {
// 详细帮助
"message": [
// 输出信息 分行
"使用方法",
" subscribe <uid> [timer=60]",
"描述",
" 订阅b站用户id为uid的直播房间状态变动",
" 该命令会自动查询b站直播房间rid",
" 该命令默认60s获取一次直播状态",
" 时间范围{30,10000}",
"使用举例",
" subscribe 689460774",
" 订阅直播间30652824",
" 每60s检查一次直播状态",
" 状态变化则推送事件",
" subscribe 689460774 31",
" 每31s检查一次直播状态"
]
}
},
// ...
],
// 默认不更改即可
// !请勿更改顺序
"hint_messages": [
// 提示信息
"软件版本: [%s]",
// 0
// ...
],
// 通知输出消息
// !请勿更改顺序
"broadcast_message": {
"live_start": [
// 开始直播事件
"用户 %s 直播中!",
"直播间: %s"
],
"live_end": [
// 直播结束
"用户 %s 直播结束了!"
]
}
}
}
}
- 解决多推送缓存共用导致只发送一次问题
- 提供QQ消息直接查询用户信息的接口
- 获取用户信息缓存到Mysql 提供接口重新获取
- 更新b站视频
- 完善权限开关
- Restructure Code
- Broadcast Notify
Status | Info |
---|---|
R | 服务器上线第一条命令被吞 |