功能特性

推送逻辑机制

深入了解插件的抖音和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

On this page