diff --git a/library/gotify.py b/library/gotify.py new file mode 100644 index 0000000..a971415 --- /dev/null +++ b/library/gotify.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 + +""" Gotify Functions """ + +import logging +import json +from urllib.parse import urljoin +import requests + +class GotifyClient: + """ Gotify Client """ + + def __init__(self, url, token): + self.logger = logging.getLogger(__name__) + self.logger.info('Gotify URL %s', url) + + self.url = url + self.token = token + + def send_message(self, f_type, f_id, pdf_data=None, pdf_file=None): + """ Publish a message over Gotify """ + + requestURL = urljoin(self.url, '/message?token=' + self.token) + + try: + resp = requests.post(requestURL, json={ + 'title': 'Einsatz ' + f_id, + 'message': f_type, + 'priority': 5 + }) + except requests.exceptions.RequestException as err: + self.logger.error('[%s] Could not connect to Gotify server: %e', f_id, err) + + # Print request result if server returns http error code + if resp.status_code is not requests.codes.ok: + self.logger.error('[%s] Could not send message to Gotify server: %e', f_id, bytes.decode(resp.content))