diff --git a/StarRailUID/starrailuid_wiki/__init__.py b/StarRailUID/starrailuid_wiki/__init__.py index 91d4bda..ba42cbf 100644 --- a/StarRailUID/starrailuid_wiki/__init__.py +++ b/StarRailUID/starrailuid_wiki/__init__.py @@ -1,23 +1,24 @@ import re +from gsuid_core.sv import SV from gsuid_core.bot import Bot from gsuid_core.models import Event -from gsuid_core.sv import SV from gsuid_core.utils.image.convert import convert_img from ..utils.name_covert import ( - alias_to_char_name, + alias_to_char_id, name_to_avatar_id, - name_to_relic_set_id, name_to_weapon_id, + alias_to_char_name, + name_to_relic_set_id, ) from ..utils.resource.RESOURCE_PATH import ( - GUIDE_CHARACTER_PATH, - GUIDE_LIGHT_CONE_PATH, - WIKI_LIGHT_CONE_PATH, - WIKI_MATERIAL_FOR_ROLE, - WIKI_RELIC_PATH, WIKI_ROLE_PATH, + WIKI_RELIC_PATH, + GUIDE_CHARACTER_PATH, + WIKI_LIGHT_CONE_PATH, + GUIDE_LIGHT_CONE_PATH, + WIKI_MATERIAL_FOR_ROLE, ) sv_sr_wiki = SV("星铁WIKI") @@ -47,12 +48,14 @@ async def send_role_wiki_pic(bot: Bot, ev: Event): async def send_role_guide_pic(bot: Bot, ev: Event): char_name = " ".join(re.findall("[\u4e00-\u9fa5]+", ev.text)) await bot.logger.info(f"开始获取{char_name}图鉴") - if "开拓者" in str(char_name): - char_name = "开拓者" - char_id = await name_to_avatar_id(char_name) - if char_id == "": - char_name = await alias_to_char_name(char_name) + char_id = await alias_to_char_id(char_name) + if char_id is None: + if "开拓者" in str(char_name): + char_name = "开拓者" char_id = await name_to_avatar_id(char_name) + if char_id == "": + char_name = await alias_to_char_name(char_name) + char_id = await name_to_avatar_id(char_name) img = GUIDE_CHARACTER_PATH / f"{char_id}.png" if img.exists(): img = await convert_img(img) diff --git a/StarRailUID/utils/name_covert.py b/StarRailUID/utils/name_covert.py index 2d6061a..6c4fda7 100644 --- a/StarRailUID/utils/name_covert.py +++ b/StarRailUID/utils/name_covert.py @@ -1,8 +1,10 @@ +from typing import Optional + from starrail_damage_cal.excel.model import CharAlias from starrail_damage_cal.map.SR_MAP_PATH import ( - EquipmentID2EnName, - EquipmentID2Name, SetId2Name, + EquipmentID2Name, + EquipmentID2EnName, avatarId2Name, avatarId2Rarity, ) @@ -32,6 +34,14 @@ async def avatar_id_to_char_star(char_id: str) -> str: return avatarId2Rarity[str(char_id)] +async def alias_to_char_id(char_name: str) -> Optional[str]: + for i in CharAlias["characters"]: + for j in CharAlias["characters"][i]: + if char_name in j: + return i + return None + + async def alias_to_char_name(char_name: str) -> str: for i in CharAlias["characters"]: if char_name in CharAlias["characters"][i]: