Пример #1
0
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
Пример #2
0
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
Пример #3
0
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