Merge remote-tracking branch 'origin/master'

This commit is contained in:
Kai Vogelgesang 2020-04-17 03:10:56 +02:00
commit f1d98376d4
3 changed files with 20 additions and 3 deletions

View File

@ -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('/')

View File

@ -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

12
ui.html
View File

@ -14,6 +14,9 @@
<br>
<button id="btn_create_session">Create session</button>
<br><br><br>
<input id="set_username" type="text" placeholder="New username" />
<button id="btn_set_username">Set Username</button>
<br><br><br>
<input id="join_session_id" type="text" placeholder="Enter session id" />
<button id="btn_join_session">Join session</button>
@ -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),
})
};
</script>
</body>