def getActiveGames(): # get game info for all active games, i.e. with game_status == 0 or 1 # game_status: 0 if waiting, 1 if playing, 2 if completed # returns game info (game_id, game_status, pot, game_name, time_limit, min_players, max_players, ante, max_raise) in the form of an array of dictionaries # yesterday = datetime.now() - timedelta(days=0) # active_games = Game.query.filter(or_(Game.game_status == 0, Game.game_status == 1, Game.updated_at > yesterday)).all() active_games = Game.query.filter( or_(Game.game_status == 0, Game.game_status == 1)).all() # print("datetime info:", int(Game.updated_at), int(datetime.now())) return active_games # return game info
def getTopWinLossRecords(num_of_players): results = Player.query.join(User).with_entities( \ User.user_name.label('user_name'), \ func.count(Player.result).filter(Player.result==2).label('wins'), \ func.count(Player.result).filter(Player.result==3).label('losses') \ ).filter(or_(Player.result==2,Player.result==3)).group_by(User.user_name) \ .order_by((1.0*func.count(Player.result).filter(Player.result==2)/ \ (func.count(Player.result).filter(Player.result==3)+ func.count(Player.result).filter(Player.result==2))).desc() ).limit(10).all() records = [] for result in results: entry = {} entry['user_name'] = result.user_name entry['wins'] = result.wins entry['losses'] = result.losses records.append(entry) return records
def getNumWaitingOrActivePlayers(game_id): # player.result = 0 or 1 num_players = Player.query.filter( Player.game_id == game_id, or_(Player.result == 0, Player.result == 1)).count() return num_players