コード例 #1
0
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
コード例 #2
0
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
コード例 #3
0
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
コード例 #4
0
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
コード例 #5
0
ファイル: pss_user.py プロジェクト: CerealBus/Bender
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)
コード例 #6
0
ファイル: pss_dropship.py プロジェクト: CerealBus/Bender
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
コード例 #7
0
ファイル: cache.py プロジェクト: CerealBus/Bender
 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
コード例 #8
0
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
コード例 #9
0
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
コード例 #10
0
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
コード例 #11
0
ファイル: pss_user.py プロジェクト: CerealBus/Bender
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
コード例 #12
0
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
コード例 #13
0
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
コード例 #14
0
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
コード例 #15
0
ファイル: pss_ship.py プロジェクト: CerealBus/Bender
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