Hacker News时光机 - 查看每年今日热门内容
中级
这是一个Other, AI领域的自动化工作流,包含 13 个节点。主要使用 Set, Code, Html, Merge, SplitOut 等节点,结合人工智能技术实现智能自动化。 Hacker News时光机 - 查看每年今日热门内容
前置要求
- •Telegram Bot Token
- •可能需要目标 API 的认证凭证
- •Google Gemini API Key
使用的节点 (13)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"nodes": [
{
"id": "6ea4e702-1af8-407b-b653-964a519db1c2",
"name": "基础LLM链",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1560,
-360
],
"parameters": {
"text": "=You are a highly skilled news categorizer, specializing in indentifying interesting stuff from Hacker News front-page headlines.\n\nYou are provided with JSON data containing a list of dates and their corresponding top headlines from the Hacker News front page. Each headline will also include a URL linking to the original article or discussion. Importantly, the dates provided will be the SAME DAY across MULTIPLE YEARS (e.g., January 1st, 2023, January 1st, 2022, January 1st, 2021, etc.). You need to indentify key headlines and also analyze how the tech landscape has evolved over the years, as reflected in the headlines for this specific day.\n\nYour task is to indentify top 10-15 headlines from across the years from the given json data and return in Markdown formatted bullet points categorizing into themes and adding markdown hyperlinks to the source URL with Prefixing Year before the headline. Follow the Output Foramt Mentioned.\n\n**Input Format:**\n\n```json\n[\n {\n \"headlines\": [\n \"Headline 1 Title [URL1]\",\n \"Headline 2 Title [URL2]\",\n \"Headline 3 Title [URL3]\",\n ...\n ]\n \"date\": \"YYYY-MM-DD\",\n },\n {\n \"headlines\": [\n \"Headline 1 Title [URL1]\",\n \"Headline 2 Title [URL2]\",\n ...\n ]\n \"date\": \"YYYY-MM-DD\",\n },\n ...\n]\n```\n\n**Output Format In Markdown**\n\n```\n# HN Lookback <FullMonthName-DD> | <start YYYY> to <end YYYY> \n\n## [Theme 1]\n- YYYY [Headline 1](URL1)\n- YYYY [Headline 2](URL2)\n...\n\n## [Theme 2]\n- YYYY [Headline 1](URL1)\n- YYYY [Headline 2](URL2)\n...\n\n... \n\n## <this is optional>\n<if any interesing ternds emerge mention them in oneline>\n```\n\n**Here is the Json data for Hackernews Headlines across the years**\n\n```\n{{ JSON.stringify($json.data) }}\n```",
"promptType": "define"
},
"typeVersion": 1.5
},
{
"id": "b5a97c2a-0c3b-4ebe-aec5-7bca6b55ad4c",
"name": "Google Gemini 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1740,
-200
],
"parameters": {
"options": {},
"modelName": "models/gemini-1.5-pro"
},
"credentials": {
"googlePalmApi": {
"id": "Hx1fn2jrUvojSKye",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "18cba750-aef5-451d-880f-2c12d8540d78",
"name": "由 Github 模型提供支持",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-380,
-360
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 21
}
]
}
},
"typeVersion": 1.2
},
{
"id": "341da616-8670-4cd9-b47a-ee25e2ae9862",
"name": "创建年份列表",
"type": "n8n-nodes-base.code",
"position": [
-200,
-360
],
"parameters": {
"jsCode": "for (const item of $input.all()) {\n const currentDateStr = item.json.timestamp.split('T')[0];\n const currentDate = new Date(currentDateStr);\n const currentYear = currentDate.getFullYear();\n const currentMonth = currentDate.getMonth(); // 0 for January, 1 for February, etc.\n const currentDay = currentDate.getDate();\n\n const datesToFetch = [];\n for (let year = currentYear; year >= 2007; year--) {\n let targetDate;\n if (year === 2007) {\n // Special handling for 2007 to start from Feb 19\n if (currentMonth > 1 || (currentMonth === 1 && currentDay >= 19))\n {\n targetDate = new Date(2007, 1, 19); // Feb 19, 2007\n } else {\n continue; // Skip 2007 if currentDate is before Feb 19\n }\n } else {\n targetDate = new Date(year, currentMonth, currentDay);\n }\n \n // Format the date as YYYY-MM-DD\n const formattedDate = targetDate.toISOString().split('T')[0];\n datesToFetch.push(formattedDate);\n }\n item.json.datesToFetch = datesToFetch;\n}\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "42e24547-be24-4f29-8ce8-c0df7d47a6ff",
"name": "清理年份列表",
"type": "n8n-nodes-base.set",
"position": [
0,
-360
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b269dc0d-21e1-4124-8f3a-2c7bfa4add5c",
"name": "datesToFetch",
"type": "array",
"value": "={{ $json.datesToFetch }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "6e51ad05-0f3d-4bfb-8c8d-5b71e7355344",
"name": "拆分年份列表",
"type": "n8n-nodes-base.splitOut",
"position": [
200,
-360
],
"parameters": {
"options": {},
"fieldToSplitOut": "datesToFetch"
},
"typeVersion": 1
},
{
"id": "6f827071-718f-4e27-9f7a-cc50296f7bc4",
"name": "获取首页",
"type": "n8n-nodes-base.httpRequest",
"position": [
420,
-360
],
"parameters": {
"url": "=https://news.ycombinator.com/front",
"options": {
"batching": {
"batch": {
"batchSize": 1,
"batchInterval": 3000
}
}
},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "day",
"value": "={{ $json.datesToFetch }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "7287e6b1-337f-4634-ac23-5ceaa87b0db3",
"name": "提取详细信息",
"type": "n8n-nodes-base.html",
"position": [
640,
-360
],
"parameters": {
"options": {},
"operation": "extractHtmlContent",
"extractionValues": {
"values": [
{
"key": "=headlines",
"cssSelector": ".titleline",
"returnArray": true,
"skipSelectors": "span"
},
{
"key": "date",
"cssSelector": ".pagetop > font"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "fceff31e-4dcd-4199-89c5-8eb75cd479bf",
"name": "获取头条新闻",
"type": "n8n-nodes-base.set",
"position": [
920,
-460
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e1ce33e9-e4f8-4215-bbdb-156a955a0a97",
"name": "headlines",
"type": "array",
"value": "={{ $json.headlines }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f7683614-7225-4f05-ba12-86b326fdb4a1",
"name": "获取日期",
"type": "n8n-nodes-base.set",
"position": [
920,
-280
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "fc1d15f6-a999-4d6b-a7bc-3ffa9427679e",
"name": "date",
"type": "string",
"value": "={{ $json.date }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "7e09ce85-ece1-46a0-aa59-8e3da66413b2",
"name": "合并头条与日期",
"type": "n8n-nodes-base.merge",
"position": [
1180,
-360
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3
},
{
"id": "db3bf408-8179-4ca4-a5b4-8a390b68f994",
"name": "单一JSON",
"type": "n8n-nodes-base.aggregate",
"position": [
1380,
-360
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "2abbc0e9-ed1e-4ba0-9d2f-7c3cd314a0fe",
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
2020,
-360
],
"parameters": {
"text": "={{ $json.text }}",
"chatId": "@OnThisDayHN",
"additionalFields": {
"parse_mode": "Markdown",
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"id": "6nIwfhIWcwJFTPTg",
"name": "OnThisDayHNBot"
}
},
"typeVersion": 1.2
}
],
"pinData": {},
"connections": {
"GetDate": {
"main": [
[
{
"node": "MergeHeadlinesDate",
"type": "main",
"index": 1
}
]
]
},
"SingleJson": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"GetFrontPage": {
"main": [
[
{
"node": "ExtractDetails",
"type": "main",
"index": 0
}
]
]
},
"GetHeadlines": {
"main": [
[
{
"node": "MergeHeadlinesDate",
"type": "main",
"index": 0
}
]
]
},
"ExtractDetails": {
"main": [
[
{
"node": "GetHeadlines",
"type": "main",
"index": 0
},
{
"node": "GetDate",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "Telegram",
"type": "main",
"index": 0
}
]
]
},
"CleanUpYearList": {
"main": [
[
{
"node": "SplitOutYearList",
"type": "main",
"index": 0
}
]
]
},
"CreateYearsList": {
"main": [
[
{
"node": "CleanUpYearList",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "CreateYearsList",
"type": "main",
"index": 0
}
]
]
},
"SplitOutYearList": {
"main": [
[
{
"node": "GetFrontPage",
"type": "main",
"index": 0
}
]
]
},
"MergeHeadlinesDate": {
"main": [
[
{
"node": "SingleJson",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 其他, 人工智能
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
从HN学习任何内容 - 获取Hacker News顶级资源推荐
从HN学习任何内容 - 获取Hacker News顶级资源推荐
Markdown
Split Out
Aggregate
+7
10 节点ibrhdotme
其他
您喜爱频道的高级YouTube RSS Feed伙伴
通过RSS源监控喜爱的YouTube频道并接收通知
Set
Code
Gmail
+13
41 节点Joseph LePage
其他
🤖🧑💻 用于n8n创作者排行榜报告的AI代理
🤖🧑💻 用于顶级n8n创作者排行榜报告的AI代理
Set
Sort
Gmail
+18
49 节点Joseph LePage
人工智能
⚡AI驱动的YouTube播放列表和视频摘要与分析v2
AI YouTube播放列表与视频分析聊天机器人
If
Set
Code
+20
72 节点dmr
其他
为您的电子邮件生成可视化摘要和知识图谱洞察
为您的电子邮件生成可视化摘要和知识图谱洞察
If
Set
Code
+13
38 节点InfraNodus
其他