Files
atlas/blogwatcher-daily/n8n/Blog Watcher Daily Scan.json
2026-09-14 19:06:23 +08:00

355 lines
9.0 KiB
JSON

{
"name": "Blog Watcher Daily Scan",
"nodes": [
{
"parameters": {
"command": "python3 ~/.hermes/skills/custom/blogwatcher-daily/scripts/blogwatcher-daily.py",
"cwd": "/Users/weishen/.hermes/skills/custom/blogwatcher-daily"
},
"type": "n8n-nodes-base.ssh",
"typeVersion": 1,
"position": [
-1968,
-208
],
"id": "213f8a64-4018-4bbe-be8f-73efc59b3a76",
"name": "扫描所有订阅",
"credentials": {
"sshPassword": {
"id": "MyXMNq72AJx65AUV",
"name": "macmini-ssh-password-account"
}
}
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [
-1472,
-208
],
"id": "7f50eeff-4013-449e-a32e-5ae9dff032ad",
"name": "Loop Over Items",
"executeOnce": false
},
{
"parameters": {
"jsCode": "const text = $input.first().json.stdout;\nconst maxLength = 4096;\nconst paragraphs = text.split('\\n');\nconst messages = [];\nlet currentMessage = '';\n\nfor (const para of paragraphs) {\n if ((currentMessage + '\\n' + para).length > maxLength) {\n if (currentMessage) messages.push({ text: currentMessage });\n currentMessage = para;\n } else {\n currentMessage += (currentMessage ? '\\n' : '') + para;\n }\n}\nif (currentMessage) messages.push({ text: currentMessage });\n\nreturn messages;"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
-1632,
-208
],
"id": "2f638ebb-8586-4681-bc86-f2a27b924684",
"name": "分割消息"
},
{
"parameters": {
"chatId": "5038825565",
"text": "={{ $json.stdout }}",
"additionalFields": {}
},
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
-1792,
0
],
"id": "befccd1f-06ea-4391-ad31-c12d2adebd44",
"name": "发送扫描概况",
"webhookId": "9dd2ca70-0312-4db2-85a6-74974a1f0ff6",
"credentials": {
"telegramApi": {
"id": "4OmmHajtdzPHY3Bp",
"name": "macmini-telegram-xingzhi-bot"
}
}
},
{
"parameters": {
"chatId": "5038825565",
"text": "={{ $json.text }}",
"additionalFields": {}
},
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
-1360,
-32
],
"id": "b21df8bf-98b6-450d-8c7c-2fb8fbc19a5a",
"name": "发送今日内容",
"webhookId": "89c751ee-c868-42f5-a276-b6914bb4a75f",
"credentials": {
"telegramApi": {
"id": "4OmmHajtdzPHY3Bp",
"name": "macmini-telegram-xingzhi-bot"
}
}
},
{
"parameters": {
"command": "python3 ~/.hermes/skills/custom/blogwatcher-daily/scripts/blogwatcher-daily.py --mark-read",
"cwd": "/Users/weishen/.hermes/skills/custom/blogwatcher-daily"
},
"type": "n8n-nodes-base.ssh",
"typeVersion": 1,
"position": [
-1792,
192
],
"id": "803cc417-5bc9-400c-baa4-ef6ec7fecfae",
"name": "标记今日内容为已读",
"credentials": {
"sshPassword": {
"id": "MyXMNq72AJx65AUV",
"name": "macmini-ssh-password-account"
}
}
},
{
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 6
}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.4,
"position": [
-2128,
-208
],
"id": "cf7875ab-6e01-4b2c-bc45-47e96f523a94",
"name": "Schedule Trigger"
},
{
"parameters": {
"fromEmail": "star-agent@agentmail.to",
"toEmail": "billyshen@163.com",
"subject": "=Blogwatcher Daily — {{new Date().toISOString().split('T')[0]}}",
"html": "={{ $json.stdout }}",
"options": {}
},
"type": "n8n-nodes-base.emailSend",
"typeVersion": 2.1,
"position": [
-1632,
-416
],
"id": "c5a0275b-d838-4e11-ae4c-75c7e6ea9645",
"name": "Send an Email",
"webhookId": "db6a011f-5124-43d3-9ae3-6da954e1bd3e",
"credentials": {
"smtp": {
"id": "ECOkUVEjqLwMGZaL",
"name": "agentmail-smtp-account"
}
}
},
{
"parameters": {
"command": "python3 ~/.hermes/skills/custom/blogwatcher-daily/scripts/blogwatcher-daily.py --export html",
"cwd": "/Users/weishen/.hermes/skills/custom/blogwatcher-daily"
},
"type": "n8n-nodes-base.ssh",
"typeVersion": 1,
"position": [
-1792,
-416
],
"id": "d49e9df7-e27f-4f13-8962-83ea01dfbaa8",
"name": "导出今日内容(HTML)",
"credentials": {
"sshPassword": {
"id": "MyXMNq72AJx65AUV",
"name": "macmini-ssh-password-account"
}
}
},
{
"parameters": {
"command": "python3 ~/.hermes/skills/custom/blogwatcher-daily/scripts/blogwatcher-daily.py --export markdown",
"cwd": "/Users/weishen/.hermes/skills/custom/blogwatcher-daily"
},
"type": "n8n-nodes-base.ssh",
"typeVersion": 1,
"position": [
-1792,
-208
],
"id": "79ef36f1-6377-4d8c-a95f-9f9f7d55d030",
"name": "导出今日内容(Markdown)",
"credentials": {
"sshPassword": {
"id": "MyXMNq72AJx65AUV",
"name": "macmini-ssh-password-account"
}
}
},
{
"parameters": {
"method": "POST",
"url": "http://192.168.3.189:8642/v1/chat/completions",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\n \"model\": \"hermes-agent\",\n \"messages\": [\n {\"role\": \"user\", \"content\": \"请用git-sync技能对/Users/weishen/Workspace/nexus 目录做一次git 同步\"}\n ],\n \"stream\": false\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.5,
"position": [
-1584,
192
],
"id": "c8e9813a-bcdb-4231-8826-8b0f5e109b3c",
"name": "对Blogwather 输出目录进行一次Git同步",
"credentials": {
"httpBearerAuth": {
"id": "GkmmyLXcesldpTDE",
"name": "macmini-hermes-default-api-key"
}
}
}
],
"pinData": {},
"connections": {
"扫描所有订阅": {
"main": [
[
{
"node": "发送扫描概况",
"type": "main",
"index": 0
},
{
"node": "导出今日内容(Markdown)",
"type": "main",
"index": 0
},
{
"node": "标记今日内容为已读",
"type": "main",
"index": 0
},
{
"node": "导出今日内容(HTML)",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[],
[
{
"node": "发送今日内容",
"type": "main",
"index": 0
}
]
]
},
"分割消息": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"发送今日内容": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "扫描所有订阅",
"type": "main",
"index": 0
}
]
]
},
"Send an Email": {
"main": [
[]
]
},
"导出今日内容(HTML)": {
"main": [
[
{
"node": "Send an Email",
"type": "main",
"index": 0
}
]
]
},
"导出今日内容(Markdown)": {
"main": [
[
{
"node": "分割消息",
"type": "main",
"index": 0
}
]
]
},
"标记今日内容为已读": {
"main": [
[
{
"node": "对Blogwather 输出目录进行一次Git同步",
"type": "main",
"index": 0
}
]
]
},
"对Blogwather 输出目录进行一次Git同步": {
"main": [
[]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1",
"binaryMode": "separate"
},
"versionId": "65bddf9b-f0da-49a5-bd5b-9158e665458c",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "0d85c1c8320c5fe7dfb1167fa257713dc13ee89925aa6b6c8e5825922abfa363"
},
"nodeGroups": [],
"id": "RXH496TViFuD0SKt",
"tags": []
}