From fcebd3ee84925cd65e4d06a19e0b345001069720 Mon Sep 17 00:00:00 2001 From: Royce Schultz Date: Mon, 20 May 2024 22:57:50 -0600 Subject: [PATCH] Adds webhook node. --- README.md | 7 +++++++ __init__.py | 3 +++ assets/webhook_node.jpg | Bin 0 -> 29143 bytes nodes/webhook.py | 30 ++++++++++++++++++++++++++++++ 4 files changed, 40 insertions(+) create mode 100644 assets/webhook_node.jpg create mode 100644 nodes/webhook.py diff --git a/README.md b/README.md index 90dd781..56cceb4 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,13 @@ Plays a chime sound to notify the user. + +## Webhook + +Send a webhook to the specified URL. Supports customizing JSON body with the `json_format` template. + + + ## Unified Notification Supports multiple notification types in one node for convenience. diff --git a/__init__.py b/__init__.py index 4f82269..9e086d3 100644 --- a/__init__.py +++ b/__init__.py @@ -1,17 +1,20 @@ from .nodes.play_sound import PlaySound from .nodes.system_notification import SystemNotification from .nodes.unified_notification import UnifiedNotification +from .nodes.webhook import Webhook NODE_CLASS_MAPPINGS = { "Notif-PlaySound": PlaySound, "Notif-SystemNotification": SystemNotification, "Notif-UnifiedNotification": UnifiedNotification, + "Notif-Webhook": Webhook, } NODE_DISPLAY_NAME_MAPPINGS = { "Notif-PlaySound": "Play Sound", "Notif-SystemNotification": "System Notification", "Notif-UnifiedNotification": "Unified Notification", + "Notif-Webhook": "Webhook", } WEB_DIRECTORY = "./web" diff --git a/assets/webhook_node.jpg b/assets/webhook_node.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1313ae3ec16e8b71e731eaa7e31176fbfc93a59f GIT binary patch literal 29143 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 z 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
    04p$ewoKN453xSi&mg(Dszn4%Ld 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 Q@E-&)djw$2=&=X?23mxkq5uE@ literal 0 HcmV?d00001 diff --git a/nodes/webhook.py b/nodes/webhook.py new file mode 100644 index 0000000..966f7b4 --- /dev/null +++ b/nodes/webhook.py @@ -0,0 +1,30 @@ +import requests +import json + +from .util import ComfyAnyType + +class Webhook: + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "any": (ComfyAnyType("*"), {}), + # "mode": (["always", "on empty queue"], {}), # TODO: Need a way to get queue status from main.py + "webhook_url": ("STRING", {'default': 'http://localhost:5000/'}), + "notification_text": ('STRING', {'default': 'Your notification has triggered.'}), + "json_format": ('STRING', {'default': '{"text": ""}'}), + "timeout": ('FLOAT', {'default': 3, 'min': 0, 'max': 60}), + }, + } + + FUNCTION = 'hook' + OUTPUT_NODE = True + RETURN_TYPES = tuple() + CATEGORY = "notifications" + + def hook(self, any, webhook_url, notification_text, json_format, timeout): + payload = json_format.replace("", notification_text) + payload = json.loads(payload) + res = requests.post(webhook_url, json=payload, timeout=timeout) + res.raise_for_status() + return (0, )