#!/usr/bin/python print("Content-type: text/html\n") print("") import os import cgi from datetime import datetime import locale locale.setlocale(locale.LC_TIME, "de_DE.utf8") origin_url = "https://augustiner-kantorei.de/pinnwand" database = "db.cfg" def get_arguments(): """Wrapper for cgi-environment. Takes no options, return dict of arguments """ rawargs = cgi.FieldStorage() args = {} for i in rawargs: args[i] = rawargs.getvalue(i) return args args = get_arguments() oversize=False if os.path.getsize(database) < 100 * 1024 * 1024: # only add entries if file size does not exceed 100 MiB if "ort" in args and "name" in args and "comment" in args: # add entry try: zeit = datetime.timestamp(datetime(int(args["year"]), int(args["month"]), int(args["day"]), int(args["hour"]), int(args["minute"]))) except: exit() try: with open(database, "a") as f: f.write("\t".join( [ str(zeit), args["ort"].replace("\t", ""), args["name"].replace("\t", ""), args["comment"].replace("\t", "").replace("\n", " ").replace("\r", " "), datetime.now().strftime("%Y-%m-%d %H:%M:%S") ] )) f.write("\n") except Exception as e: exit() else: oversize = True # display current entries now = datetime.timestamp(datetime.now()) with open(database, "r") as f: content = f.readlines() table = "" for line in content: tstamp, ort, name, comment, timestamp = line.split("\t") if float(tstamp) < now - 60*60: continue zeit = datetime.fromtimestamp(float(tstamp)) hzeit = datetime.strftime(zeit, "%a, %d.%m.%Y %H:%M") table += f"{hzeit}{ort}{name}{comment}" print(f"""

Überschrift

Terminangebote

Termine werden eine Stunde nach Erreichen des Termins automatisch nicht mehr angezeigt.
{table}
ZeitpunktTreffpunktNameBemerkung


Neuer Eintrag

""") if oversize: print("neuer Eintrag derzeit nicht möglich, Datei voll.") else: print("""
. .   :   Zeitpunkt (Tag. Monat. Jahr Stunde:Minute)
 Treffpunkt
 Name
 Bemerkung
""") print("
Augustiner-Pinnwand - ein Service von dukun.de
Rückmeldung
")