用途:按关键词监控 Hacker News 新帖,避免重复提醒,只把新匹配内容发到 Slack。
主要能力:读取 HN_KEYWORDS(逗号分隔的关键词)与 SLACK_WEBHOOK;对每个关键词调用 HN Algolia 的 search_by_date 接口,用 created_at_i 过滤新帖;以 objectID 在 SQLite 的 seen_posts 表中去重;可选 HN_MIN_POINTS 设置最低分数阈值,可选 HN_INCLUDE_COMMENTS=true 同时监控评论(默认关闭);结果写入 poll_log 并在 stdout 打印汇总。
使用方式:先确认环境变量与依赖(缺少 better-sqlite3 时执行 npm install),再运行 node scripts/monitor-hn.js。常用参数:--dry-run 仅打印不发送 Slack;--days=N 首次运行回看天数(默认 1,仅缓存为空时生效);--reset 清空缓存重来。可用 cron(如 0 */4 * * * 每四小时)或 GitHub Actions 定时执行。
限制:GitHub Actions 不在运行间保留文件,SQLite 缓存每次重置,可能导致重复提醒,需另存数据库到持久位置。HN_DB_PATH 默认 ./hn-intel.db。修改关键词无需重启,脚本每次运行重新读取。若首次结果为空,可尝试 --days=7、--reset 或使用更具体的关键词。文档中未提供价格、平台支持范围等信息。