juryory

OpenClaw 豆瓣高分监控

- 生成适合公众号发布的内容稿件

juryory 1 Updated 1mo ago

Resources

11
GitHub

Install

npx skillscat add juryory/douban-monitor

Install via the SkillsCat registry.

SKILL.md

OpenClaw 豆瓣高分监控

目标

这个 skill 用来监控豆瓣里“近期新出现并达到门槛”的影视内容,默认关注以下条件:

  • 豆瓣评分大于 8.0
  • 豆瓣评分人数大于 3000
  • 条目是首次达标,或者后续热度显著增长,值得进一步关注

数据源策略

采用"豆瓣侧 + TMDB 侧"的混合候选池,只依赖 HTTP 请求,不需要浏览器环境。

来源职责:

  • 豆瓣榜单
    发现近期热门候选。优先使用 Frodo API(带 HMAC 签名),失败时自动降级到 Rexxar API(m.douban.com 移动网页版接口,无需签名)
  • 豆瓣详情
    提供评分和评分人数真值。同样 Frodo → Rexxar 自动降级
  • TMDB 热门接口
    提供额外候选和展示元数据

默认配置的豆瓣榜单包括:

  • 电影
  • 华语剧集
  • 全球剧集
  • 国内综艺
  • 国外综艺

抓取策略

  1. 调用 Frodo API 获取豆瓣各榜单的候选列表,接口直接返回条目 ID、标题、评分和评分人数
  2. 任一榜单 Frodo 失败(400 / 签名错误 / IP 风控),自动改用 Rexxar API 抓同一个 collection 的相同接口
  3. 对于榜单已包含完整评分数据的条目,跳过详情页请求
  4. 对于缺少评分数据的条目(如 TMDB 候选),先用 Frodo 详情接口补全,失败时同样降级到 Rexxar

执行流程

对应 monitor.py[1/8] ~ [8/8]

  1. 抓取豆瓣多榜单候选
  2. 抓取 TMDB 候选
  3. 去重并补全详情页,提取评分和评分人数
  4. 更新状态与监控库,判定新增命中、继续观察和二次提醒
  5. 写入状态文件、监控库和 Markdown 报告
  6. 生成前端结果数据 douban-monitor-result.json,为每条达标条目附带入库时间(qualified_at / first_discovered_at
  7. 生成网页附加数据:fetch_favorites.py 手动收藏、fetch_posters.py 封面、fetch_metadata.py 元数据、fetch_reviews.py 短评
  8. 拉取远端最新代码,提交数据变更并推送到 GitHub

抓取失败保护:若第 1、2 步豆瓣和 TMDB 全部失败、当日候选数为 0,第 5 步跳过 Markdown 报告写入、第 6 步跳过 result.json 写入,保留上一份好数据,避免网页刷新成空。

推送保护:第 8 步 git pull --rebase --autostash 失败或检测到待提交文件中出现合并冲突标记时立即中止,不提交坏数据。

可视化网页

项目根目录的 index.html 是一个静态网页,读取 data/ 下的 JSON 文件展示达标内容。

  • 暗色主题瀑布流卡片布局
  • 支持电影 / 剧集 / 综艺分类切换和多维排序,默认"最近入库"按真实入库时间(qualified_at / first_discovered_at)倒序
  • 卡片包含封面、评分、类型标签、简介、上映日期,点击跳转豆瓣详情页
  • 数据来源:douban-monitor-result.jsondouban-monitor-favorites-result.jsondouban-monitor-posters.jsondouban-monitor-metadata.jsondouban-monitor-reviews.json

核心规则

首次达标

满足以下条件时视为“新增命中”:

  • 评分大于 min_rating
  • 评分人数大于 min_rating_count
  • 历史状态中此前未达标

继续观察

未达到最终门槛但仍有潜力的条目继续进入监控库,例如:

  • 评分已经接近目标
  • 评分人数已具备增长空间
  • 仍然出现在榜单来源中

入库规则

不要把所有候选都永久加入监控库。只有具备一定潜力的条目才会继续跟踪。

入库参考条件:

  • 出现在豆瓣榜单页
  • 出现在选定的 TMDB 热门源
  • 豆瓣评分大于等于 7.5
  • 豆瓣评分人数大于等于 1000

当前状态

当前版本已经验证通过:

  • 纯 HTTP 抓取:Frodo + Rexxar 双通道,任一通道挂掉自动切另一条,无需浏览器
  • 状态文件、监控库、Markdown 报告输出
  • 阈值筛选与新增命中判定
  • 网页可视化展示(瀑布流卡片布局、封面、简介、评分、短评)
  • 手动收藏:data/douban-monitor-favorites.json 填豆瓣 ID 即可在网页展示
  • 最近入库排序:达标条目携带入库时间戳,网页按真实入库时间排序
  • TMDB 封面和元数据自动获取
  • GitHub Actions 定时自动运行(每天 09:00 / 21:00)
  • 抓取失败和推送冲突有兜底保护,不会覆盖或污染历史数据

当前已打通的榜单类型:

  • 电影
  • 华语剧集
  • 全球剧集
  • 国内综艺
  • 国外综艺

已知限制

  • 豆瓣侧抓取优先走 Frodo API(带签名);Frodo 任一榜单或详情失败时自动降级到 Rexxar API(m.douban.com 移动网页版接口,无需签名)。Frodo 和 Rexxar 同时挂掉的概率很低
  • 未配置 TMDB_API_KEY 时,TMDB 候选源和网页封面/元数据不会生效

后续扩展

  • 支持豆瓣 Cookie,提升榜单和搜索相关页面稳定性
  • 接入 MoviePilot,实现命中内容自动推送或下载
  • 生成适合公众号发布的内容稿件