diff --git a/controllers/game.py b/controllers/game.py index 0f606c959e9b65034b39de6fa0b0070db1b7b6d7..9ad5559ca486ee5aae0d103ca77a396db71c0c36 100644 --- a/controllers/game.py +++ b/controllers/game.py @@ -1,10 +1,8 @@ -from parameter_util import JSON_BODY, JSON_CONTAINS +from parameter_util import JSON_BODY, JSON_CONTAINS, JSON_TO_B64 from http_util import FAIL, CODE_JSON, CODE_MISSING, CODE_SEMANTIC, CODE_GONE, CODE_CONFLICT from room_util import ROOM_GET, PLAYERS_GET from websocket_util import WEBSOCKET_SEND -import base64 -import json def start(): parameters = JSON_BODY(request) @@ -31,12 +29,11 @@ def start(): if room_record.closed: return(FAIL(CODE_GONE)) - roles = json.dumps(roles) - rolesb64 = base64.standard_b64encode(roles.encode("ascii")) + rolesB64 = JSON_TO_B64(roles) - db(db.Room.id == room_record.id).update(started=True, roles=rolesb64) + db(db.Room.id == room_record.id).update(started=True, roles=rolesB64) - WEBSOCKET_SEND(room_record, "roles", rolesb64.decode("utf-8")) + WEBSOCKET_SEND(room_record, "roles", rolesB64) json_response = {"status": "success"} return(response.json(json_response)) @@ -94,12 +91,11 @@ def roles(): #Update roles and prompts on server for uid in change: - promptString = base64.standard_b64encode(json.dumps(change[uid]["prompts"]).encode("ascii")).decode("utf-8") - db(db.Player.id == uid).update(role=change[uid]["role"], inputs=promptString) + print(change[uid]) + db(db.Player.id == uid).update(role=change[uid]["role"], prompts=JSON_TO_B64(change[uid]["prompts"])) #Update roles on clients - websocket_response = base64.standard_b64encode(json.dumps(change).encode("ascii")).decode("utf-8") - WEBSOCKET_SEND(room_record, "role", websocket_response) + WEBSOCKET_SEND(room_record, "role", JSON_TO_B64(change)) json_response = {"status": "success"} return(response.json(json_response)) diff --git a/modules/parameter_util.py b/modules/parameter_util.py index 2fed05cf85717d8185fb0d9dcfba5e8a97f86d44..ce2c51bc1351761b6bf1b8cee9e3542af34f2a01 100644 --- a/modules/parameter_util.py +++ b/modules/parameter_util.py @@ -1,6 +1,7 @@ from gluon import * import json +import base64 def JSON_BODY(_request): try: @@ -27,3 +28,7 @@ def JSON_CONTAINS(_json, _list): return (False) return (True) + + +def JSON_TO_B64(_json): + return (base64.standard_b64encode(json.dumps(_json).encode("ascii")).decode("utf-8"))