diff --git a/.env.example b/.env.example index f118792..d05acfa 100644 --- a/.env.example +++ b/.env.example @@ -4,8 +4,4 @@ EMAIL_PASSWORD= MAILBOX= CHECK_INTERVAL= SAVE_FOLDER= -SMTP_SERVER= -SMTP_PORT= -SMTP_ACCOUNT= -SMTP_PASSWORD= -TO_EMAIL= \ No newline at end of file +DRAEGER_API_KEY= \ No newline at end of file diff --git a/main.py b/main.py index 22084ea..b13db76 100644 --- a/main.py +++ b/main.py @@ -1,16 +1,11 @@ REGEX = r'SDS_ILS_BEGINN(#D#Leitstelle:\s+)(.*)(m|o|i)(RTW|NAW|KTW) (.*) \$GPSN(.*)E(.*)SDS_ILS_ENDE' -DRAEGER_TEMPLATE = "{EINSATZNUMMER}#{EINSATZSTICHWORT}#{KLARTEXT}#{ERGAENZUNG}#{ERWEITERUNG}#{SONDERINFO}#{GEO_LON}#{GEO_LAT}#{EINSATZORT}#{ORTSTEIL}#{STRASSE}#{HAUSNUMMER}#{OBJEKTNAME}#{GMANUMMER}#{SACHVERHALT}#{EINSATZKRÄFTE}#{EINSATZMITTEL}#{WACHEN}#{FAHRZEUGE}#{RICs}#{WINDRICHTUNG}#{WINDGESCHWINDIGKEIT}#{ALARMAUSLÖSUNG}#{MELDERNAME}#{MELDERINFO}#" from dotenv import load_dotenv -import datetime -from email.mime.text import MIMEText -from email.utils import formatdate import re - +import requests import imaplib import email from email.header import decode_header -import smtplib import os import time import PyPDF2 @@ -24,11 +19,7 @@ EMAIL_PASSWORD = os.environ.get("EMAIL_PASSWORD", default=None) MAILBOX = os.environ.get("MAILBOX", default=None) CHECK_INTERVAL = int(os.environ.get("CHECK_INTERVAL", default=None)) # in Sekunden SAVE_FOLDER = os.environ.get("SAVE_FOLDER", default=None) -SMTP_SERVER = os.environ.get("SMTP_SERVER", default=None) -SMTP_PORT = int(os.environ.get("SMTP_PORT", default=None)) -SMTP_ACCOUNT = os.environ.get("SMTP_ACCOUNT", default=None) -SMTP_PASSWORD = os.environ.get("SMTP_PASSWORD", default=None) -TO_EMAIL = os.environ.get("TO_EMAIL", default=None) +DRAEGER_API_KEY = os.environ.get("DRAEGER_API_KEY", default=None) def read_pdf(file_path): with open(file_path, 'rb') as file: @@ -39,62 +30,18 @@ def read_pdf(file_path): return text -def get_draeger_string(text): +def get_draeger_json(text): match = re.findall(REGEX, text.replace("\n", "")) data = {} - data['EINSATZNUMMER'] = "NULL" - data['EINSATZSTICHWORT'] = "Wachalarm" - data['KLARTEXT'] = match[0][1] + " " + match[0][4] - data['ERGAENZUNG'] = "NULL" - data['ERWEITERUNG'] = "NULL" - data['SONDERINFO'] = "NULL" - data['GEO_LON'] = match[0][6][:2] + '.' + match[0][6][2:] - data['GEO_LAT'] = match[0][5][:2] + '.' + match[0][5][2:] - data['EINSATZORT'] = "NULL" - data['ORTSTEIL'] = "NULL" - data['STRASSE'] = "NULL" - data['HAUSNUMMER'] = "NULL" - data['OBJEKTNAME'] = "NULL" - data['GMANUMMER'] = "NULL" - data['SACHVERHALT'] = "NULL" - data['EINSATZKRÄFTE'] = "NULL" - data['EINSATZMITTEL'] = "NULL" - data['WACHEN'] = "NULL" - data['FAHRZEUGE'] = "NULL" - data['RICs'] = "NULL" - data['WINDRICHTUNG'] = "NULL" - data['WINDGESCHWINDIGKEIT'] = "NULL" - data['ALARMAUSLÖSUNG'] = "NULL" - data['MELDERNAME'] = "NULL" - data['MELDERINFO'] = "NULL" + data["apiKey"] = DRAEGER_API_KEY + data["alertingKeyword"] = "Wachalarm" + data["alertingKeywordText"] = match[0][1] + " " + match[0][4] + data["lat"] = match[0][5][:2] + '.' + match[0][5][2:] + data["lon"] = match[0][6][:2] + '.' + match[0][6][2:] - return DRAEGER_TEMPLATE.format(**data) - -def build_mail(subject, body): - msg = MIMEText(body) - msg['From'] = SMTP_ACCOUNT - msg['To'] = TO_EMAIL - msg['Subject'] = subject - msg['Message-ID'] = email.utils.make_msgid(domain='bez-stuttgart.dlrg.de') - - current_time = datetime.datetime.now() - msg['Date'] = formatdate(timeval=current_time.timestamp()) - - msg['MIME-Version'] = "1.0" - msg['X-Sender'] = SMTP_ACCOUNT - - return msg - -def send_email(msg): - try: - with smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT) as server: - server.set_debuglevel(1) - server.login(SMTP_ACCOUNT, SMTP_PASSWORD) - server.sendmail(SMTP_ACCOUNT, TO_EMAIL, msg.as_string()) - print('Email sent successfully') - except Exception as e: - print(f'Failed to send email: {e}') + print(data) + return data def check_email(): try: @@ -136,10 +83,11 @@ def check_email(): if filename.endswith('.pdf'): pdf_text = read_pdf(filepath) - draeger_text = get_draeger_string(pdf_text) - mail = build_mail('Test', draeger_text) - send_email(mail) + r = requests.post('https://einsatzmeldesystem.de/ems/inbound/deployment/universal/', json=get_draeger_json(pdf_text)) + + print(r.status_code) + print(r.json()) mail.logout() except Exception as e: print(f'Fehler: {e}') diff --git a/requirements.txt b/requirements.txt index c690da3..f0c62bc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ python-dotenv -PyPDF2 \ No newline at end of file +PyPDF2 +requests \ No newline at end of file