From 3dddb397e861b926fc93f2efff7d193f320df53b Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Wed, 9 Oct 2024 22:46:41 +0200
Subject: [PATCH] BaseUtils: add ntfy helper (v1.8.0)

---
 .../TheCodeLabs_BaseUtils/NtfyHelper.py       | 25 +++++++++++++++++++
 TheCodeLabs_BaseUtils/setup.py                |  5 ++--
 2 files changed, 28 insertions(+), 2 deletions(-)
 create mode 100644 TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/NtfyHelper.py

diff --git a/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/NtfyHelper.py b/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/NtfyHelper.py
new file mode 100644
index 0000000..9501586
--- /dev/null
+++ b/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/NtfyHelper.py
@@ -0,0 +1,25 @@
+import base64
+from typing import Any
+
+import requests
+
+
+class NtfyHelper:
+    @staticmethod
+    def send_message(userName: str,
+                     password: str,
+                     baseUrl: str,
+                     topicName: str,
+                     message: str,
+                     tags: list[str],
+                     headers: dict[str, Any] | None = None) -> None:
+        base64Encoded = base64.b64encode(f'{userName}:{password}'.encode('utf-8'))
+
+        baseHeaders = {
+            'Authorization': f'Basic {base64Encoded.decode("utf-8")}',
+            'Tags': ','.join(tags)
+        }
+        baseHeaders.update(headers)
+
+        response = requests.post(f'{baseUrl}/{topicName}', data=message, headers=baseHeaders)
+        response.raise_for_status()
diff --git a/TheCodeLabs_BaseUtils/setup.py b/TheCodeLabs_BaseUtils/setup.py
index 5929538..ff0b72a 100644
--- a/TheCodeLabs_BaseUtils/setup.py
+++ b/TheCodeLabs_BaseUtils/setup.py
@@ -3,7 +3,7 @@ from setuptools import setup
 setup(
     name='TheCodeLabs-BaseUtils',
     packages=['TheCodeLabs_BaseUtils'],
-    version='1.7.0',
+    version='1.8.0',
     license='MIT',
     description='Useful python classes',
     author='TheCodeLabs',
@@ -14,7 +14,8 @@ setup(
     install_requires=[
         'psutil',
         'snakeviz',
-        'pyocclient'
+        'pyocclient',
+        'requests'
     ],
     setup_requires=[
         'wheel'
-- 
GitLab