diff --git a/app/app.py b/app/app.py
new file mode 100644
index 0000000..f64a804
--- /dev/null
+++ b/app/app.py
@@ -0,0 +1,129 @@
+from flask import Flask, flash, request, redirect, send_from_directory, get_flashed_messages
+from werkzeug.utils import secure_filename
+import os
+import glob
+import securecad_parser
+import datetime
+from hooks import webhook, alarminator_api, cups_print
+from pathlib import Path
+
+app = Flask(__name__)
+app.secret_key = 'super secret key'
+app.config['SESSION_TYPE'] = 'filesystem'
+
+def wrapHtml(innerHtml):
+ return '''
+
+
+
+ Bootstrap demo
+
+
+
+ ''' + flashMessages() +'''
+ ''' + innerHtml + '''
+
+
+
+'''
+
+def flashMessages():
+ messages = get_flashed_messages(with_categories=True)
+ html = ""
+ if messages:
+ for category, message in messages:
+ html = html + category + ": "+message+"
"
+ return html
+
+def alarmsPath():
+ dir_path = os.path.dirname(os.path.realpath(__file__))
+ return dir_path + "/alarms" + os.sep
+
+def getAlarmFiles():
+ a_list = glob.glob(alarmsPath()+"*.html")
+ a_list.sort()
+ return [os.path.basename(f) for f in a_list]
+
+def parseAlarm(f):
+ f = alarmsPath() + os.sep + f
+ with open(f, "r") as o:
+ _r: str = o.read()
+ now = datetime.datetime.now()
+ _r = _r.replace('%DATUM%',now.strftime("%d.%m.%Y"))
+ _r = _r.replace('%UHRZEIT%',now.strftime("%H:%M"))
+ if _r != '':
+ return [securecad_parser.parse_securecad_message(_r),_r]
+
+def allowed_file(filename:str):
+ print(filename.rsplit('.', 1)[1].lower())
+ return '.' in filename and \
+ filename.rsplit('.', 1)[1].lower() in ["html"]
+
+
+
+@app.route("/")
+def root():
+ html = ""
+ file = request.args.get('sendalarm')
+ if file is not None:
+ parsed_body, raw = parseAlarm(file)
+ if parsed_body != None:
+ if 'ALARMDEPESCHE' in parsed_body:
+ webhook(parsed_body)
+ alarminator_api(parsed_body)
+ cups_print(parsed_body,raw)
+ flash("Alarm gesendet!")
+ return redirect('/')
+
+ html = html + ''
+ i: str
+ files = getAlarmFiles()
+ for f in files:
+ html = html + "
"
+ html = html + "
"
+ return wrapHtml(html)
+
+@app.route('/files', methods=['POST'])
+def upload_file():
+ # check if the post request has the file part
+ print(request.files)
+ if 'file' not in request.files:
+ flash('No file part')
+ return redirect(request.url)
+ file = request.files['file']
+ # If the user does not select a file, the browser submits an
+ # empty file without a filename.
+ print(file.filename)
+ if file.filename == '':
+ flash('No selected file')
+ return redirect(request.url)
+ if file and allowed_file(file.filename):
+ file.save(os.path.join(alarmsPath(), file.filename))
+ return redirect('/files')
+
+@app.route('/files/', methods=['GET'])
+def download(filename):
+ uploads = alarmsPath()
+ return send_from_directory(uploads, filename, as_attachment=True)
+
+@app.route("/files", methods=['GET'])
+def files():
+ Path(alarmsPath()).mkdir(parents=True, exist_ok=True)
+ file = request.args.get('del')
+ if file is not None:
+ try:
+ os.remove(alarmsPath()+os.sep+file)
+ except:
+ pass
+ flash("Datei gelöscht!")
+ return redirect('/files')
+
+ files = getAlarmFiles()
+ html = ''
+ for f in files:
+ html = html + '- '+f+' löschen
'
+ html = html + '
'
+ return html
+
+if __name__ == "__main__":
+ app.run(port=5000)
diff --git a/app/http.py b/app/http.py
deleted file mode 100644
index 200d6c5..0000000
--- a/app/http.py
+++ /dev/null
@@ -1,65 +0,0 @@
-from flask import Flask, request
-import os
-import glob
-import securecad_parser
-import datetime
-from hooks import webhook, alarminator_api, cups_print
-
-app = Flask(__name__)
-
-def wrapHtml(innerHtml):
- return '''
-
-
-
- Bootstrap demo
-
-
-
- ''' + innerHtml + '''
-
-
-
-'''
-
-def getAlarmFiles():
- dir_path = os.path.dirname(os.path.realpath(__file__))
- dir_path = dir_path + "/alarms" + os.sep
- a_list = glob.glob(dir_path+"*.html")
- a_list.sort()
- return a_list
-
-def parseAlarm(f):
- dir_path = os.path.dirname(os.path.realpath(__file__))
- f = dir_path + "/alarms" + os.sep + f
- with open(f, "r") as o:
- _r: str = o.read()
- now = datetime.datetime.now()
- _r = _r.replace('%DATUM%',now.strftime("%d.%m.%Y"))
- _r = _r.replace('%UHRZEIT%',now.strftime("%H:%M"))
- if _r != '':
- return [securecad_parser.parse_securecad_message(_r),_r]
-
-
-
-@app.route("/")
-def root():
-
- file = request.args.get('sendalarm')
- if file is not None:
- parsed_body, raw = parseAlarm(file)
- if parsed_body != None:
- if 'ALARMDEPESCHE' in parsed_body:
- webhook(parsed_body)
- alarminator_api(parsed_body)
- cups_print(parsed_body,raw)
-
- html = ''
- i: str
- files = getAlarmFiles()
- for f in files:
- html = html + "
"
- html = html + "
"
- return wrapHtml(html)
-
-app.run(port=5000)
\ No newline at end of file