插件会定时拉取B站动态和开播信息,并将匹配UP主的消息推送到指定QQ群。支持:
- 动态/视频更新推送
- 开播推送
- 自动点赞(按UP mid 或昵称)
- 推送目标支持按 UP mid 或昵称配置
- 转发动态原文控制(全文/关闭)
- 动态多页抓取
默认使用 SAA 发送消息(理论上支持 SAA 支持的所有平台)。也可以通过 bnotifier_use_saa = false 关闭 SAA 依赖,直接使用 OneBot v11 原生 API 发送,此时无需安装 SAA。
使用 nb-cli 安装
在 nonebot2 项目根目录执行:
nb plugin install nonebot-plugin-bilibili-notifier使用包管理器安装
pip install nonebot-plugin-bilibili-notifier
# 或 pdm add nonebot-plugin-bilibili-notifier
# 或 poetry add nonebot-plugin-bilibili-notifier然后在 pyproject.toml 的 [tool.nonebot] 中加入:
plugins = ["nonebot_plugin_bilibili_notifier"]在 NoneBot 项目的 .env 中配置以下字段。
| 配置项 | 默认值 | 说明 |
|---|---|---|
bnotifier_cookies |
无 | cookies JSON 文件路径 |
| 配置项 | 默认值 | 说明 |
|---|---|---|
bnotifier_push_updates |
{} |
更新推送,格式 {UP标识: [group_id, ...]},UP标识可为 mid 或昵称 |
bnotifier_push_lives |
{} |
开播推送,格式 {UP标识: [group_id, ...]},UP标识可为 mid 或昵称 |
bnotifier_push_updates_by_group |
{} |
按群配置更新推送,格式 {group_id: [UP标识, ...]},UP标识可为 mid 或昵称;当 group_id 为空字符串时,UP 仍会被记录,但只会发给 bnotifier_debug_user,不发群 |
bnotifier_push_lives_by_group |
{} |
按群配置开播推送,格式 {group_id: [UP标识, ...]},UP标识可为 mid 或昵称;当 group_id 为空字符串时,UP 仍会被记录,但只会发给 bnotifier_debug_user,不发群 |
bnotifier_push_type_blacklist |
{} |
动态类型黑名单,格式 {group_id或UP标识: [dynamic_type, ...]},UP标识可为 mid 或昵称 |
bnotifier_debug_user |
[] |
额外接收所有推送的QQ私聊用户ID列表 |
| 配置项 | 默认值 | 说明 |
|---|---|---|
bnotifier_like |
[] |
自动点赞目标(UP mid 或昵称) |
bnotifier_forward_message_mode |
"full" |
转发原文模式:full/none |
bnotifier_skip_lottery_forward |
true |
是否跳过包含“中奖”的转发动态 |
| 配置项 | 默认值 | 说明 |
|---|---|---|
bnotifier_use_saa |
true |
是否使用 SAA 发送消息。true 时依赖 nonebot-plugin-saa 并支持多平台;false 时直接调用 OneBot v11 API,无需 SAA |
| 配置项 | 默认值 | 说明 |
|---|---|---|
bnotifier_dynamic_update_interval |
120 |
动态轮询间隔(秒) |
bnotifier_live_update_interval |
60 |
开播轮询间隔(秒) |
bnotifier_dynamic_pages |
1 |
每轮动态抓取页数 |
bnotifier_dynamic_features |
"itemOpusStyle" |
动态接口 features 参数 |
bnotifier_timezone_offset |
-480 |
动态接口 timezone_offset 参数 |
bnotifier_live_fetch_size |
50 |
每轮直播列表抓取数量 |
bnotifier_api_timeout |
20 |
API 超时时间(秒) |
| 配置项 | 默认值 | 说明 |
|---|---|---|
bnotifier_ignore_old_dynamic_on_start |
true |
首次运行(无已知动态记录)时是否忽略历史动态 |
bnotifier_state_file |
"last_update.json" |
状态文件名(缓存目录下),用于持久化已知动态ID集合 |
- 命令:
/bnotifier_parse <动态ID> - 示例:
/bnotifier_parse 859921215107629064 - 权限:发送者必须在
bnotifier_debug_user列表或 NoneBotSUPERUSERS中 - 行为:按动态ID拉取并解析动态,然后将消息推送给发送者
当向群或调试用户推送动态失败时,插件会自动向 bnotifier_debug_user 中的用户发送失败通知,包含动态链接和失败详情。
支持以下两种格式。
对象格式:
{
"sessdata": "...",
"bili_jct": "...",
"buvid3": "...",
"dedeuserid": "..."
}列表格式(浏览器导出常见格式):
[
{"name": "SESSDATA", "value": "..."},
{"name": "bili_jct", "value": "..."},
{"name": "buvid3", "value": "..."},
{"name": "DedeUserID", "value": "..."}
]bnotifier_cookies="/path/to/cookies.json"
# 按 mid 配置(数字UID)
bnotifier_push_updates={"823532":["123456"]}
bnotifier_push_lives={"823532":["123456"]}
# 也可以用昵称配置
# bnotifier_push_updates={"某UP主":["123456"]}
bnotifier_like=["823532"]
bnotifier_debug_user=["10001"]
# 直接使用 OneBot v11 发送(不需要安装 SAA)
bnotifier_use_saa=false有问题或需求欢迎提 issue。
