def get(username): user = UserManager.find_static(username) if not user: return {"error": "Not found"}, 404 redis = RedisManager.get() key = "{streamer}:users:num_lines".format( streamer=StreamHelper.get_streamer()) rank = redis.zrevrank(key, user.username) if rank is None: rank = redis.zcard(key) else: rank = rank + 1 return user.jsonify()
def user_profile(username): with DBManager.create_session_scope() as db_session: user = UserManager.find_static(username, db_session=db_session) if not user: return render_template('no_user.html'), 404 try: roulette_stats, roulettes = get_roulette(app, user) except TypeError: roulette_stats = None roulettes = {} try: dotabet_stats, recent_bets = get_bets(app, user) except TypeError: dotabet_stats = None recent_bets = {} return render_template('user.html', user=user, roulette_stats=roulette_stats, dotabet_stats=dotabet_stats, roulettes=roulettes, bets=recent_bets)
def get(username): user = UserManager.find_static(username) if not user: return {"error": "Not found"}, 404 return user.jsonify()
def user_profile(username): with DBManager.create_session_scope() as db_session: user = UserManager.find_static(username, db_session=db_session) if not user: return render_template('no_user.html'), 404 roulettes = db_session.query(Roulette).filter_by( user_id=user.id).order_by(Roulette.created_at.desc()).all() roulette_stats = None if len(roulettes) > 0: profit = 0 total_points = 0 biggest_loss = 0 biggest_win = 0 biggest_winstreak = 0 biggest_losestreak = 0 num_wins = 0 num_losses = 0 winrate = 0 num_roulettes = len(roulettes) cw = 0 for roulette in roulettes: profit += roulette.points total_points += abs(roulette.points) if roulette.points > 0: # a win! num_wins += 1 if cw < 0: if abs(cw) > biggest_losestreak: biggest_losestreak = abs(cw) cw = 0 cw += 1 else: # a loss num_losses += 1 if cw > 0: if cw > biggest_winstreak: biggest_winstreak = cw cw = 0 cw -= 1 if roulette.points < biggest_loss: biggest_loss = roulette.points elif roulette.points > biggest_win: biggest_win = roulette.points # Calculate winrate if num_losses == 0: winrate = 1 elif num_wins == 0: winrate = 0 else: winrate = num_wins / num_roulettes # Finalize win/lose streaks in case we're currently # on the biggest win/lose streak if cw < 0: if abs(cw) > biggest_losestreak: biggest_losestreak = abs(cw) elif cw > 0: if cw > biggest_winstreak: biggest_winstreak = cw if 'roulette' in app.module_manager: roulette_base_winrate = 1.0 - app.module_manager[ 'roulette'].settings['rigged_percentage'] / 100 else: roulette_base_winrate = 0.45 roulette_stats = { 'profit': profit, 'total_points': total_points, 'biggest_win': biggest_win, 'biggest_loss': biggest_loss, 'num_roulettes': num_roulettes, 'biggest_winstreak': biggest_winstreak, 'biggest_losestreak': biggest_losestreak, 'winrate': winrate, 'winrate_str': '{:.2f}%'.format(winrate * 100), 'roulette_base_winrate': roulette_base_winrate, } return render_template('user.html', user=user, roulette_stats=roulette_stats, roulettes=roulettes)
def user_profile(username): with DBManager.create_session_scope() as db_session: user = UserManager.find_static(username, db_session=db_session) if not user: return render_template('no_user.html'), 404 roulettes = db_session.query(Roulette).filter_by(user_id=user.id).order_by(Roulette.created_at.desc()).all() roulette_stats = None if len(roulettes) > 0: profit = 0 total_points = 0 biggest_loss = 0 biggest_win = 0 biggest_winstreak = 0 biggest_losestreak = 0 num_wins = 0 num_losses = 0 winrate = 0 num_roulettes = len(roulettes) cw = 0 for roulette in roulettes: profit += roulette.points total_points += abs(roulette.points) if roulette.points > 0: # a win! num_wins += 1 if cw < 0: if abs(cw) > biggest_losestreak: biggest_losestreak = abs(cw) cw = 0 cw += 1 else: # a loss num_losses += 1 if cw > 0: if cw > biggest_winstreak: biggest_winstreak = cw cw = 0 cw -= 1 if roulette.points < biggest_loss: biggest_loss = roulette.points elif roulette.points > biggest_win: biggest_win = roulette.points # Calculate winrate if num_losses == 0: winrate = 1 elif num_wins == 0: winrate = 0 else: winrate = num_wins / num_roulettes # Finalize win/lose streaks in case we're currently # on the biggest win/lose streak if cw < 0: if abs(cw) > biggest_losestreak: biggest_losestreak = abs(cw) elif cw > 0: if cw > biggest_winstreak: biggest_winstreak = cw if 'roulette' in app.module_manager: roulette_base_winrate = 1.0 - app.module_manager['roulette'].settings['rigged_percentage'] / 100 else: roulette_base_winrate = 0.45 roulette_stats = { 'profit': profit, 'total_points': total_points, 'biggest_win': biggest_win, 'biggest_loss': biggest_loss, 'num_roulettes': num_roulettes, 'biggest_winstreak': biggest_winstreak, 'biggest_losestreak': biggest_losestreak, 'winrate': winrate, 'winrate_str': '{:.2f}%'.format(winrate * 100), 'roulette_base_winrate': roulette_base_winrate, } return render_template('user.html', user=user, roulette_stats=roulette_stats, roulettes=roulettes)