def get_top_fleets(take: int = 100, as_embed: bool = settings.USE_EMBEDS): raw_data = core.get_data_from_path(TOP_FLEETS_BASE_PATH + str(take)) data = core.xmltree_to_dict3(raw_data) if as_embed: return _get_top_fleets_as_embed(data, take), True else: return _get_top_fleets_as_text(data, take), True
def get_top_captains(take: int = 100, as_embed: bool = settings.USE_EMBEDS): path = _get_top_captains_path(take) raw_data = core.get_data_from_path(path) data = core.xmltree_to_dict3(raw_data) if as_embed: return _get_top_captains_as_embed(data, take), True else: return _get_top_captains_as_text(data, take), True
def get_top_fleets(take: int = 100, as_embed: bool = False): path = f'AllianceService/ListAlliancesByRanking?skip=0&take={take}' raw_data = core.get_data_from_path(path) data = core.xmltree_to_dict3(raw_data) if as_embed: return _get_top_fleets_as_embed(data, take), True else: return _get_top_fleets_as_text(data, take), True
def get_top_captains(take: int = 100, as_embed: bool = False): access_token = os.getenv('GPAT') path = f'LadderService/ListUsersByRanking?accessToken={access_token}&from=1&to={take}' raw_data = core.get_data_from_path(path) data = core.xmltree_to_dict3(raw_data) if as_embed: return _get_top_captains_as_embed(data, take), True else: return _get_top_captains_as_text(data, take), True
def init(): league_data = core.get_data_from_path(LEAGUE_BASE_PATH) league_infos = core.xmltree_to_dict3(league_data) for league_info in sorted( list(league_infos.values()), key=lambda league_info: int(league_info['MinTrophy'])): league_info['MinTrophy'] = int(league_info['MinTrophy']) league_info['MaxTrophy'] = int(league_info['MaxTrophy']) LEAGUE_INFOS_CACHE.append(league_info)
def get_news(as_embed: bool = settings.USE_EMBEDS, language_key: str = 'en'): path = f'SettingService/ListAllNewsDesigns?languageKey={language_key}' try: raw_text = core.get_data_from_path(path) raw_data = core.xmltree_to_dict3(raw_text) except Exception as err: raw_data = None if not raw_data: return [f'Could not get news: {err}'], False else: if as_embed: return _get_news_as_embed(raw_data), True else: return _get_news_as_text(raw_data), True
def update_data(self, old_data=None) -> bool: util.dbg_prnt(f'+ PssCache[{self.name}].update_data(old_data)') util.dbg_prnt( f'[PssCache[{self.name}].update_data] Fetch data from path: {self.__update_path}' ) data = core.get_data_from_path(self.__update_path) util.dbg_prnt( f'[PssCache[{self.name}].update_data] Retrieved {len(data)} bytes') data_changed = data != old_data if data_changed: self.__request_write() can_write = False while not can_write: can_write = self.__get_reader_count() == 0 if not can_write: time.sleep(random.random()) self.__write_data(data) self.__finish_write() return True return False
def get_dropship_text(as_embed: bool = False, language_key: str = 'en'): path = f'SettingService/GetLatestVersion3?languageKey={language_key}&deviceType=DeviceTypeAndroid' raw_text = core.get_data_from_path(path) raw_data = core.xmltree_to_dict3(raw_text) collection_design_data = crew.__collection_designs_cache.get_data_dict3() char_design_data = crew.__character_designs_cache.get_data_dict3() item_design_data = item.__item_designs_cache.get_data_dict3() room_design_data = room.__room_designs_cache.get_data_dict3() daily_msg = _get_daily_news_from_data_as_text(raw_data) dropship_msg = _get_dropship_msg_from_data_as_text(raw_data, char_design_data, collection_design_data) merchantship_msg = _get_merchantship_msg_from_data_as_text( raw_data, item_design_data) shop_msg = _get_shop_msg_from_data_as_text(raw_data, char_design_data, collection_design_data, item_design_data, room_design_data) sale_msg = _get_sale_msg_from_data_as_text(raw_data, char_design_data, collection_design_data, item_design_data, room_design_data) daily_reward_msg = _get_daily_reward_from_data_as_text( raw_data, item_design_data) lines = daily_msg lines.append(core.EMPTY_LINE) lines.extend(dropship_msg) lines.append(core.EMPTY_LINE) lines.extend(merchantship_msg) lines.append(core.EMPTY_LINE) lines.extend(shop_msg) lines.append(core.EMPTY_LINE) lines.extend(sale_msg) lines.append(core.EMPTY_LINE) lines.extend(daily_reward_msg) return lines, True
def get_division_stars(division: str = None, fleet_data: dict = None, retrieved_date: datetime = None, as_embed: bool = settings.USE_EMBEDS): if division: pss_assert.valid_parameter_value(division, 'division', min_length=1, allowed_values=ALLOWED_DIVISION_LETTERS) if division == '-': division = None else: division = None if fleet_data is None or retrieved_date is None: data = core.get_data_from_path(STARS_BASE_PATH) fleet_infos = core.xmltree_to_dict3(data) else: fleet_infos = fleet_data divisions = {} if division: division_design_id = lookups.DIVISION_CHAR_TO_DESIGN_ID[division.upper()] divisions[division.upper()] = [fleet_info for fleet_info in fleet_infos.values() if fleet_info['DivisionDesignId'] == division_design_id] pass else: for division_design_id in lookups.DIVISION_DESIGN_ID_TO_CHAR.keys(): if division_design_id != '0': division_letter = lookups.DIVISION_DESIGN_ID_TO_CHAR[division_design_id] divisions[division_letter] = [fleet_info for fleet_info in fleet_infos.values() if fleet_info['DivisionDesignId'] == division_design_id] if divisions: result = [] for division_letter, fleet_infos in divisions.items(): result.extend(_get_division_stars_as_text(division_letter, fleet_infos)) result.append(settings.EMPTY_LINE) if result: result = result[:-1] if retrieved_date is not None: result.append(util.get_historic_data_note(retrieved_date)) return result, True else: return [], False
def search_alliances(alliance_name): path = f'AllianceService/SearchAlliances?name={alliance_name}&skip=0&take=100' raw_data = core.get_data_from_path(path) data = core.xmltree_to_dict3(raw_data) result = [data[key] for key in data.keys()] return result
def _get_user_infos(user_name: str) -> dict: path = f'{SEARCH_USERS_BASE_PATH}{util.url_escape(user_name)}' user_data_raw = core.get_data_from_path(path) user_infos = core.xmltree_to_dict3(user_data_raw) return user_infos
def _get_fleet_users_by_id(alliance_id: str) -> dict: path = _get_search_fleet_users_base_path(alliance_id) fleet_users_data_raw = core.get_data_from_path(path) fleet_users_infos = core.xmltree_to_dict3(fleet_users_data_raw) return fleet_users_infos
def _get_fleet_infos_by_name(fleet_name: str) -> dict: path = _get_search_fleets_base_path(fleet_name) fleet_data_raw = core.get_data_from_path(path) fleet_infos = core.xmltree_to_dict3(fleet_data_raw) return fleet_infos
def _get_fleet_info_by_id(fleet_id: str) -> dict: path = _get_get_alliance_base_path(fleet_id) fleet_data_raw = core.get_data_from_path(path) fleet_info = core.xmltree_to_dict3(fleet_data_raw) return fleet_info
def get_inspect_ship_for_user(user_id: str) -> dict: inspect_ship_path = _get_inspect_ship_base_path(user_id) inspect_ship_data = core.get_data_from_path(inspect_ship_path) result = core.xmltree_to_dict2(inspect_ship_data) return result