def joinGrid(handler, **args): try: #TODO: Sanity checks gid = args['gid'] except KeyError: return {"status": 406, "error": "no gid"} pid = None if "pid" in args: pid = args['pid'] g = Grid(gid) if g.exists() is False: return {"status":404, "error":"Grid not found."} # Add the user to the grid/UpdateManager pid = g.addUser(handler.user, pid) if pid is False: return { "status":406, "error": "Grid is full" } handler.user['pid'] = pid handler.user['grid'] = gid handler.user['active'] = True player = handler.user.getPlayer() # Looks like it's a new player, go ahead and init them if g.playerExists(pid) is False: player['cash'] = g['init_cash'] # Starting cash value player['inc'] = 0 player['lastInc'] = int(time()) player['tused'] = g['init_tused'] player['tlim'] = g['init_tlim'] updated = g.loadEvent("join_%s" % pid) # Add their new coords for coord in updated: UpdateManager.sendCoord(g, coord, handler.user) # Announce our color to all other clients UpdateManager.sendGrid(g, "addPlayer", handler.user) return { "status":200, "uid": handler.user['id'], "pid": pid, "cash": player['cash'], "inc": player['inc'], "tused": player['tused'], "tlim": player['tlim'], "colors": g.getColors(), "color": player['color'], "coords": g.dump() }
def get(self): name = self.get_argument("name", None) gid = self.get_argument("gid", None) if name is None and gid is None: return jsonify(self, status=406) if gid is None: g = Grid.fromName(name) elif name is None: g = Grid(gid) if g.exists() is False: return jsonify(self, status=404) return jsonify(self, status=200, data = { "gid": g['id'], "size": g['size'] })