From 819a92bedd1781ab98ccccdec8e3c3f8bdd08e12 Mon Sep 17 00:00:00 2001 From: Dominic Zimmer Date: Thu, 16 Apr 2020 15:28:41 +0200 Subject: [PATCH] Add model class --- model.json | 1 + model.py | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 model.json diff --git a/model.json b/model.json new file mode 100644 index 0000000..1b5228b --- /dev/null +++ b/model.json @@ -0,0 +1 @@ +{"bar": "foo", "foo": 3, "test": 4} \ No newline at end of file diff --git a/model.py b/model.py index e69de29..7dd6e2a 100644 --- a/model.py +++ b/model.py @@ -0,0 +1,64 @@ +import random +import base64 +import json +import os +import datetime + + +class Model: + def __init__(self, filename = "model.json"): + self.filename = filename + self.sessions = None + if os.path.isfile(filename): + with open(filename) as f: + try: + self.sessions = json.load(f) + except: + self.sessions = {} + else: + self.sessions = {} + + def handle_post(self, data): + pass + # handle post request data + + def __enter__(self): + return self + + def __exit__(self, exception_type, exception_value, traceback): + if not (exception_type or exception_value or traceback): + with open(self.filename, "w") as f: + json.dump(self.sessions, f) + if not os.path.isdir("backups"): + try: + os.mkdir("backups") + except FileExistsError: + print("backups is a file, no directory. Please delete yourself") + datestring = datetime.datetime.strftime(datetime.datetime.now(), "%Y-%m-%d-%H%M%S") + with open(f"backups/{datestring}_{self.filename}", "w") as f: + json.dump(self.sessions, f) + + + + def create_session(self) -> str: + sessionname = base64.b32encode(bytearray(random.randint(0, 0xFF) for _ in range(10)))[:16].decode().lower() + self.sessions[sessionname] = {} + return sessionname + + def subscribe(self, clientid, socket): + pass + # todo subscribe socket, match with id + + + def unsubscribe(self, socket): + pass + # remove socket from all clients + + + + + + """ +new session : () +add player : uuid +"""