From 05c472a3de381756e93f3cacf305138c79282c2d Mon Sep 17 00:00:00 2001 From: Dominic Zimmer Date: Fri, 17 Apr 2020 00:58:32 +0200 Subject: [PATCH] More views --- backups/2020-04-17-004702_tehmodel.json | 1 + model.py | 25 ++++++++++++++++--------- tehmodel.json | 1 + 3 files changed, 18 insertions(+), 9 deletions(-) create mode 100644 backups/2020-04-17-004702_tehmodel.json create mode 100644 tehmodel.json diff --git a/backups/2020-04-17-004702_tehmodel.json b/backups/2020-04-17-004702_tehmodel.json new file mode 100644 index 0000000..3960af8 --- /dev/null +++ b/backups/2020-04-17-004702_tehmodel.json @@ -0,0 +1 @@ +{"clients": {"hrp7wawucurqzzap": {"id": "hrp7wawucurqzzap"}}, "sessions": {}} \ No newline at end of file diff --git a/model.py b/model.py index 5dded70..ee51989 100644 --- a/model.py +++ b/model.py @@ -34,12 +34,17 @@ class Model: self.model["sessions"] = {} async def handle_post(self, clientid, data): - print("I have received P O S T data: " + str(data)) + print(f"I have received P O S T data: {data} from {clientid}") print("let me tell everyone") - for k, v in self.sockets.items(): - await v.send_json({"message": "nudes"}) + await self.send_state(clientid) return True + async def send_state(self, clientid): + # TODO: compute state, send to client + data = {"message": "nudes"} + for socket in self.sockets[clientid] + socket.send_json(data) + def save(self): with open(self.filename, "w") as f: json.dump(self.model, f) @@ -61,16 +66,18 @@ class Model: self.model["clients"][clientname] = newclient return clientname - def create_session(self) -> str: + def create_session(self, clientid) -> str: sessionname = generate_random_id() - newsession = {"id": sessionname, "clients": []} + newsession = {"id": sessionname, "owner": clientid, "clients": []} self.model["sessions"][sessionname] = newsession return sessionname def subscribe(self, clientid, socket): - self.sockets[clientid] = socket + if not clientid in self.sockets: + self.sockets[clientid] = [] + self.sockets[clientid].append(socket) def unsubscribe(self, socket): - for k,v in self.sockets.items(): - if v == socket: - self.sockets.pop(k) + for client in self.sockets: + if socket in self.sockets[client]: + self.sockets[client].remove(socket) diff --git a/tehmodel.json b/tehmodel.json new file mode 100644 index 0000000..3960af8 --- /dev/null +++ b/tehmodel.json @@ -0,0 +1 @@ +{"clients": {"hrp7wawucurqzzap": {"id": "hrp7wawucurqzzap"}}, "sessions": {}} \ No newline at end of file