let's ignore the bugs

This commit is contained in:
Anika 2024-02-12 23:41:24 +01:00
parent 08a85501ce
commit 0b2ff931b1
7 changed files with 49 additions and 63 deletions

Binary file not shown.

View File

@ -1,22 +1,10 @@
[ [
{ {
"datetime": "12.03.2025 11:00", "datetime": "02.12.2024 18:00",
"message": "lj\u00f6sd" "message": "Hallo"
}, },
{ {
"datetime": "12.03.2025 11:00", "datetime": "12.02.2024 18:00",
"message": "lj\u00f6sd" "message": "helpo"
},
{
"datetime": "11.02.2024 23:33",
"message": ""
},
{
"datetime": "12.03.2022 11:00",
"message": "lj\u00f6sd"
},
{
"datetime": "11.02.2024 23:23",
"message": "lj\u00f6sd"
} }
] ]

View File

@ -2,5 +2,9 @@
{ {
"datetime": "11.02.2024 22:58", "datetime": "11.02.2024 22:58",
"message": "Nice" "message": "Nice"
},
{
"datetime": "12.02.2024 15:03",
"message": "Lololol"
} }
] ]

View File

@ -12,7 +12,7 @@
</head> </head>
<body> <body>
<nav class="navbar navbar-expand-md navbar-light bg-light"> <nav class="navbar navbar-expand-md navbar-light bg-light">
<a class="navbar-brand" href="{{ url_for('index')}}">FlaskBlog</a> <a class="navbar-brand" href="{{ url_for('index')}}">Zentrale</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span> <span class="navbar-toggler-icon"></span>
</button> </button>
@ -22,7 +22,7 @@
<a class="nav-link" href="#">About</a> <a class="nav-link" href="#">About</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="{{url_for('create')}}">New Post</a> <a class="nav-link" href="{{url_for('refresh')}}">Reload</a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -1,23 +0,0 @@
{% extends 'base.html' %}
{% block content %}
<h1>{% block title %} Create a New Post {% endblock %}</h1>
<form method="post">
<div class="form-group">
<label for="title">Title</label>
<input type="text" name="title"
placeholder="Post title" class="form-control"
value="{{ request.form['title'] }}"></input>
</div>
<div class="form-group">
<label for="content">Content</label>
<textarea name="content" placeholder="Post content"
class="form-control">{{ request.form['content'] }}</textarea>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</form>
{% endblock %}

View File

@ -11,7 +11,7 @@
</div> </div>
{% endfor %} {% endfor %}
</div> </div>
<div class="savedAlarms"> <div class="savedAlarms" >
<h3>Upcoming Alarms</h3> <h3>Upcoming Alarms</h3>
{% for alarm in alarms %} {% for alarm in alarms %}
<div> <div>
@ -50,24 +50,40 @@
<div> <div>
<h3>Previous Alarm</h3> <h3>Previous Alarm</h3>
Script runs once for whatever reason????
<script> <script>
async function getAlarms(){ async function getAlarms(){
const response = await fetch("http://127.0.0.1:5000/alarms"); const response = await fetch("http://127.0.0.1:5000/alarms", {method:"GET"});
const alarms = await response.json(); const alarms = await response.json();
return alarms return alarms
} }
async function postAlarm(alarm){
var body = JSON.stringify(alarm)
const response = await fetch("http://127.0.0.1:5000/alarms", {
method: "POST",
body: body,
});
}
alarms = getAlarms(); alarms = getAlarms();
function checkAlarms(){ function checkAlarms(){
console.log("hello") alarms.then( (alarms) => {
for(alarm in alarms){ for(var i = 0; i < alarms.length; i++){
if(Date(alarm.datetime) <=new Date()){
console.log("ALARM!"); const [dateComponents, timeComponents] = alarms[i].datetime.split(' ');
alert(alarm.message);
// post alerting alarm const [day, month, year] = dateComponents.split('.');
const [hours, minutes] = timeComponents.split(':');
const date = new Date(+year, +month - 1, +day, +hours, +minutes);
if(date <=new Date()){
console.log("ALARM!");
postAlarm(alarms[i]);
alert(alarms[i].message);
}
} }
setTimeout(checkAlarms, 15000);
} }
setTimeout(checkAlarms, 15000);
)
} }
checkAlarms(); checkAlarms();
</script> </script>

25
test.py
View File

@ -1,4 +1,5 @@
import json import json
import subprocess
from flask import request, Flask, render_template from flask import request, Flask, render_template
from datetime import datetime, timedelta from datetime import datetime, timedelta
@ -23,12 +24,9 @@ def preprocess():
@app.route("/", methods=('GET', 'POST')) @app.route("/", methods=('GET', 'POST'))
def index(): def index():
# preprocesing in andere Methode, alarm sortieren nach Zeitpunkt # reload sendet alle paramenter neu und die werden neu drangeflanscht
# alarm.txt alle alarme, alarm.json alle, die noch nicht behandelt wurden if len(logs) <= 0:
# alle alarme in alarme.json -> preprocessing wie in die Listen preprocess()
#alarms = open("alarms.txt").readlines()
#logs = open("alarms.txt").readlines()
preprocess()
return render_template('index.html', logs = logs, alarms = activeAlarms, previousAlarms=previousAlarms) return render_template('index.html', logs = logs, alarms = activeAlarms, previousAlarms=previousAlarms)
@ -36,7 +34,6 @@ def index():
def setAlarm(): def setAlarm():
if request.method == 'POST': if request.method == 'POST':
time = datetime.fromisoformat(request.form['datetime']).strftime("%d.%m.%Y %H:%M") time = datetime.fromisoformat(request.form['datetime']).strftime("%d.%m.%Y %H:%M")
print(time)
content = request.form['alarmMessage'] content = request.form['alarmMessage']
activeAlarms.append({'datetime':time,'message':content}) activeAlarms.append({'datetime':time,'message':content})
@ -70,9 +67,13 @@ def alarm():
if request.method == 'POST': if request.method == 'POST':
print('ALARM') print('ALARM')
# gets alerting alarm, move to previous alarms and remove from active subprocess.call(['mpv','./alarm.mp3'], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
data = json.loads(request.data.decode('UTF-8'))
previousAlarms.append(data)
activeAlarms.remove(data)
# render_template übergibt argumente komisch -> force reload
return render_template('index.html', logs = logs, alarms = activeAlarms, previousAlarms=previousAlarms)
@app.route("/refresh")
@app.route('/about') def refresh():
def create(): return render_template('index.html', logs = logs, alarms = activeAlarms, previousAlarms=previousAlarms)
return 'The about page'