diff --git a/main.py b/main.py index 27f3b8c..a9662af 100644 --- a/main.py +++ b/main.py @@ -86,7 +86,7 @@ async def _(request: aiohttp.web.Request): async def handler(request: aiohttp.web.Request): model = request.app['model'] - return aiohttp.web.json_response(model.sessions) + return aiohttp.web.json_response(model.model) @routes.get('/') diff --git a/model.py b/model.py index 7210928..e7b855b 100644 --- a/model.py +++ b/model.py @@ -50,6 +50,11 @@ class Model(object): async def test_yeet(self, clientid): raise Exception('yeet') + @ApiMethod + async def change_username(self, clientid, username) -> str: + self.model["clients"][clientid]["username"] = username + await self.send_state(clientid) + @ApiMethod async def create_session(self, clientid) -> str: sessionname = generate_random_id() @@ -77,7 +82,7 @@ class Model(object): if "session" in self.model["clients"][clientid]: session = self.model["clients"][clientid]["session"] allsessions = [ name for name in self.model["sessions"] ] - username = self.model["clients"][clientid]["name"] if "name" in self.model["clients"][clientid] else "Joe" + username = self.model["clients"][clientid]["username"] if "username" in self.model["clients"][clientid] else "Joe" data = {"currentsession": session, "allsessions": allsessions, "username": username} for socket in self.sockets[clientid]: await socket.send_json(data) @@ -99,7 +104,7 @@ class Model(object): def create_client(self, name="Joe") -> str: clientname = generate_random_id() - newclient = {"id": clientname, "name": name} + newclient = {"id": clientname, "username": name} self.model["clients"][clientname] = newclient return clientname diff --git a/ui.html b/ui.html index c9bb6e1..279e14c 100644 --- a/ui.html +++ b/ui.html @@ -14,6 +14,9 @@



+ + +


@@ -36,6 +39,15 @@ body: JSON.stringify(data), }) }; + document.getElementById("btn_set_username").onclick = async function (e) { + let text = document.getElementById("set_username").value; + let data = {"username": text}; + + await fetch('api/change_username', { + method: 'POST', + body: JSON.stringify(data), + }) + };