diff options
| author | EnricoGuccii <partyka.003@proton.me> | 2026-01-10 22:12:49 +0100 |
|---|---|---|
| committer | EnricoGuccii <partyka.003@proton.me> | 2026-01-10 22:12:49 +0100 |
| commit | c2f5fbe7fb93ce420caf23c5c0e06144cf953bb8 (patch) | |
| tree | c876d1edcc7873b122082c5ae7b3c218cd347226 /src/netmonitor/back/notification_service.py | |
| parent | 6a4d020146d6ed55c204e02ee90313a9f03a03b2 (diff) | |
yy
Diffstat (limited to 'src/netmonitor/back/notification_service.py')
| -rw-r--r-- | src/netmonitor/back/notification_service.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/netmonitor/back/notification_service.py b/src/netmonitor/back/notification_service.py new file mode 100644 index 0000000..e347faf --- /dev/null +++ b/src/netmonitor/back/notification_service.py @@ -0,0 +1,49 @@ +import json +import requests +from pathlib import Path + +CONFIG_FILE = Path("data/global_config.json") + +class NotificationService: + def __init__(self): + self.webhook_url = "" + self.load_config() + + def load_config(self): + if CONFIG_FILE.exists(): + try: + with open(CONFIG_FILE, "r") as f: + data = json.load(f) + self.webhook_url = data.get("discord_webhook_url", "") + except Exception as e: + print(f"Error loading notification config: {e}") + + def save_config(self, webhook_url: str): + self.webhook_url = webhook_url + + CONFIG_FILE.parent.mkdir(parents=True, exist_ok=True) + try: + with open(CONFIG_FILE, "w") as f: + json.dump({ + "discord_webhook_url": self.webhook_url + }, f, indent=4) + return True + except Exception as e: + print(f"Error saving config: {e}") + return False + + def send_message(self, message: str) -> bool: + if not self.webhook_url: + return False + + payload = { + "content": message + } + try: + response = requests.post(self.webhook_url, json=payload, timeout=5) + return response.status_code in [200, 204] + except Exception as e: + print(f"Discord send error: {e}") + return False + +notification_service = NotificationService() |