功能特性
推送逻辑机制
深入了解插件的抖音和B站推送实现原理
本页按当前 core 实现说明抖音与 B站推送的检测、去重和分发方式。
抖音推送 (Douyin)
抖音推送当前支持多种类型的监听:
post:作品更新favorite:喜欢列表更新recommend:推荐列表更新live:直播状态
隐私设置警告:这两个功能依赖于博主的隐私设置。如果博主将喜欢/推荐列表设置为“仅自己可见”,插件将无法获取数据并会输出警告日志。
核心机制
定时轮询
插件会根据 douyin.push.cron 定时轮询。订阅源本身保存在 pushlist 中,通常由 #设置抖音推送 抖音号 维护。
类型分发
针对每个订阅用户,系统会并行检查以下配置开启的推送类型:
- 作品 (Post): 用户的发布视频或图文。
- 喜欢 (Favorite): 用户点赞的内容(需用户公开喜欢列表)。
- 推荐 (Recommend): 用户推荐的内容(需用户公开推荐列表)。
- 直播 (Live): 用户的实时直播状态。
数据比对与去重
系统会把已推送记录写入数据库,按作品 ID 去重。这样即使你手动强制推送,也不会反复刷同一条内容。
渲染与分发
不同类型的推送会使用专属的 UI 模板进行渲染:
- 作品: 展示视频封面、标题、数据统计。
- 喜欢/推荐: 额外展示“谁喜欢了谁”或“谁推荐了谁”的关联信息,增强社交属性。
- 直播: 展示直播封面、标题、在线人数及直播间链接。
最后,渲染生成的图片会分发至所有订阅了该用户的群组和机器人。
Bilibili 推送
B站推送主要关注动态更新和直播状态。
核心流程
动态获取
通过 Bilibili API 获取订阅 UP 主的最近动态历史。
智能筛选
为了保证推送的时效性和质量,系统会执行以下筛选:
- 排除置顶:置顶动态通常是旧内容的长期展示,默认忽略。
- 时效限制:自动过滤发布时间超过 24 小时的旧动态(防止首次运行时刷屏)。
类型处理
支持多种动态类型的解析与渲染:
- 视频投稿 (
DYNAMIC_TYPE_AV): 提取封面、标题、简介,生成视频卡片。 - 图文动态 (
DYNAMIC_TYPE_DRAW): 展示图片预览。 - 直播推荐 (
DYNAMIC_TYPE_LIVE_RCMD): 当 UP 主通过动态发布开播通知时触发。 - 转发动态 (
DYNAMIC_TYPE_FORWARD): 嵌套展示原动态内容。
直播监控
除了依赖动态流中的开播通知,插件还会主动轮询直播状态,尽量避免漏掉未发动态的突袭直播。
去重机制
B站推送同样基于数据库进行严格去重。已推送的 dynamic_id 会被持久化存储,确保同一条动态不会重复打扰。
你最需要关心的配置
- 推送开关(
push.switch) - 谁可以设置推送(
push.permission) - 定时任务表达式(
push.cron) - 作品解析(
push.parsedynamic) - 画质偏好 / 解析视频动态时的画质偏好(
push.pushVideoQuality)
推送是否“能配置成功”,除了平台配置外,还取决于
pushlist 里是否存在正确的 群号:机器人账号 绑定。Last updated on