
做了一个小工具,每天自动从 V2EX 和 Hacker News 抓取热门内容,评分排序,可选 AI 总结,输出 Markdown 日报。
GitHub: https://github.com/jackwener/kabi-digest
跑一次大概这样:
collect 2026-03-01 Hacker News Fetching top... 30 stories V2EX (pages: 3) Fetching hot... 9 topics Fetching create... 60 topics Fetching programmer... 60 topics HN: 30 fetched → 85 total in pool V2EX: 129 fetched → 203 total in pool Data collected. 生成时:
HN: 0 fetched, 85 pooled → 20 ranked V2EX: 0 fetched, 203 pooled → 20 ranked Enriching V2EX items with supplements... 想要给父母在农村建个四合院... 2 条附言 (API) 公司的 AI 客服被真人干掉了... (Jina fallback) OpenAI raises $110B... 全职独立开发满一个月... out/hn-2026-03-01.md out/v2ex-2026-03-01.md 一开始只是想用 V2EX API 抓个热门列表,后来发现光一次 /topics/hot.json 只有 10 条不太够,就加了分页抓取和数据累积。
collect / generate 分离是为了省 token:白天定时 collect 只积累原始数据,晚上跑一次 generate --no-fetch 一次性评分 + AI 总结。这样 AI 只花一份 token ,但候选池是一整天多次采集的结果。
评分算法直接搬的 HN 排名公式:score = (engagement - 1) / (hours + 2) ^ 1.8,新且热门的帖子得分高,老帖自然衰减。V2EX 用回复数当 engagement ,HN 用 points 。
V2EX 附言是通过 V2 API 的 GET /topics/:id 拿到的 supplements 字段(官方文档没写但实际返回有)。API 失败时 fallback 到 Jina Reader 直接抓帖子页面。
bun install cp config.example.yaml config.yaml bun run generate --no-ai # 先不配 AI key ,看看效果 不配 AI key 也能用,只是没有摘要,输出标题 + 元数据。