This commit is contained in:
2024-04-02 17:58:30 +02:00
parent 4260ca0e92
commit 56ec2cfb15
7 changed files with 34 additions and 15 deletions

View File

@ -93,13 +93,13 @@ def getRaplas():
return sorted(kursl), sorted(filel), sorted(urll) return sorted(kursl), sorted(filel), sorted(urll)
@scheduler.task("interval", id="refreshRapla", minutes=30) @scheduler.task("interval", id="refreshRapla", minutes=5)
def refreshRapla(): def refreshRapla():
""" """
Aktualisiert alle 30 Minuten alle gespeicherten Raplas. Aktualisiert alle 5 Minuten alle gespeicherten Raplas.
""" """
filel = getRaplas()[1] filel = getRaplas()[1]
urll = getRaplas()[2] urll = getRaplas()[2]
for i in range(len(filel)): for i in range(len(filel)):
urlretrieve(urll[i], "calendars/"+filel[i]) print("Update Rapla: " + filel[i][:-5])
print("Update die Kalender...") urlretrieve(urll[i], "calendars/" + filel[i])

View File

@ -1,7 +1,7 @@
from flask import Flask from flask import Flask
from flask_login import LoginManager, UserMixin from flask_login import LoginManager, UserMixin
from flask_sqlalchemy import SQLAlchemy from flask_sqlalchemy import SQLAlchemy
from talisman import Talisman from flask_talisman import Talisman
from get_mysql import get_mysql from get_mysql import get_mysql
import atexit import atexit
from flask_apscheduler import APScheduler from flask_apscheduler import APScheduler
@ -71,7 +71,9 @@ class Meals(db.Model):
scheduler = APScheduler() scheduler = APScheduler()
app = create() app = create()
Talisman(app, content_security_policy={"default-src": ["*.paulmartin.cloud", '\'self\'']}) def_src = ["*.paulmartin.cloud", '\'self\'']
Talisman(app, content_security_policy={"default-src": def_src, "script-src": def_src # + ["'unsafe-inline'"]
})
scheduler.init_app(app) scheduler.init_app(app)
scheduler.start() scheduler.start()
scheduler.api_enabled = True scheduler.api_enabled = True

View File

@ -7,6 +7,7 @@ from werkzeug.security import generate_password_hash, check_password_hash
import hashlib import hashlib
import datetime import datetime
import time import time
import random
import fetchDUALIS import fetchDUALIS
import fetchRAPLA import fetchRAPLA
@ -36,7 +37,7 @@ def welcome():
return redirect(url_for("getKurs", next=url_for(request.endpoint))) return redirect(url_for("getKurs", next=url_for(request.endpoint)))
sel = request.args.get("sel") sel = request.args.get("sel")
if not sel: if not sel:
sel="theorie" sel = "theorie"
kurs = current_user.kurs kurs = current_user.kurs
name = current_user.name name = current_user.name
if sel == "theorie": if sel == "theorie":
@ -151,7 +152,8 @@ def getKurs():
kurs = fetchDUALIS.getKurs(d.token, cookie) kurs = fetchDUALIS.getKurs(d.token, cookie)
if kurs != 0: if kurs != 0:
if not fetchRAPLA.getIcal(kurs): if not fetchRAPLA.getIcal(kurs):
return render_template('kurs.html', detected=(kurs, e), s="s", theorie="hidden", praxis="hidden", file=False) return render_template('kurs.html', detected=(kurs, e), s="s", theorie="hidden", praxis="hidden",
file=False)
current_user.kurs = kurs current_user.kurs = kurs
db.session.commit() db.session.commit()
else: else:
@ -163,7 +165,7 @@ def getKurs():
else: else:
e = True e = True
kurs = "" kurs = ""
return render_template('kurs.html', detected=(kurs, e), s="s", theorie="hidden", praxis="hidden", file=True) return render_template('kurs.html', detected=(kurs, e), s="s", theorie="hidden", praxis="hidden", file=True)
@app.route("/set-up/semester") @app.route("/set-up/semester")
@ -176,7 +178,7 @@ def getSemester():
t = Dualis.query.filter_by(uid=current_user.id).first().token t = Dualis.query.filter_by(uid=current_user.id).first().token
c = request.cookies.get("cnsc") c = request.cookies.get("cnsc")
return render_template("semester.html", semester=fetchDUALIS.getSem(t, c), s="s", theorie="hidden", praxis="hidden") return render_template("semester.html", semester=fetchDUALIS.getSem(t, c), s="s", theorie="hidden", praxis="hidden")
@app.route("/set-up/semester", methods=["POST"]) @app.route("/set-up/semester", methods=["POST"])
@ -203,7 +205,7 @@ def chooseRaplas():
:return HTML: :return HTML:
""" """
r = getRaplas() r = getRaplas()
return render_template("rapla.html", raplas=r, s="s", theorie="hidden", praxis="hidden") return render_template("rapla.html", raplas=r, s="s", theorie="hidden", praxis="hidden")
@app.route("/set-up/rapla", methods=["POST"]) @app.route("/set-up/rapla", methods=["POST"])

7
static/dropdown.js Normal file
View File

@ -0,0 +1,7 @@
document.addEventListener("DOMContentLoaded", function(event) {
const dropdown = document.getElementById("dropdown");
dropdown.addEventListener("change", function() {
dropdown.submit();
});
});

View File

@ -3,7 +3,10 @@
<head> <head>
<title>DualHub</title> <title>DualHub</title>
<link rel="stylesheet" type="text/css" href={{ url_for("static", filename="style.css") }}> <link rel="stylesheet" type="text/css" href={{ url_for("static", filename="style.css") }}>
<meta http-equiv="refresh" content="510">
<script async src="https://analytics.paulmartin.cloud/script.js" data-website-id="459fa66e-e255-4393-8e89-ead8b1572d0d"></script> <script async src="https://analytics.paulmartin.cloud/script.js" data-website-id="459fa66e-e255-4393-8e89-ead8b1572d0d"></script>
{% block head %}
{% endblock %}
</head> </head>
<body> <body>
<nav> <nav>

View File

@ -1,4 +1,8 @@
{% extends "index.html" %} {% extends "index.html" %}
{% block head %}
<script type="text/javascript" src="{{ url_for("static", filename="dropdown.js") }}"></script>
<meta http-equiv="Refresh" content="600">
{% endblock %}
{% block content %} {% block content %}
{% for i in range (semester|length) %} {% for i in range (semester|length) %}
{% if semester[i][1]==sel %} {% if semester[i][1]==sel %}
@ -23,13 +27,12 @@
{% endfor %} {% endfor %}
<br> <br>
<br> <br>
<form method="post" action={{ url_for ("setSemester", next=url_for("displayNoten")) }}> <form id= "dropdown" method="post" action={{ url_for ("setSemester", next=url_for("displayNoten")) }}>
<label for="sem">Semester wählen! </label> <label for="sem">Semester wählen! </label>
<select name="sem" id="sem"> <select name="sem" id="sem">
{% for i in range (semester|length) %} {% for i in range (semester|length) %}
<option value= {{ semester [i] [1] }} {% if semester[i][1]==sel %} selected {% endif %}>{{ semester [i] [0] }} </option> <option value= {{ semester [i] [1] }} {% if semester[i][1]==sel %} selected {% endif %}>{{ semester [i] [0] }} </option>
{% endfor %} {% endfor %}
</select> </select>
<input type="submit" value="Semester setzen!">
</form> </form>
{% endblock %} {% endblock %}

View File

@ -1,7 +1,10 @@
{% extends "index.html" %} {% extends "index.html" %}
{% block head %}
<script type="text/javascript" src="{{ url_for("static", filename="dropdown.js") }}"></script>
{% endblock %}
{% block content %} {% block content %}
<h1>Bitte wähle aus der unten stehenden Liste das Semester, dessen Noten du sehen möchtest.</h1> <h1>Bitte wähle aus der unten stehenden Liste das Semester, dessen Noten du sehen möchtest.</h1>
<form method="post" action={{ url_for ("setSemester", next=request.args.get("next")) }}> <form id="dropdown" method="post" action={{ url_for ("setSemester", next=request.args.get("next")) }}>
<label for="sem">Semester wählen! </label> <label for="sem">Semester wählen! </label>
<select name="sem" id="sem"> <select name="sem" id="sem">
<option value = "none" selected disabled hidden></option> <option value = "none" selected disabled hidden></option>
@ -9,6 +12,5 @@
<option value= {{ semester [i] [1] }}>{{ semester [i] [0] }} </option> <option value= {{ semester [i] [1] }}>{{ semester [i] [0] }} </option>
{% endfor %} {% endfor %}
</select> </select>
<input type="submit" value="Semester setzen!">
</form> </form>
{% endblock %} {% endblock %}