koishi-plugin-bilirice
v0.0.9
Published
这是一个bilibili直播间事件监控插件
Readme
一款为 Koishi 框架开发的 B 站直播间监控插件,支持实时监听指定 UP 主的开播 / 下播状态,并自动发送通知到指定 QQ 群,同时提供下播数据统计、自定义通知模板等功能。 功能特性 • 🚨 实时监控:定时轮询 B 站直播 API,检测 UP 主开播 / 下播状态 • 📢 自动通知:开播 / 下播时自动发送消息到指定 QQ 群 • 📊 数据统计:下播时展示直播时长、最高在线人数、弹幕数等数据 • ✨ 自定义模板:支持自定义开播 / 下播通知的文案格式 • ⚙️ 灵活配置:可自定义轮询间隔、API 超时时间等参数 • 📝 手动指令:支持手动触发检查指定 UP 主的直播间状态 安装要求 • Koishi v4.x+ • Node.js 16.x+ • 已安装 OneBot 适配器(如 go-cqhttp)并配置好 QQ 机器人 安装步骤
- 安装依赖 在 Koishi 项目根目录执行: npm install axios
- 部署插件 将插件文件(bilirice.ts/bilirice.js)放入 Koishi 项目的 plugins 目录下。
- 启用插件 方式 1:配置文件(推荐) 编辑 koishi.config.js,添加插件配置: module.exports = { bots: [{ type: 'onebot:http', endpoint: 'http://127.0.0.1:5700', // go-cqhttp 地址 selfId: '123456789', // 你的 QQ 机器人账号 }], selfUrl: 'http://localhost:5140', // 解决控制台静态资源警告 plugins: { // 启用 bilirice 插件 bilirice: { // 必填:监听的主播列表 anchors: [ ['14663353', 'group_123456789'], // [UP主UID, 通知群号(OneBot格式)] // ['20206767', 'group_987654321,group_876543210'], // 多个群号用逗号分隔 ], // 可选配置(以下为默认值) pollInterval: 10, // 轮询间隔(秒) timeout: 5000, // API 请求超时时间(毫秒) // 可选:自定义通知模板 templates: { liveStart: '🎉 {uname} 开播啦!\n标题:{title}\n分区:{area}\n链接:{url}\n{cover}', liveEnd: '🛑 {uname} 下播啦!\n直播时长:{liveTime}\n最高在线:{peakOnline}人\n弹幕数:{dmCount}', }, }, // 可选:启用 Koishi 控制台 '@koishijs/plugin-console': { port: 5140 }, }, }; 方式 2:控制台可视化配置
- 启动 Koishi 后访问控制台(默认:http://localhost:5140)
- 进入「本地插件」→ 找到 bilirice 插件 → 点击「配置」
- 填写配置项后保存,重启插件即可 配置项说明 配置项 类型 必填 默认值 说明 anchors [string, string][] 是 - 监听的主播列表,格式:[UP主UID, 通知群号];多个群号用逗号分隔,OneBot 适配器群号需加 group_ 前缀(如 group_123456789)pollInterval number 否 10 直播间状态轮询间隔(秒),建议≥5 秒,避免频繁请求 API timeout number 否 5000 B站API请求超时时间(毫秒) templates.liveStart string 否 详见配置示例 开播通知模板,支持以下占位符:
- {uname}:UP 主昵称
- {title}:直播间标题
- {area}:直播分区
- {url}:直播间链接
- {startTime}:开播时间
- {cover}:直播间封面图片 templates.liveEnd string 否 详见配置示例 下播通知模板,除开播模板占位符外,还支持:
- {liveTime}:直播时长(时:分: 秒)
- {peakOnline}:最高在线人数
- {watchCount}:观看人数
- {dmCount}:弹幕数
- {avgDmPerUser}:人均弹幕数
- {medalCount}:舰队数
- {endTime}:下播时间 使用方法
- 自动监控 插件启动后会自动初始化监听列表中的 UP 主,并按配置的轮询间隔检查状态,开播 / 下播时自动发送通知到指定群聊。
- 手动指令 在 QQ 群 / 私聊中发送指令,手动检查指定 UP 主的直播间状态: bilirice <UP主UID> 示例: bilirice 14663353 执行后会返回检查结果,并同步发送通知到当前群聊(仅群聊环境有效)。 通知示例 开播通知 🎉 老番茄 开播啦! 标题:【直播】玩点新游戏! 分区:游戏 - 单机游戏 链接:https://live.bilibili.com/123456 [图片:直播间封面] 下播通知 🛑 老番茄 下播啦! 直播时长:01:20:30 最高在线:12345人 观看人数:123456 弹幕数:65432 人均弹幕:0.53 注意事项
- 群号格式:使用 OneBot 适配器(如 go-cqhttp)时,群号必须加 group_ 前缀(如 group_123456789);其他适配器直接填写群号即可。
- API 限制:请勿将轮询间隔设置过小(<5 秒),避免触发 B 站 API 频率限制。
- 机器人权限:确保 QQ 机器人已加入目标群聊,且拥有发送消息、发送图片的权限。
- 隐私说明:插件仅用于个人 / 非商业用途,请勿滥用 B 站 API,遵守平台规范。
- 依赖检查:确保已安装 axios 依赖,否则插件会启动失败。 常见问题 Q1: 报错 $.anchors missing required value 原因:未配置必填项 anchors。解决:在配置文件中补充 anchors 配置,填写正确的 UP 主 UID 和群号。 Q2: 提示 未找到可用的Bot实例 原因:机器人未登录 / 适配器配置错误。解决:检查 bots 配置中的 selfId、endpoint 是否正确,确保 go-cqhttp 已正常运行并连接。 Q3: 插件启动但不发送通知 解决步骤:
- 检查群号格式是否正确(OneBot 需加 group_ 前缀);
- 确认机器人已加入目标群聊;
- 查看 Koishi 日志,检查是否有 API 请求失败的错误;
- 验证 UP 主 UID 是否正确,且当前是否在开播状态。 Q4: 控制台显示 assets missing config selfUrl 解决:在配置文件中添加 selfUrl: 'http://localhost:5140' 即可消除警告。 许可证 本插件基于 MIT 许可证开源,仅供学习和非商业使用。使用本插件需遵守 B 站平台规范,请勿用于违法违规场景。
