def request_id2item(): url = base_url + 'ItemService/ListItemDesigns2?languageKey=en' raw_text = core.get_data_from_url(url) id2item = core.xmltree_to_dict3(raw_text, 'ItemDesignId') # item_lookup = mkt.parse_item_designs(raw_text) # df_items = mkt.rtbl2items(item_lookup) return id2item
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
async def init(): league_data = await 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_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_news(): url = f'{base_url}/SettingService/ListAllNewsDesigns?languageKey=en' raw_text = core.get_data_from_url(url) d = core.xmltree_to_dict3(raw_text, key='NewsDesignId') txt = '' for k, v in d.items(): txt += f"**{v['Title']}**\n" txt += v['Description'] + '\n\n' return txt.strip()
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
async 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 = await 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 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
async def get_news(ctx: commands.Context, as_embed: bool = settings.USE_EMBEDS, language_key: str = 'en'): path = f'SettingService/ListAllNewsDesigns?languageKey={language_key}' try: raw_text = await core.get_data_from_path(path) raw_data = core.xmltree_to_dict3(raw_text) except Exception as err: raw_data = None return [f'Could not get news: {err}'], False if raw_data: news_infos = sorted(list(raw_data.values()), key=lambda news_info: news_info['UpdateDate']) news_count = len(news_infos) if news_count > 5: news_infos = news_infos[news_count-5:] news_details_collection = __create_news_details_collection_from_infos(news_infos) if as_embed: return (await news_details_collection.get_entity_details_as_embed(ctx)), True else: return (await news_details_collection.get_entity_details_as_text()), True
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
async def get_top_fleets(ctx: commands.Context, take: int = 100, as_embed: bool = settings.USE_EMBEDS): tourney_running = tourney.is_tourney_running() raw_data = await core.get_data_from_path(TOP_FLEETS_BASE_PATH + str(take)) data = core.xmltree_to_dict3(raw_data) if data: title = f'Top {take} fleets' prepared_data = __prepare_top_fleets(data) body_lines = __create_body_lines_top_fleets(prepared_data, tourney_running) if as_embed: colour = util.get_bot_member_colour(ctx.bot, ctx.guild) return __create_top_embeds(title, body_lines, colour), True else: result = [f'**{title}**'] result.extend(body_lines) return result, True else: return [ 'An unknown error occured while retrieving the top fleets. Please contact the bot\'s author!' ], False
async def _get_fleet_users_by_id(alliance_id: str) -> dict: path = await _get_search_fleet_users_base_path(alliance_id) fleet_users_data_raw = await core.get_data_from_path(path) fleet_users_infos = core.xmltree_to_dict3(fleet_users_data_raw) return fleet_users_infos
async def _get_fleet_infos_by_name(fleet_name: str) -> dict: path = await _get_search_fleets_base_path(fleet_name) fleet_data_raw = await core.get_data_from_path(path) fleet_infos = core.xmltree_to_dict3(fleet_data_raw) return fleet_infos
async def _get_fleet_info_by_id(fleet_id: str) -> dict: path = await _get_get_alliance_base_path(fleet_id) fleet_data_raw = await core.get_data_from_path(path) fleet_info = core.xmltree_to_dict3(fleet_data_raw) return fleet_info
async def get_division_stars(ctx: commands.Context, 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 = await core.get_data_from_path(STARS_BASE_PATH) fleet_infos = core.xmltree_to_dict3(data) else: fleet_infos = fleet_data divisions_designs_infos = await divisions_designs_retriever.get_data_dict3( ) divisions = {} if division: division_design_id = lookups.DIVISION_CHAR_TO_DESIGN_ID[ division.upper()] divisions[division_design_id] = [ fleet_info for fleet_info in fleet_infos.values() if fleet_info[DIVISION_DESIGN_KEY_NAME] == division_design_id ] pass else: for division_design_id in lookups.DIVISION_DESIGN_ID_TO_CHAR.keys(): if division_design_id != '0': divisions[division_design_id] = [ fleet_info for fleet_info in fleet_infos.values() if fleet_info[DIVISION_DESIGN_KEY_NAME] == division_design_id ] if divisions: divisions_texts = [] for division_design_id, fleet_infos in divisions.items(): divisions_texts.append( (division_design_id, _get_division_stars_as_text(fleet_infos))) result = [] footer = util.get_historic_data_note(retrieved_date) colour = util.get_bot_member_colour(ctx.bot, ctx.guild) for division_design_id, division_text in divisions_texts: if as_embed: division_title = _get_division_title(division_design_id, divisions_designs_infos, False) thumbnail_url = await sprites.get_download_sprite_link( divisions_designs_infos[division_design_id] ['BackgroundSpriteId']) embed_bodies = util.create_posts_from_lines( division_text, settings.MAXIMUM_CHARACTERS_EMBED_DESCRIPTION) for i, embed_body in enumerate(embed_bodies): thumbnail_url = thumbnail_url if i == 0 else None embed = util.create_embed(division_title, description=embed_body, footer=footer, thumbnail_url=thumbnail_url, colour=colour) result.append(embed) else: division_title = _get_division_title(division_design_id, divisions_designs_infos, True) result.append(division_title) result.extend(division_text) result.append(settings.EMPTY_LINE) if not as_embed: result = result[:-1] if footer: result.append(f'```{footer}```') return result, True else: return [ f'An unknown error occured while retrieving division info. Please contact the bot\'s author!' ], False
async def get_top_captains_dict(skip: int = 0, take: int = 100) -> dict: path = await _get_top_captains_path(skip, take) raw_data = await core.get_data_from_path(path) data = core.xmltree_to_dict3(raw_data) return data
async def _get_user_infos(user_name: str) -> dict: path = f'{SEARCH_USERS_BASE_PATH}{util.url_escape(user_name)}' user_data_raw = await core.get_data_from_path(path) user_infos = core.xmltree_to_dict3(user_data_raw) return user_infos
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_data_dict3(self) -> dict: data = self.get_raw_data() return dict(core.xmltree_to_dict3(data))
async def get_data_dict3(self) -> dict: data = await self.get_raw_data() return core.xmltree_to_dict3(data)