def create_all_stats_from_id(id_: str, rank: int = None, replay_ids: List[str] = None, playlist: int = 13, win: bool = None, session=None) -> PlayerDataPoint: game_count = player_wrapper.get_total_games(session, id_) if game_count == 0: raise UserHasNoReplays() if rank is None: rank = get_rank(id_) averaged_stats = player_stat_wrapper.get_averaged_stats( session, id_, redis=current_app.config['r'], raw=True, rank=rank, replay_ids=replay_ids, playlist=playlist, win=win) if len(id_) == 11 and id_[0] == 'b' and id_[-1] == 'b': names_and_counts: List[Tuple[str, int]] = session.query(PlayerGame.name, func.count(PlayerGame.name).label('c')) \ .filter(PlayerGame.player == id_) \ .group_by(PlayerGame.name).order_by(desc('c'))[:5] id_ = names_and_counts[0][0] playstyle_data_raw: PlayerDataPoint = PlayerDataPoint( name=id_, data_points=[ DataPoint( explanations[k].field_rename if k in explanations else k, averaged_stats[k]) for k in averaged_stats ]) return playstyle_data_raw
def view_player(id_): print(id_, request.remote_addr) if len(id_) != 17 or re.match(regex, id_) is None: r = get_vanity_to_steam_id_or_random_response(id_, current_app) if r is None: return redirect(url_for('home')) id_ = r['response']['steamid'] return redirect(url_for('players.view_player', id_=id_)) session = current_app.config['db']() rank = get_rank(id_) total_games = player_wrapper.get_total_games(session, id_) games, stats, favorite_car, favorite_car_pctg, names = player_stat_wrapper.get_averaged_stats(session, id_, total_games, rank, redis=current_app.config['r']) steam_profile = get_steam_profile_or_random_response(id_, current_app) user = session.query(Player).filter(Player.platformid == id_).first() if user is not None: groups = [current_app.config['groups'][i] for i in user.groups] else: groups = [] if steam_profile is None: return render_template('error.html', error="Unable to find the requested profile") return render_with_session('player.html', session, games=games, rank=rank, profile=steam_profile, car=favorite_car, favorite_car_pctg=favorite_car_pctg, stats=stats, total_games=total_games, game_per_page=player_wrapper.limit, id=id_, get_stat_spider_charts=PlayerStatWrapper.get_stat_spider_charts, groups=groups, names=names)
def create_all_stats_from_id(id_: str, rank: int = None, replay_ids: List[str] = None, playlist: int = 13, win: bool = None, session=None) -> PlayerDataPoint: game_count = player_wrapper.get_total_games(session, id_) if game_count == 0: raise UserHasNoReplays() if rank is None: rank = get_rank(id_) averaged_stats, global_stats = player_stat_wrapper.get_averaged_stats( session, id_, redis=current_app.config['r'], raw=True, rank=rank, replay_ids=replay_ids, playlist=playlist, win=win) playstyle_data_raw: PlayerDataPoint = PlayerDataPoint( name=id_, data_points=[ DataPoint( explanations[k].field_rename if k in explanations else k, averaged_stats[k]) for k in averaged_stats ]) return playstyle_data_raw
def create_from_id(cls, id_: str, raw=False, rank=None, replay_ids=None, playlist=13, win=None, session=None): game_count = player_wrapper.get_total_games(session, id_) if game_count == 0: raise UserHasNoReplays() if rank is None: rank = get_rank(id_) try: averaged_stats = player_stat_wrapper.get_averaged_stats(session, id_, redis=get_redis(), raw=raw, rank=rank, replay_ids=replay_ids, playlist=playlist, win=win) except NoResultFound: raise NoReplaysForPlaylist(playlist) spider_charts_groups = player_stat_wrapper.get_stat_spider_charts() play_style_chart_datas: List[PlayStyleChartData] = [] for spider_chart_group in spider_charts_groups: title = spider_chart_group['title'] chart_data_points = [ ChartDataPoint(name=explanations[name].short_name if name in explanations else name, value=averaged_stats[name]) for name in spider_chart_group['group'] ] play_style_chart_datas.append(PlayStyleChartData(title, chart_data_points)) return PlayStyleResponse( chart_datas=play_style_chart_datas, show_warning=game_count <= cls.showWarningThreshold )
def test_get_rank_bot(self, mock_bracket): initialize_db_with_replays(self.replays) unranked_rank = get_empty_data(["b086f2d2abb"]) rank = get_rank("b086f2d2abb") assert (unranked_rank[list(unranked_rank.keys())[0]].get('10') != rank.get('10')) assert (unranked_rank[list( unranked_rank.keys())[0]].get('13') == rank.get('13')) assert (unranked_rank[list( unranked_rank.keys())[0]].get('11') == rank.get('11'))
def create_from_id(id_: str) -> 'PlayerRanks': try: rank_datas = get_rank(id_) # print(rank_datas) player_rank_params = { rank_data['mode']: PlaylistRank(rank_data['string'], rank_data['tier'], rank_data['rank_points']) for playlist, rank_data in rank_datas.items() } return PlayerRanks(player_rank_params) except: return PlayerRanks(dict())
def test_get_rank_bot(self): unranked_rank = get_empty_data(["b086f2d2abb"]) rank = get_rank("b086f2d2abb") self.assertNotEqual(unranked_rank[list(unranked_rank.keys())[0]].get('10'), rank.get('10')) self.assertEqual(unranked_rank[list(unranked_rank.keys())[0]].get('13'), rank.get('13')) self.assertEqual(unranked_rank[list(unranked_rank.keys())[0]].get('11'), rank.get('11'))
def api_v1_get_rank(id_): return jsonify(get_rank(id_))