def lobby(self): user = self.user if user.game_state == 'playing': return redirect(url(controller="game", action="game")) send('/lobby', dict(type='enter', user=user.to_dict())) #so, the lobby shows (somehow) a list of users not in games. #load the initial list free_users = User.select((User.q.game_state == None) & ((User.q.logged_in >= User.q.logged_out) | (User.q.logged_out == None))) free_users = [user for user in free_users if user.is_logged_in()] c.free_users = free_users c.initial_data = '""' #is there a pending invitation? if user.game and user.game.state == "invite": game = user.game user.game_state == "" #unaccept invited = [u.display_name for u in User.selectBy(game=game) if u != game.inviter] message = {'type' : 'invite', 'game' : game.channel, 'inviter' : game.inviter.display_name, 'min_word_len' : game.min_word_len, 'other_players' : invited} c.initial_data = dumps(message) return render("lobby/lobby.mako")
def show_setup(self): user = self.user if not user: return redirect("show_login") c.email = user.email c.display_name = user.display_name return render("user/show_setup.mako")
def game(self): user = self.user c.game = user.game if user.game_state != 'playing': user.game = None #we are mistakenly in this game user.game_state = None return redirect(url(action="lobby", controller="lobby")) return render("game/game.mako")
def show_login(self): return render("user/show_login.mako")