-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
36 lines (25 loc) · 1.07 KB
/
main.py
File metadata and controls
36 lines (25 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import datetime
import firebase_admin
from firebase_admin import firestore
from flask import Flask, redirect, render_template
app = Flask(__name__)
firebase_app = firebase_admin.initialize_app()
db = firestore.client()
occurrences_collection = db.collection("occurrences")
occurrences_query = occurrences_collection.order_by("timestamp", direction=firestore.Query.DESCENDING).limit(1)
@app.route("/")
def index():
baddadan_document = next(occurrences_query.stream(), None).to_dict()
if baddadan_document is None:
render_template("error.html", error="Database error: forgot Baddadan!"), 500
last_baddadan_time = baddadan_document["timestamp"]
days_since_last_baddadan = (datetime.datetime.now().timestamp() - last_baddadan_time.timestamp()) / 86400
return render_template("index.html", days=f"{days_since_last_baddadan:.1f}")
@app.route("/baddadan") # Honour-based system
def new_baddadan():
occurrences_collection.add({
"timestamp": datetime.datetime.now()
})
return redirect("/", code=303)
if __name__ == "__main__":
app.run()