78 lines
2.5 KiB
Python
78 lines
2.5 KiB
Python
import json
|
|
from flask import request, Flask, render_template
|
|
from datetime import datetime, timedelta
|
|
|
|
|
|
app = Flask(__name__)
|
|
|
|
activeAlarms = list()
|
|
previousAlarms = list()
|
|
logs = list()
|
|
|
|
def preprocess():
|
|
logsFile = json.load(open("./logs.json"))
|
|
alarmsFile = json.load(open("./alarms.json"))
|
|
for alarm in alarmsFile:
|
|
if datetime.strptime(alarm['datetime'],"%d.%m.%Y %H:%M") <= datetime.now()-timedelta(minutes=2):
|
|
previousAlarms.append(alarm)
|
|
else:
|
|
activeAlarms.append(alarm)
|
|
for log in logsFile:
|
|
logs.append(log)
|
|
|
|
|
|
@app.route("/", methods=('GET', 'POST'))
|
|
def index():
|
|
# preprocesing in andere Methode, alarm sortieren nach Zeitpunkt
|
|
# alarm.txt alle alarme, alarm.json alle, die noch nicht behandelt wurden
|
|
# alle alarme in alarme.json -> preprocessing wie in die Listen
|
|
#alarms = open("alarms.txt").readlines()
|
|
#logs = open("alarms.txt").readlines()
|
|
preprocess()
|
|
|
|
return render_template('index.html', logs = logs, alarms = activeAlarms, previousAlarms=previousAlarms)
|
|
|
|
@app.route('/setAlarm', methods=('GET', 'POST'))
|
|
def setAlarm():
|
|
if request.method == 'POST':
|
|
time = datetime.fromisoformat(request.form['datetime']).strftime("%d.%m.%Y %H:%M")
|
|
print(time)
|
|
content = request.form['alarmMessage']
|
|
activeAlarms.append({'datetime':time,'message':content})
|
|
|
|
allAlarms = activeAlarms+previousAlarms
|
|
with open('alarms.json', 'w') as f:
|
|
json.dump(allAlarms, f, indent=2)
|
|
|
|
# Closing file
|
|
f.close()
|
|
|
|
return render_template('index.html', logs = logs, alarms = activeAlarms, previousAlarms=previousAlarms)
|
|
|
|
@app.route('/sendLog', methods=('GET', 'POST'))
|
|
def sendLog():
|
|
if request.method == 'POST':
|
|
content = request.form['logMessage']
|
|
log = {'datetime':datetime.now().strftime("%d.%m.%Y %H:%M"),'message':content}
|
|
logs.append(log)
|
|
with open('logs.json', 'w') as f:
|
|
json.dump(logs, f, indent=2)
|
|
|
|
# Closing file
|
|
f.close()
|
|
|
|
return render_template('index.html', logs = logs, alarms = activeAlarms, previousAlarms=previousAlarms)
|
|
|
|
@app.route('/alarms', methods=('GET','POST'))
|
|
def alarm():
|
|
if request.method == 'GET':
|
|
return json.dumps(activeAlarms)
|
|
|
|
if request.method == 'POST':
|
|
print('ALARM')
|
|
# gets alerting alarm, move to previous alarms and remove from active
|
|
|
|
|
|
@app.route('/about')
|
|
def create():
|
|
return 'The about page' |