From 5eac5c54f8577c50e35a7ce1c64fc70f25fccd07 Mon Sep 17 00:00:00 2001 From: changchiyou Date: Tue, 26 Mar 2024 15:04:17 +0800 Subject: [PATCH] feat: Teams MessageCard refer to https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/connectors-using\?tabs\=cURL\#example-of-connector-message --- backend/utils/webhook.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/backend/utils/webhook.py b/backend/utils/webhook.py index 1bc5a6048..51157a4e4 100644 --- a/backend/utils/webhook.py +++ b/backend/utils/webhook.py @@ -1,4 +1,7 @@ +import json + import requests +from config import VERSION def post_webhook(url: str, message: str, event_data: dict) -> bool: @@ -9,6 +12,27 @@ def post_webhook(url: str, message: str, event_data: dict) -> bool: payload["text"] = message elif "https://discord.com/api/webhooks" in url: payload["content"] = message + elif "webhook.office.com" in url: + action = event_data.get("action", "undefined") + facts = [ + {"name": name, "value": value} + for name, value in json.loads(event_data.get("user", {})).items() + ] + payload = { + "@type": "MessageCard", + "@context": "http://schema.org/extensions", + "themeColor": "0076D7", + "summary": message, + "sections": [ + { + "activityTitle": message, + "activitySubtitle": f"Open WebUI ({VERSION}) - {action}", + "activityImage": "https://openwebui.com/favicon.png", + "facts": facts, + "markdown": True, + } + ], + } else: payload = {**event_data}