From 76c045cb1c9abe65d8ef7626b42c7843bf59d4f8 Mon Sep 17 00:00:00 2001 From: gitea Date: Mon, 1 Jan 2001 00:00:00 +0000 Subject: [PATCH] Add MyDealzBest.json --- MyDealzBest.json | 681 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 681 insertions(+) create mode 100644 MyDealzBest.json diff --git a/MyDealzBest.json b/MyDealzBest.json new file mode 100644 index 0000000..1fddc53 --- /dev/null +++ b/MyDealzBest.json @@ -0,0 +1,681 @@ +{ + "updatedAt": "2025-12-08T13:42:34.000Z", + "createdAt": "2025-12-08T10:31:16.680Z", + "id": "GR1gqXtazt67q0cb", + "name": "MyDealzBest", + "active": true, + "isArchived": false, + "nodes": [ + { + "parameters": { + "url": "https://www.mydealz.de/", + "sendHeaders": true, + "headerParameters": { + "parameters": [ + {} + ] + }, + "options": {} + }, + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 4.3, + "position": [ + 224, + 0 + ], + "id": "2d03a805-1669-4fae-bba8-82e75fce401f", + "name": "HTTP Request", + "retryOnFail": false + }, + { + "parameters": { + "operation": "extractHtmlContent", + "extractionValues": { + "values": [ + { + "key": "deal", + "cssSelector": ".thread--deal", + "returnValue": "html", + "returnArray": true + } + ] + }, + "options": { + "trimValues": false, + "cleanUpText": false + } + }, + "type": "n8n-nodes-base.html", + "typeVersion": 1.2, + "position": [ + 432, + 0 + ], + "id": "61eab985-2ef7-4eb1-980a-be843607a6f4", + "name": "HTML" + }, + { + "parameters": { + "operation": "extractHtmlContent", + "dataPropertyName": "deal", + "extractionValues": { + "values": [ + { + "key": "title", + "cssSelector": ".thread-link", + "returnValue": "attribute", + "attribute": "title" + }, + { + "key": "href", + "cssSelector": ".thread-link", + "returnValue": "attribute", + "attribute": "href" + }, + { + "key": "price", + "cssSelector": ".js-vue3", + "returnValue": "attribute", + "attribute": "data-vue3" + } + ] + }, + "options": { + "trimValues": false + } + }, + "type": "n8n-nodes-base.html", + "typeVersion": 1.2, + "position": [ + 640, + 0 + ], + "id": "4b37c3af-a7ff-4c06-99e9-f658d85d577e", + "name": "HTML1" + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "d24b314b-ed33-42c0-8c8f-6552572fd5a6", + "name": "thread_id", + "value": "={{ $json.price.match(\"threadId\\\":\\\"([0-9]+)\")[1]}}", + "type": "number" + }, + { + "id": "319ad3c4-299a-4083-96bb-166205377465", + "name": "price", + "value": "={{ $json.price.match(\"price\\\":([0-9.]+)\")[1] }}", + "type": "number" + }, + { + "id": "0535fa09-5dcd-4287-9f04-d612fba1b5a1", + "name": "nextBestPrice", + "value": "={{ $json.price.match(\"nextBestPrice\\\":([0-9.]+)\")[1]}}", + "type": "number" + }, + { + "id": "1e476b3e-1a4c-40b3-89b2-9600352a1c69", + "name": "isHot", + "value": "={{ $json.price.match(\"isHot\\\":(true|false),\\\"\")[1]}}", + "type": "boolean" + }, + { + "id": "4b14ec00-4e9a-4be2-b170-b6217ee95cbb", + "name": "temperature", + "value": "={{ $json.price.match(\"temperatureLevel\\\":\\\"(.*?)\\\",\")[1]}}", + "type": "string" + } + ] + }, + "includeOtherFields": true, + "include": "except", + "excludeFields": "price", + "options": {} + }, + "type": "n8n-nodes-base.set", + "typeVersion": 3.4, + "position": [ + 848, + 0 + ], + "id": "bb646ae1-eb22-490d-be64-600dd0d4995e", + "name": "Edit Fields" + }, + { + "parameters": { + "chatId": "=302560724", + "text": "=Thread-ID: {{ $json.thread_id }}\nTemperatur: {{ $json.temperature }}\nPrice: {{ $json.price }} / {{ $json.nextbestprice }}\n\nTitle: {{ $json.title }}\nURL: {{ $json.url }}\n\n{{ $json.created_at }}\n{{ $json.updated_at }}", + "additionalFields": {} + }, + "type": "n8n-nodes-base.telegram", + "typeVersion": 1.2, + "position": [ + 1776, + 0 + ], + "id": "30468d2b-44ef-41f0-9155-85b64c533882", + "name": "Send a text message", + "webhookId": "6bb12551-6d47-40b7-8ffc-594e66295b8f", + "credentials": { + "telegramApi": { + "id": "k5rX2fD1IwPWwuCY", + "name": "Telegram_mydealzcmts_bot" + } + } + }, + { + "parameters": { + "operation": "select", + "schema": { + "__rl": true, + "value": "dealz", + "mode": "list", + "cachedResultName": "dealz" + }, + "table": { + "__rl": true, + "value": "deals", + "mode": "list", + "cachedResultName": "deals" + }, + "where": { + "values": [ + { + "column": "send", + "value": "false" + } + ] + }, + "sort": { + "values": [ + { + "column": "temperature", + "direction": "DESC" + } + ] + }, + "options": {} + }, + "type": "n8n-nodes-base.postgres", + "typeVersion": 2.6, + "position": [ + 1328, + 0 + ], + "id": "444e568f-7ca2-4f06-addc-c919b4b22cfd", + "name": "Select rows from a table", + "executeOnce": true, + "credentials": { + "postgres": { + "id": "KfuCkzCoRyZId8cM", + "name": "Postgress-MyDealz" + } + } + }, + { + "parameters": { + "operation": "upsert", + "schema": { + "__rl": true, + "value": "dealz", + "mode": "list", + "cachedResultName": "dealz" + }, + "table": { + "__rl": true, + "value": "deals", + "mode": "list", + "cachedResultName": "deals" + }, + "columns": { + "mappingMode": "defineBelow", + "value": { + "ishot": "={{ $json.isHot }}", + "thread_id": "={{ $json.thread_id }}", + "title": "={{ $json.title }}", + "price": "={{ $json.price }}", + "nextbestprice": "={{ $json.nextBestPrice }}", + "url": "={{ $json.href }}", + "temperature": "={{ $json.temperature }}" + }, + "matchingColumns": [ + "thread_id" + ], + "schema": [ + { + "id": "thread_id", + "displayName": "thread_id", + "required": true, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "title", + "displayName": "title", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": false + }, + { + "id": "temperature", + "displayName": "temperature", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": false, + "removed": false + }, + { + "id": "price", + "displayName": "price", + "required": false, + "defaultMatch": false, + "display": true, + "type": "number", + "canBeUsedToMatch": false + }, + { + "id": "nextbestprice", + "displayName": "nextbestprice", + "required": false, + "defaultMatch": false, + "display": true, + "type": "number", + "canBeUsedToMatch": false + }, + { + "id": "ishot", + "displayName": "ishot", + "required": false, + "defaultMatch": false, + "display": true, + "type": "boolean", + "canBeUsedToMatch": false + }, + { + "id": "url", + "displayName": "url", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": false + }, + { + "id": "created_at", + "displayName": "created_at", + "required": false, + "defaultMatch": false, + "display": true, + "type": "dateTime", + "canBeUsedToMatch": false + }, + { + "id": "updated_at", + "displayName": "updated_at", + "required": false, + "defaultMatch": false, + "display": true, + "type": "dateTime", + "canBeUsedToMatch": false + } + ], + "attemptToConvertTypes": false, + "convertFieldsToString": false + }, + "options": {} + }, + "type": "n8n-nodes-base.postgres", + "typeVersion": 2.6, + "position": [ + 1088, + 0 + ], + "id": "b21d664f-480f-4393-bb6b-8c303009b0ce", + "name": "Insert or update rows in a table", + "executeOnce": false, + "credentials": { + "postgres": { + "id": "KfuCkzCoRyZId8cM", + "name": "Postgress-MyDealz" + } + } + }, + { + "parameters": { + "operation": "update", + "schema": { + "__rl": true, + "value": "dealz", + "mode": "list", + "cachedResultName": "dealz" + }, + "table": { + "__rl": true, + "value": "deals", + "mode": "list", + "cachedResultName": "deals" + }, + "columns": { + "mappingMode": "defineBelow", + "value": { + "send": true, + "updated_at": "={{ $now }}", + "thread_id": "={{ $json.thread_id }}" + }, + "matchingColumns": [ + "thread_id" + ], + "schema": [ + { + "id": "thread_id", + "displayName": "thread_id", + "required": true, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": false + }, + { + "id": "title", + "displayName": "title", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": true + }, + { + "id": "temperature", + "displayName": "temperature", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": true + }, + { + "id": "price", + "displayName": "price", + "required": false, + "defaultMatch": false, + "display": true, + "type": "number", + "canBeUsedToMatch": true, + "removed": true + }, + { + "id": "nextbestprice", + "displayName": "nextbestprice", + "required": false, + "defaultMatch": false, + "display": true, + "type": "number", + "canBeUsedToMatch": true, + "removed": true + }, + { + "id": "ishot", + "displayName": "ishot", + "required": false, + "defaultMatch": false, + "display": true, + "type": "boolean", + "canBeUsedToMatch": true, + "removed": true + }, + { + "id": "url", + "displayName": "url", + "required": false, + "defaultMatch": false, + "display": true, + "type": "string", + "canBeUsedToMatch": true, + "removed": true + }, + { + "id": "send", + "displayName": "send", + "required": false, + "defaultMatch": false, + "display": true, + "type": "boolean", + "canBeUsedToMatch": true + }, + { + "id": "created_at", + "displayName": "created_at", + "required": false, + "defaultMatch": false, + "display": true, + "type": "dateTime", + "canBeUsedToMatch": true, + "removed": true + }, + { + "id": "updated_at", + "displayName": "updated_at", + "required": false, + "defaultMatch": false, + "display": true, + "type": "dateTime", + "canBeUsedToMatch": true + } + ], + "attemptToConvertTypes": false, + "convertFieldsToString": false + }, + "options": {} + }, + "type": "n8n-nodes-base.postgres", + "typeVersion": 2.6, + "position": [ + 1776, + -128 + ], + "id": "f178423a-30e2-471d-82ac-a0b89224ba6b", + "name": "Update rows in a table", + "credentials": { + "postgres": { + "id": "KfuCkzCoRyZId8cM", + "name": "Postgress-MyDealz" + } + } + }, + { + "parameters": { + "rule": { + "interval": [ + { + "field": "hours", + "hoursInterval": 2, + "triggerAtMinute": "={{ 0 }}" + } + ] + } + }, + "type": "n8n-nodes-base.scheduleTrigger", + "typeVersion": 1.3, + "position": [ + -400, + 0 + ], + "id": "9d501eff-0b54-483c-b87b-61e9c08c8722", + "name": "Schedule Trigger" + }, + { + "parameters": { + "jsCode": "// Konfiguration: Wieviele Minuten maximal warten?\nconst minMinutes = 1;\nconst maxMinutes = 25;\n\n// Zufallsberechnung in Sekunden\nconst randomSeconds = Math.floor(Math.random() * (maxMinutes * 60 - minMinutes * 60 + 1) + minMinutes * 60);\n\nreturn [\n {\n json: {\n wait_time: randomSeconds,\n info: `Ich warte jetzt ${Math.floor(randomSeconds / 60)} Minuten und ${randomSeconds % 60} Sekunden.`\n }\n }\n];" + }, + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [ + -192, + 0 + ], + "id": "6c8dc53e-fd22-446a-86f9-e16ed10adfb5", + "name": "Code in JavaScript" + }, + { + "parameters": { + "amount": "={{ $json.wait_time }}" + }, + "type": "n8n-nodes-base.wait", + "typeVersion": 1.1, + "position": [ + 0, + 0 + ], + "id": "5f231f91-012c-4e28-b17d-eca914e009e7", + "name": "Wait", + "webhookId": "2506d52b-677e-4ff1-ab1a-315ab75f9408" + } + ], + "connections": { + "HTTP Request": { + "main": [ + [ + { + "node": "HTML", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTML": { + "main": [ + [ + { + "node": "HTML1", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTML1": { + "main": [ + [ + { + "node": "Edit Fields", + "type": "main", + "index": 0 + } + ] + ] + }, + "Edit Fields": { + "main": [ + [ + { + "node": "Insert or update rows in a table", + "type": "main", + "index": 0 + } + ] + ] + }, + "Insert or update rows in a table": { + "main": [ + [ + { + "node": "Select rows from a table", + "type": "main", + "index": 0 + } + ] + ] + }, + "Select rows from a table": { + "main": [ + [ + { + "node": "Update rows in a table", + "type": "main", + "index": 0 + }, + { + "node": "Send a text message", + "type": "main", + "index": 0 + } + ] + ] + }, + "Update rows in a table": { + "main": [ + [] + ] + }, + "Schedule Trigger": { + "main": [ + [ + { + "node": "Code in JavaScript", + "type": "main", + "index": 0 + } + ] + ] + }, + "Code in JavaScript": { + "main": [ + [ + { + "node": "Wait", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wait": { + "main": [ + [ + { + "node": "HTTP Request", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": { + "node:Schedule Trigger": { + "recurrenceRules": [] + } + }, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "cb7a3873-f33e-437f-a908-10e88f1e5f1e", + "triggerCount": 1, + "shared": [ + { + "updatedAt": "2025-12-08T10:31:16.683Z", + "createdAt": "2025-12-08T10:31:16.683Z", + "role": "workflow:owner", + "workflowId": "GR1gqXtazt67q0cb", + "projectId": "S4tmpzSj6JlGFOze" + } + ], + "tags": [] +} \ No newline at end of file