功能特性
推送逻辑机制
深入了解插件的抖音和B站推送实现原理
本页详细介绍了插件针对抖音和 Bilibili 平台的推送检测与分发逻辑,帮助用户理解推送的触发机制、去重策略及新特性。
抖音推送 (Douyin)
抖音推送模块支持多种类型的动态监听,包括作品更新、点赞操作、推荐列表更新以及直播状态。
新特性:交互行为推送
此功能将于 v2.19.0 版本中发布!
在最新版本中,我们引入了对用户交互行为的监控能力,让你能第一时间捕捉到博主的兴趣动态。
隐私设置警告:这两个功能依赖于博主的隐私设置。如果博主将喜欢/推荐列表设置为“仅自己可见”,插件将无法获取数据并会输出警告日志。
核心机制
定时轮询
插件会根据配置文件 config/pushlist.yaml 中的设置,定期轮询已订阅用户的状态。
类型分发
针对每个订阅用户,系统会并行检查以下配置开启的推送类型:
- 作品 (Post): 用户的发布视频或图文。
- 喜欢 (Favorite): 用户点赞的内容(需用户公开喜欢列表)。
- 推荐 (Recommend): 用户推荐的内容(需用户公开推荐列表)。
- 直播 (Live): 用户的实时直播状态。
数据比对与去重
系统维护一个 SQLite 数据库 (douyin.db),记录已推送过的 aweme_id。
每次获取到最新列表(通常为前5条)后,会与数据库中的记录进行比对。只有未存在于数据库中且符合过滤条件(如屏蔽词)的新内容才会被推送。
渲染与分发
不同类型的推送会使用专属的 UI 模板进行渲染:
- 作品: 展示视频封面、标题、数据统计。
- 喜欢/推荐: 额外展示“谁喜欢了谁”或“谁推荐了谁”的关联信息,增强社交属性。
- 直播: 展示直播封面、标题、在线人数及直播间链接。
最后,渲染生成的图片会分发至所有订阅了该用户的群组和机器人。
Bilibili 推送
B站推送主要涵盖动态更新和直播状态监控。
核心流程
动态获取
通过 Bilibili API 获取订阅 UP 主的最近动态历史。
智能筛选
为了保证推送的时效性和质量,系统会执行以下筛选:
- 排除置顶:置顶动态通常是旧内容的长期展示,默认忽略。
- 时效限制:自动过滤发布时间超过 24 小时的旧动态(防止首次运行时刷屏)。
类型处理
支持多种动态类型的解析与渲染:
- 视频投稿 (
DYNAMIC_TYPE_AV): 提取封面、标题、简介,生成视频卡片。 - 图文动态 (
DYNAMIC_TYPE_DRAW): 展示图片预览。 - 直播推荐 (
DYNAMIC_TYPE_LIVE_RCMD): 当 UP 主通过动态发布开播通知时触发。 - 转发动态 (
DYNAMIC_TYPE_FORWARD): 嵌套展示原动态内容。
直播监控
除了依赖动态流中的开播通知,插件还包含独立的状态轮询机制,主动检测直播间状态变化(Off -> On),确保不错过未发动态的突袭直播。
去重机制
B站推送同样基于数据库进行严格去重。已推送的 dynamic_id 会被持久化存储,确保同一条动态不会重复打扰。
Last updated on