diff --git a/analyze_wotb_replays.py b/analyze_wotb_replays.py index cc3c449..1ac4621 100755 --- a/analyze_wotb_replays.py +++ b/analyze_wotb_replays.py @@ -227,6 +227,12 @@ class BattleCategorizationList(): ] + _categorizations_stats = [ + 'player_wins', + 'player_battles', + 'player_battles' + ] + @classmethod def get_categorizations_all(cls): return cls._categorizations.keys() @@ -1591,7 +1597,14 @@ async def main(argv): players = get_players(results) replays = filter_replays(replays, results) - (player_stats, stat_id_map) = await process_player_stats(players, OPT_WORKERS_N, args, db) + # Filter based on non-stats filters + results = filter_results(results, args.filters, stats_filters=False) + + (player_stats, stat_id_map) = await process_player_stats(players, OPT_WORKERS_N, args, db) + + # Filter based on stats filters + results = filter_results(results, args.filters, stats_filters=True) + bu.debug('Number of player stats: ' + str(len(player_stats))) teamresults = calc_team_stats(results, player_stats, stat_id_map, args) @@ -1810,6 +1823,7 @@ def print_player_dist(histograms: dict): print('') hist.print() + def process_battle_results(results: dict, args : argparse.Namespace): """Process replay battle results""" try: @@ -1817,8 +1831,7 @@ def process_battle_results(results: dict, args : argparse.Namespace): cats = BattleCategorizationList.get_categorizations(args) blt_cat_list= None - if args.filters != None: - results = filter_results(results, args.filters) + # remove if? if len(results) > 0: blt_cat_list = BattleCategorizationList(cats) for result in results: @@ -1838,7 +1851,7 @@ def process_battle_results(results: dict, args : argparse.Namespace): return blt_cat_list -def filter_results(results: list, filter_json : str) -> bool: +def filter_results(results: list, filter_json : str, stats_filters=False) -> bool: """Filter replays based on battle category filters""" try: filters = json.loads(filter_json)