def get_players_data(self, connection, app_id, clan_id, members): players_data = [] for member in members: account_id = member['account_id'] account_name = member['account_name'] try: player_data = self.get_player_data(connection, app_id, clan_id, account_id, account_name) if self.requires_recalculation(player_data): # get accounts stat account_stats = self._retrieve_account_stats(account_id, app_id) player_data = AccountStatsToPlayerDataMapper.map(account_stats, account_id, account_name) personal_stats = self._retrieve_personal_stats(account_id, app_id) player_data = AccountStatsToPlayerDataMapper.amend_player_data(player_data, personal_stats, account_id) # create snapshot self.create_snapshot(connection, player_data) # calculate 30 day from_date = AppTime.get_now() - datetime.timedelta(days=30) self._calculate_stats_at_date(connection, player_data, from_date) # update player_stat PlayerRepository.update_player_stats(connection, player_data) players_data.append(player_data) except Exception as e: print('Failed on player: {account_name} - error: {error}' .format(account_name=member['account_name'], error=str(e))) players_data.sort(key=lambda x: x['account_name'].lower()) return players_data
def get_players_data(self, connection, app_id, clan_id, members): players_data = [] for member in members: account_id = member['account_id'] account_name = member['account_name'] try: player_data = self.get_player_data(connection, app_id, clan_id, account_id, account_name) if self.requires_recalculation(player_data): # get accounts stat account_stats = self._retrieve_account_stats( account_id, app_id) player_data = AccountStatsToPlayerDataMapper.map( account_stats, account_id, account_name) personal_stats = self._retrieve_personal_stats( account_id, app_id) player_data = AccountStatsToPlayerDataMapper.amend_player_data( player_data, personal_stats, account_id) # create snapshot self.create_snapshot(connection, player_data) # calculate 30 day from_date = AppTime.get_now() - datetime.timedelta(days=30) self._calculate_stats_at_date(connection, player_data, from_date) # update player_stat PlayerRepository.update_player_stats( connection, player_data) players_data.append(player_data) except Exception as e: print( 'Failed on player: {account_name} - error: {error}'.format( account_name=member['account_name'], error=str(e))) players_data.sort(key=lambda x: x['account_name'].lower()) return players_data
def get_player_data(self, connection, app_id, clan_id, account_id, account_name): record = PlayerRepository.get_player(connection, clan_id, account_id) if record is None: account_stats = self._retrieve_account_stats(account_id, app_id) player_data = AccountStatsToPlayerDataMapper.map(account_stats, account_id, account_name) personal_stats = self._retrieve_personal_stats(account_id, app_id) player_data = AccountStatsToPlayerDataMapper.amend_player_data(player_data, personal_stats, account_id) self.create_player_stat(connection, player_data) else: player_data = RecordToPlayerDataMapper.map(record) return player_data
def get_player_data(self, connection, app_id, clan_id, account_id, account_name): record = PlayerRepository.get_player(connection, clan_id, account_id) if record is None: account_stats = self._retrieve_account_stats(account_id, app_id) player_data = AccountStatsToPlayerDataMapper.map( account_stats, account_id, account_name) personal_stats = self._retrieve_personal_stats(account_id, app_id) player_data = AccountStatsToPlayerDataMapper.amend_player_data( player_data, personal_stats, account_id) self.create_player_stat(connection, player_data) else: player_data = RecordToPlayerDataMapper.map(record) return player_data