一个可低延迟检测 B 站动态/直播并转发到 Q 群的 Mirai 插件
无论多少订阅均可在最低 10s 内检测所有动态
使用 skiko 绘图
番剧订阅
动态过滤
扫码登录
可配置性高
Coming soon...
建了个QQ群,有问题可即时反馈 734922374
Vtuber 字幕组及粉丝群如需要使用可通过群联系我, 使用我搭建的bot实例
前置插件: mirai-skia-plugin
插件命令依赖: chat-command
插件本体: releases
中央仓库会延迟几个小时
./mcl --update-package top.colter:bilibili-dynamic-mirai-plugin --channel maven --type plugin
移除指令
./mcl --remove-package top.colter:bilibili-dynamic-mirai-plugin
常用指令帮助图
可通过 /bili help
指令获取
如果你对这张图有什么建议也可以反馈
订阅相关 | 描述 |
---|---|
/bili <h / help / menu / 帮助> |
获取上面的帮助图片 |
/bili <login / 登录> |
扫码登录 (需在配置文件中配置管理员) |
/bili <add / 添加 / 订阅> <id> [目标] |
为目标 [目标] 添加一个订阅 (id 可以为 用户ID 也可以为 番剧ID ) 番剧ID格式:ss11111 md22222 ep33333 |
/bili <del / 删除> <id / 用户名> [目标] |
为目标 [目标] 删除一个订阅 (id 可以为 用户ID 也可以为 番剧ID ) 删除用户同时支持用户名删除 |
/bili <delAll / 删除全部订阅> [目标] |
将目标 [目标] 的全部订阅删除 |
/bili <clear> |
清除失效的群/好友 |
订阅列表 | 描述 |
---|---|
/bili <list / 列表> [目标] |
查询目标 [目标] 的订阅列表 |
/bili <listAll / la / 全部订阅列表> |
查询全部订阅列表 (需在配置文件中配置管理员) |
/bili <listUser / lu / 用户列表> [uid / 用户名] |
查询用户列表 (需在配置文件中配置管理员) |
配置 | 描述 |
---|---|
/bili <config / 配置> [uid / 用户名] [目标] |
交互式配置 (可配置主题色 模板 过滤器) |
/bili <color / 颜色> <uid / 用户名> <HEX颜色> |
为目标 UID 设置图片推送主题色 |
/bili <templateList / tl / 模板列表> [模板类型] |
查看推送模板推送效果 模板类型: d (动态模板) l (直播模板) le (直播结束模板) |
/bili <template / t / 模板> <模板类型> <模板名> [目标] |
设置模板 模板类型: 上面 |
/bili <atall / aa / at全体> [类型] [uid / 用户名] [目标] |
设置At全体 可加多个 类型:全部 / all / a : 动态与直播 全部动态 / dynamic / d : 全部动态 直播 / live / l : 直播 视频 / video / v : 视频 音乐 / music / m : 音乐 专栏 / article : 专栏 |
/bili <delAtall / daa / 取消at全体> [类型] [uid / 用户名] [目标] |
取消一个At全体项 |
/bili <listAtall / laa / at全体列表> [uid / 用户名] [目标] |
查看At全体项列表 |
搜索指令 | 描述 |
---|---|
/bili <search / s / 搜索> <动态ID> |
通过ID搜索一个动态 |
/bili <new / 最新动态> <uid / 用户名> [数量] |
获取用户最新动态 (支持用户名本地模糊搜索) |
/bili <video / 最新视频> <uid / 用户名> |
获取用户最新视频 (支持用户名本地模糊搜索) |
分组指令 |
---|
动态过滤指令 |
---|
指令中的 目标
可以是 好友 / 群 / 分组
推荐使用 config
指令配置 模板 过滤器
扫码登录请在配置文件中填写管理员账号
<..>
尖括号为必填参数 [..]
中括号为可选参数
[群/Q号]
不填的话默认对话所在地
<HEX颜色>
必须带#号 支持多个值自定义渐变 中间用分号‘;’分隔 例: #fde8ed;#fde8ed
单个值会自动生成渐变色
uid / 用户名
使用名称可以本地
模糊匹配(只有订阅过才能匹配)
# 栗子
/bili add 487550002 #为当前群/好友添加 uid 为 487550002 的订阅
/bili add 487550002 111111 #为 111111 群/好友添加订阅
/bili color 487550002 #fde8ed #设置主题色
/bili t d ForwardMsg #为当前群/好友动态推送模板设置为ForwardMsg
推荐使用 /bili config
交互式配置
两种过滤器:
动态
转发动态
视频
音乐
专栏
直播
过滤器的两种模式:
黑名单
:当动态匹配过滤器时不推送动态白名单
:仅当动态匹配过滤器时推送动态过滤器模式黑名单模式
指令 | 描述 |
---|---|
/bili <filterType / ft / 类型过滤> <类型> [uid] [目标] |
为目标 [目标] 添加 uid 的动态类型过滤器 |
/bili <filterReg / fr / 正则过滤> <正则表达式> [uid] [目标] |
为目标 [目标] 添加 uid 的动态正则过滤器 |
/bili <filterMode / fm / 过滤模式> <过滤器类型> <过滤器模式> [uid] [目标] |
切换过滤器模式 过滤器类型: t (类型过滤器) r (正则过滤器) 过滤器模式: w (白名单模式) b (黑名单模式) |
/bili <filterList / fl / 过滤列表> [uid] [目标] |
列出 uid 的过滤器列表 |
/bili <filterDel / fd / 过滤删除> <index> [uid] [目标] |
删除 uid 中 index 的过滤器 |
# 栗子
/bili ft 转发动态 487550002 # 为当前群/好友订阅的 487550002 设置类型为“转发动态”的过滤
# 当 487550002 用户动态类型为“转发动态”时触发过滤器(是否推送要看过滤器模式)
/bili fr ^新年好 0 111111 # 为 111111 群/好友订阅的所有用户设置内容为“^新年好”的包含
# 当 111111 群/好友订阅的所有用户的动态内容开头包含“新年好”时触发过滤器(是否推送要看过滤器模式)
/bili fl 487550002 # 查询当前群/好友订阅的 487550002 设置过的过滤列表
# 当前目标过滤器:
#
# 动态类型过滤器:
# 模式: 黑名单
# t0: 转发动态
# t1: 视频
# 正则过滤器:
# 模式: 黑名单
# r0: 转发抽奖
#
# t0 t1 r0 等为删除的索引<index>
/bili fd t1 487550002 # 删除上面t1的过滤
# 特例
# uid 为 0 时,代表群/好友订阅的所有用户
# 不填默认也为 0
分组指令 | 描述 |
---|---|
/bili <create / 创建分组> <分组名> |
创建一个分组 (分组名不能全为数字) |
/bili <listGroup / lg / 分组列表> [分组名] |
查询分组列表 |
/bili <delGroup / dg / 删除分组> <分组名> |
删除分组 (删除分组会同时删除分组所有数据) |
/bili <push / 添加分组> <分组名> <群/Q号列表> |
向分组内添加用户 (支持批量添加,中间用逗号隔开) |
/bili <ban> <分组名> <群/Q号列表> |
删除分组内用户 (支持批量删除,中间用逗号隔开) |
/bili <addGroupAdmin / aga / 添加分组管理员> <分组名> <QQ号列表> |
设置分组管理员 (管理员只能是好友,不能是群。支持批量删除,中间用逗号隔开) |
/bili <banGroupAdmin / bga / 删除分组管理员> <分组名> <QQ号列表> |
删除分组管理员 (支持批量删除,中间用逗号隔开) |
前面的 基础指令 与 动态过滤指令 中的 目标
可以是 好友 / 群 / 分组
插件命令依赖 chat-command 来正确处理聊天环境下的命令,请确保有此插件,否则插件可能无法正常工作
权限名 | ID |
---|---|
基础权限ID | top.colter.bilibili-dynamic-mirai-plugin:* |
动态指令ID | top.colter.bilibili-dynamic-mirai-plugin:command.bili |
跨通讯录控制 | top.colter.bilibili-dynamic-mirai-plugin:crossContact |
跨通讯录控制可以让你修改查看别人的配置
如果你不会给权限可以点击下面展开查看简略教程
3.0.0-BETA4 后废弃 废弃后仍可使用, 但不推荐, 推荐使用前面的指令进行配置
权限名 | ID |
---|---|
top.colter.bilibili-dynamic-mirai-plugin:live.atall |
|
top.colter.bilibili-dynamic-mirai-plugin:video.atall |
配置文件位于 mirai 根目录/config/top.colter.bilibili-dynamic-mirai-plugin/
基础配置文件 BiliConfig.yml
图片分辨率配置 ImageQuality.yml
图片主题配置 ImageTheme.yml
分辨率与主题配置已经内置了多套数据
配置项 | 取值 | 说明 |
---|---|---|
admin |
QQ号 / 群号 | 管理员 |
enableConfig |
EnableConfig | 功能开关 |
accountConfig |
BiliAccountConfig | 账号配置 |
checkConfig |
CheckConfig | 检测配置 |
pushConfig |
PushConfig | 推送配置 |
imageConfig |
ImageConfig | 绘图配置 |
templateConfig |
TemplateConfig | 模板配置 |
cacheConfig |
CacheConfig | 缓存配置 |
proxyConfig |
ProxyConfig | 代理配置 |
translateConfig |
TranslateConfig | 翻译配置 |
linkResolveConfig |
LinkResolveConfig | 链接解析配置(v3.1.2) |
功能开关 | 取值 | 说明 |
---|---|---|
drawEnable |
true / false |
绘图开关 |
notifyEnable |
true / false |
操作通知开关 |
liveCloseNotifyEnable |
true / false |
直播结束通知开关 |
lowSpeedEnable |
true / false |
低频检测开关 |
translateEnable |
true / false |
翻译开关 |
proxyEnable |
true / false |
代理开关 |
cacheClearEnable |
true / false |
缓存清理开关 |
账号配置 | 取值 | 说明 |
---|---|---|
cookie |
SESSDATA=xxxx; bili_jct=xxxx; | B站Cookie |
autoFollow |
true / false |
自动关注 |
followGroup |
最长16字符 | 关注时保存的分组 |
检测配置 | 取值 | 说明 |
---|---|---|
interval |
推荐 15-60 单位秒 | 动态检测间隔 |
liveInterval |
单位秒 | 直播检测间隔 |
lowSpeed |
例: 3-8x2 三点到八点检测间隔为正常间隔的2倍 | 低频检测时间段与倍率 |
checkReportInterval |
单位分 为 0 时代表每次检测都汇报 | 检测报报间隔 (在debug里打印) 报告中最后的数代表在间隔内进行了几次检测 |
timeout |
单位秒 | 超时时间 |
推送配置 | 取值 | 说明 |
---|---|---|
messageInterval |
单位毫秒 | QQ中同一个群中连续发送多个消息的间隔 |
pushInterval |
单位毫秒 | QQ中连续发送多个群之间的间隔 |
atAllPlus |
SINGLE_MESSAGE : 单独的消息 PLUS_END : 追加到最后一条消息后面 |
At全体拼接方式 |
toShortLink |
true / false |
是否把链接都转为短链 (不推荐) |
绘图配置 | 取值 | 说明 |
---|---|---|
quality |
800w / 1000w / 1200w / 1500w (图片宽度) |
图片质量(分辨率) |
theme |
v3 (新版绘图主题) / v3RainbowOutline (彩虹边框) / v2 (旧版绘图主题) |
绘图主题 (目前两套其实都差不多,鸡肋功能) |
font |
字体名 / 字体文件名(不用加后缀) | 绘图字体 目前仅支持单字体 字体放到插件数据路径下font 文件夹中 如果不配置此项且 font 目录下为空时自动下载霞鹜文楷字体并使用 相关: 字体 |
defaultColor |
HEX颜色值 (#d3edfa;#fde8ed) | 默认绘图主题色 支持多个值自定义渐变 中间用分号; 号分隔 单个值会自动生成渐变色 |
cardOrnament |
FanCard (粉丝卡片) / QrCode (动态链接二维码) / None (无) |
卡片装饰 |
colorGenerator |
ColorGenerator | 渐变色生成器配置 (用于图片背景) 仅当主题色为单个值时会自动生成 |
badgeEnable |
true / false |
卡片顶部的标签 |
渐变色生成器 | 取值 | 说明 |
---|---|---|
hueStep |
0 ~ 120 |
渐变色H(色相)步长 (默认三步) |
lockSB |
true / false |
锁定 S(饱和度) B(亮度) |
saturation |
0.0 ~ 1.0 |
锁定的饱和度 |
brightness |
0.0 ~ 1.0 |
锁定的亮度 |
模板配置 | 取值 | 说明 |
---|---|---|
defaultDynamicPush |
下方动态推送模板名 | 默认动态推送模板 |
defaultLivePush |
下方直播推送模板名 | 默认直播推送模板 |
defaultLiveClose |
下方直播结束推送模板名 | 默认直播推送模板 |
dynamicPush |
动态模板配置项 | 动态推送模板 (可自行添加新项) |
livePush |
直播模板配置项 | 直播推送模板 (可自行添加新项) |
liveClose |
直播结束模板配置项 | 直播结束推送模板 (可自行添加新项) |
forwardCard |
ForwardDisplay | QQ转发卡片外观 |
footer |
FooterConfig | 绘制图片页脚模板 |
转发样式 | 取值 | 说明 |
---|---|---|
title |
转发卡片配置项 | 转发卡片标题 |
preview |
转发卡片配置项 | 中间的预览,最多4行行之间用\n 隔开 |
summary |
转发卡片配置项 | 转发卡片最下边的总结 |
brief |
转发卡片配置项 | 从群外看显示的文字 |
页脚配置 | 取值 | 说明 |
---|---|---|
dynamicFooter |
页脚配置项 | 动态页脚 (可空) |
liveFooter |
页脚配置项 | 直播页脚 (可空) |
footerAlign |
LEFT / CENTER / RIGHT |
对其方式 |
{draw}
: 绘制的动态图
{name}
: 名称
{uid}
: 用户ID
{did}
: 动态ID
{type}
: 动态类型
{time}
: 时间
{content}
: 动态内容
{images}
: 动态中的图
{link}
: 动态链接
{links}
: 视频专栏等有多个链接
\n
: 换行
\r
: 分割对话(会生成多个QQ消息)
{>>} {<<}
: 包装成转发消息
栗子: {draw}{>>}作者:{name}\nUID:{uid}\n时间:{time}\n类型:{type}\n链接:{link}\r{content}\r{images}{<<}
{draw}
: 绘制的直播图
{name}
: 名称
{uid}
: 用户ID
{rid}
: 房间号
{time}
: 直播开始时间
{title}
: 直播标题
{area}
: 直播分区
{cover}
: 直播封面
{link}
: 直播链接
\n
: 换行
\r
: 分割对话(会生成多个QQ消息)
注: 直播模板不支持 ({>>}{<<}) 转发消息
{name}
: 名称
{uid}
: 用户ID
{rid}
: 房间号
{title}
: 直播标题
{area}
: 直播分区
{startTime}
: 直播开始时间
{endTime}
: 直播结束时间
{duration}
: 直播时长
{link}
: 直播链接
\n
: 换行
注: 直播结束模板不支持 ({>>}{<<}) 转发消息 和 (\r) 分隔对话
{name}
: 名称
{uid}
: 用户ID
{did}
: 动态ID
{type}
: 动态类型
{time}
: 时间
{content}
: 动态内容
{link}
: 链接
{name}
: 名称
{uid}
: 用户ID
{id}
: 动态/直播ID
{type}
: 类型
{time}
: 时间
缓存配置 | 取值 | 说明 |
---|---|---|
downloadOriginal |
true / false |
是否下载原图 |
expires |
单位天 为 0 时表示不清理此类图片DRAW : 由插件绘制的图片IMAGES : 动态图和封面等EMOJI : B站的EmojiUSER : 用户头像,头像挂件,粉丝卡片套装等OTHER : 其他图片 |
图片过期时长, 当图片在指定时间内未被再次使用, 就会被删除 |
代理配置 | 取值 | 说明 |
---|---|---|
proxy |
代理服务器 | 代理列表 |
翻译 | 取值 | 说明 |
---|---|---|
cutLine |
例如:\n\n〓〓〓 翻译 〓〓〓\n |
正文与翻译的分割线 |
baidu |
APP_ID SECURITY_KEY |
百度翻译密钥配置 (需要通用翻译api key) https://api.fanyi.baidu.com |
链接解析 | 取值 | 说明 |
---|---|---|
triggerMode |
At : @bot时触发 Always : 一直 Never : 无法通过聊天触发 |
触发链接解析的模式 |
returnLink |
true / false |
是否返回解析的链接 |
regex |
正则表达式 | B站链接的正则表达式, 下方给出了一些正则, 如果你不想解析某种链接可从配置中删除, 同时支持自定义正则 |
类型 | 完全匹配 | 仅匹配ID号 |
---|---|---|
视频 | (www.bilibili.com/video/)?((BV[0-9A-z]{10})|(av\d{1,10})) |
^((BV[0-9A-z]{10})|(av\d{1,10}))$ |
专栏 | (www.bilibili.com/read/)?(cv\d{1,10}) |
^(cv\d{1,10})$ |
番剧 | ((www|m).bilibili.com/bangumi/(play|media)/)?((ss|ep|md)\d+) |
^((ss|ep|md)\d+)$ |
动态 | [tm].bilibili.com/(dynamic/)?(\d+) |
|
直播 | live.bilibili.com/(h5/)?(\d+) |
|
短链 | b23.tv/([0-9A-z]+) |
BiliConfig.yml
配置文件模板配置项 | 取值 | 说明 |
---|---|---|
customOverload |
true / false |
是否启用自定义数据 启用后配置文件中的分辨率配置将失效 |
customQuality |
Quality | 自定义数据 默认数据为1000px宽度下的数据 |
配置项 | 取值 | 说明 |
---|---|---|
imageWidth |
整数 | 绘制图片宽度 |
cardMargin |
整数 | 内容卡片外边距 |
cardPadding |
整数 | 内容卡片内边距 |
cardArc |
小数 | 内容卡片圆角 |
---------------- | -------- | ------------- |
nameFontSize |
小数 | 名字字体大小 |
titleFontSize |
小数 | 标题字体大小 (视频/专栏等标题) |
subTitleFontSize |
小数 | 副标题字体大小 (名字下方的时间) |
descFontSize |
小数 | 简介字体大小 (视频/专栏简介) |
contentFontSize |
小数 | 动态内容字体大小 |
footerFontSize |
小数 | 页脚字体大小 |
---------------- | -------- | ------------- |
cardOutlineWidth |
小数 | 卡片边框大小 |
drawOutlineWidth |
小数 | 动态中的图片边框大小 |
---------------- | -------- | ------------- |
faceSize |
小数 | 用户头像大小 |
noPendantFaceInflate |
小数 | 没有头像框时头像放大的尺寸 |
pendantSize |
小数 | 头像框大小 |
verifyIconSize |
小数 | 身份认证角标大小 |
ornamentHeight |
小数 | 卡片装饰高度 (粉丝卡片/二维码) |
---------------- | -------- | ------------- |
badgeHeight |
整数 | 卡片顶部标签高度 |
badgePadding |
整数 | 卡片顶部标签内边距 |
badgeArc |
小数 | 卡片顶部标签圆角 |
---------------- | -------- | ------------- |
lineSpace |
整数 | 动态文字行间距 |
drawSpace |
整数 | 动态图片间距 |
contentSpace |
整数 | 动态内容间距 |
---------------- | -------- | ------------- |
smallCardHeight |
整数 | 小号卡片高度 (小号视频/直播卡片) |
additionalCardHeight |
整数 | 附加卡片高度 (直播/视频预约) |
配置项 | 取值 | 说明 |
---|---|---|
customOverload |
true / false |
是否启用自定义数据 启用后配置文件中的主题配置将失效 |
customTheme |
Theme | 自定义数据 默认数据为v3主题数据 |
配置项 | 取值 | 说明 |
---|---|---|
cardBgColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 内容卡片背景色 |
---------------- | -------- | ------------- |
cardOutlineColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 内容卡片边框颜色 |
faceOutlineColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 头像边框颜色 |
drawOutlineColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 动态图片边框颜色 |
---------------- | -------- | ------------- |
nameColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 名字字体颜色 |
titleColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 标题字体颜色 (视频/专栏等标题) |
subTitleColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 副标题字体颜色 (名字下方的时间) |
descColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 简介字体颜色 (视频/专栏简介) |
contentColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 动态内容字体颜色 |
linkColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 连接字体颜色 |
footerColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 页脚字体颜色 |
---------------- | -------- | ------------- |
cardShadow |
Shadow | 内容卡片阴影 |
smallCardShadow |
Shadow | 小号卡片阴影 (视频/专栏等标题) |
---------------- | -------- | ------------- |
mainLeftBadge |
BadgeColor | 左主标签配色 (最外层的卡片为主标签) |
mainRightBadge |
BadgeColor | 右主标签配色 |
subLeftBadge |
BadgeColor | 左副标签配色 (内层的视频/专栏等卡片为副标签) |
subRightBadge |
BadgeColor | 右副标签配色 |
配置项 | 取值 | 说明 |
---|---|---|
shadowColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 阴影颜色 |
offsetX |
小数 | 阴影横向偏移 (右为正) |
offsetY |
小数 | 阴影横向偏移 (下为正) |
blur |
小数 | 阴影模糊 |
spread |
小数 | 阴影扩展 |
配置项 | 取值 | 说明 |
---|---|---|
fontColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 字体颜色 |
bgColorHex |
HEX颜色值 (#FB7299 / #A0FFFFFF) | 背景颜色 |
通过检测 动态 界面,检测账号关注的所有最新动态,再挑选出 QQ 订阅的动态,这样一个检测周期就可以检测所有最新动态 因此,本插件需要一个 B 站账号来订阅用户。 强烈推荐使用小号 如果让bot用你经常使用的账号可能会出现长期多次异地访问造成风控 无法添加关注 (插件有扫码登陆和自动关注自动添加分组功能,详细见下文)
如果账号没有关注过此人,bot 会自动关注并把他分到一个新分组中,方便管理
是否开启自动关注以及新分组的名称都可以在配置文件中进行配置
如果关闭自动关注,那么在 QQ 中订阅一个未关注的人时会提示 未关注
开启自动关注后,bot 会生成一个新分组(分组名可以在配置中设置),由 bot 新关注的人会被分到这个分组内,之前就关注过的不会移动
如果你想让 bot 关注就保存在默认分组中,请在配置中替换 followGroup
后面的值为两个引号 ""
选择下载 52.2MB 的字体压缩包文件, 请使用压缩包内 HarmonyOS_Sans_SC
目录下的字体, 此目录下的字体为简体中文
里面不同文件代表不同的粗细, 建议使用 Medium
请使用 bold
粗细的字体
下载到字体后请把字文件放到 data\top.colter.bilibili-dynamic-mirai-plugin\font
文件夹内
推荐使用 /bili login
指令进行登录
建议开启浏览器无痕模式
浏览器打开 BiliBili 并登陆
注:登陆后不要点退出登陆
按F12
,打开开发者工具
,找到Network / 网络
并点击
按F5
刷新页面,按下图复制 Cookie
把复制的 cookie 粘贴到配置文件中对应的位置, 并使用双引号包裹
data/top.colter.bilibili-dynamic-mirai-plugin
下新建 cookies.json
文件所有的图片都会缓存在 data/top.colter.bilibili-dynamic-mirai-plugin/cache
下
Mirai
ViViD按钮
B站: 猫芒ベル_Official 这么可爱不关注一下吗(❁´◡`❁)
B站: Colter_null 如果 GitHub 或论坛太长时间没回复可以去 B 站私信
cssxsh: bilibili-helper
Twitter Emoji: Twemoji