尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

超越hackernews-daily:复刻headllines模式,打造你自己的Hacker News周报月报聚合器

超越hackernews-daily:复刻headllines模式,打造你自己的Hacker News周报月报聚合器 超越hackernews-daily复刻headllines模式打造你自己的Hacker News周报月报聚合器【免费下载链接】hackernews-dailyHacker News daily top 10 posts项目地址: https://gitcode.com/gh_mirrors/ha/hackernews-dailyhackernews-daily 是一个开源的 Hacker News 头条聚合器它每天定时抓取 Hacker News 最热的 10 条帖子自动发布为项目仓库的 Issue你再通过 Watch 或 RSS 订阅就能零成本收到推送。这篇文章先拆解它的实现原理再手把手教你复刻 headllines 这套模式用不到 10 行改动打造属于自己的 Hacker News 周报 / 月报聚合器 hackernews-daily 工作原理三步流水线整个项目结构极简核心流程只有三步抓取头条—— 每天 UTC 00:01 定时运行调用 Hacker News 的 Algolia 搜索接口按热度取最近 25 小时内得分最高的 10 条帖子发布 Issue—— 在仓库里自动新建一个 Issue标题格式为Hacker News Daily Top 10 日期正文是 Markdown 排版好的标题、原文链接、投票数与评论数锁定 Issue—— 发布后立即加锁防止无关回复污染内容流。之后你甚至不需要打开网站只要Watch 这个仓库新 Issue 就会通过邮件通知你或者把 Issue 流转成 RSS订阅到任意 RSS 阅读器。核心代码解析3 个文件看懂全部逻辑项目文件不多所有逻辑集中在下面几个模块模块路径职责index.js主入口串联「抓取 → 开 Issue → 锁 Issue」流程utils/getHeadlines.js调用 HN 搜索接口取 Top 10并格式化为 Markdownutils/issue.js基于 GitHub App 鉴权自动创建与锁定 Issuetest/getHeadlines.jsMocha 单元测试验证抓取函数 最值得借鉴的细节有两处时间窗口技巧utils/getHeadlines.js计算起点时并没有从当天 0 点开始而是向前多取 1 小时共 25 小时专门兜住前一天深夜发布、可能漏掉的帖子密钥管理utils/issue.js使用 GitHub App 认证clientSecret 与 privateKey 通过环境变量或本地 secret 文件注入代码里不硬编码敏感信息。复刻 headllines 模式4 步打造你的 Hacker News 周报月报聚合器headllines 模式的本质是定时任务 公开数据 API 以 Issue 为内容载体 Watch/RSS 订阅。把「每天」换成「每周 / 每月」就是一份全新的聚合器 第一步获取项目git clone https://gitcode.com/gh_mirrors/ha/hackernews-daily第二步把时间窗口从「1天」改成「1周 / 1个月」关键改动在utils/getHeadlines.js的时间窗口计算处当前为 25 小时// 日报模式当前为 25 小时 const startTime Math.round(new Date(date).getTime() / 1000) - (25 * 60 * 60); // 周报改为 7 * 24 * 60 * 60月报改为 30 * 24 * 60 * 60同时可以把slice(0, 10)的条数调大或增加最低得分门槛让周报月报更有含金量。第三步修改仓库与标题在index.js中调整两处标题Hacker News Daily Top 10 ...改为 Weekly周报或 Monthly月报owner / repo指向你自己的仓库让日报、周报、月报各自独立方便分开订阅。第四步配置凭据并定时执行凭据注册一个 GitHub App把 clientSecret、privateKey 写入运行环境变量加载方式参考utils/issue.js定时用 cron 或代码托管平台的定时任务触发——周报每周固定时间跑一次月报每月 1 号跑一次即可。如何订阅两种推送方式聚合器的价值在于「内容主动推给你」而不是「你自己去找」仓库 Watch在目标仓库点击 Watch新 Issue 出现时自动收到邮件通知RSS 订阅利用把 GitHub Issue 转为 RSS 的工具如 RSSHub 的 Issue 路由生成订阅源接入你常用的 RSS 阅读器 进阶思路换个数据源复刻任意主题聚合器模式跑通之后换新数据源只需替换utils/getHeadlines.js里的「抓取」这一步数据源可以从 Hacker News 换成其他公开 API如 Product Hunt、arXiv 摘要流等内容格式可以加最低热度过滤、按主题分组甚至自动翻译成中文。无论日报、周报还是月报骨架都不变定时抓取 Issue 承载 被动订阅。用最小的成本让优质内容自动流进你的收件箱这正是 headllines 模式的完整魅力 ✨【免费下载链接】hackernews-dailyHacker News daily top 10 posts项目地址: https://gitcode.com/gh_mirrors/ha/hackernews-daily创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表