def main(): # verify that the necessary files exist battletag_from_cli = [] if len(sys.argv) == 1: try: verify_files_exists(REGION_CODES) except FileNotFoundError: exit(1) elif len(sys.argv) == 2: if not os.path.exists(sys.argv[1]): Log.write_log_message("Specified file does not exist, exiting...", True) btags = open(sys.argv[1], "r") for btag in btags: battletag_from_cli.append(btag.strip()) # get the API request parameters request_parameters = get_request_parameters() # get the current season ID season_id = -1 try: season_id = API.get_current_season_id(request_parameters) except RequestError as e: print(e) exit(1) Log.write_log_message("Current Season ID: {}".format(season_id)) db_handle = MySQL() for region in REGION_CODES: Log.write_log_message("Starting {} Region".format(region.upper())) # get ladders ladders = API.get_all_ladders(region, MAX_LEAGUE_ID, season_id, request_parameters) Log.write_log_message("Total Ladders Found: {}".format(len(ladders))) # add all of the ladders to the database try: add_ladders_to_database(db_handle, ladders) except MySQLdb.IntegrityError: Log.write_log_message( "Ladders are already in database for {}".format( region.upper())) # read in btags to a list if len(battletag_from_cli) == 0: battletags = get_battletags(region) else: battletags = battletag_from_cli num_battletags = len(battletags) Log.write_log_message("Battletags Read In: {}".format(num_battletags)) # go through every ladder looking for one of our players for ladder in ladders: # loop through every ladder between bronze and diamond # get all of the players in the ladder players = API.get_players_in_ladder(region, ladder, request_parameters) for player in players: # loop through every player in the ladder if [battletag.lower() for battletag in battletags ].__contains__(player.battletag.lower()): # a JSL contestant was found db_handle.add_player(player) for team in player.ladders: db_handle.add_race(player, team) for team in player.ladders: Log.write_log_message( "Found player: {} [{} {} {}]".format( player.battletag, team.league, team.divison, team.race)) # get all players in database Log.write_log_message("Writing valid player data to disk") valid_players = db_handle.get_all_valid_players() write_valid_players(valid_players) # close database db_handle.close()