From 67457a9c86ce6a8ead828b57bb942fd731823da6 Mon Sep 17 00:00:00 2001 From: a376148946 <376148946@qq.com> Date: Sun, 24 Sep 2023 14:56:12 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E6=9B=BF=E6=8D=A2=E5=88=AB?= =?UTF-8?q?=E7=A7=B0=E6=97=A0=E6=B3=95=E8=AF=86=E5=88=AB=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- StarRailUID/starrailuid_charinfo/__init__.py | 3 ++- StarRailUID/starrailuid_charinfo/get_char_img.py | 12 +++++++++++- StarRailUID/utils/map/name_covert.py | 5 +++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/StarRailUID/starrailuid_charinfo/__init__.py b/StarRailUID/starrailuid_charinfo/__init__.py index 1fa44c1..3a3d970 100644 --- a/StarRailUID/starrailuid_charinfo/__init__.py +++ b/StarRailUID/starrailuid_charinfo/__init__.py @@ -103,7 +103,8 @@ async def send_char_info(bot: Bot, ev: Event): async def _get_char_info(bot: Bot, ev: Event, text: str): - msg = ''.join(re.findall('^[a-zA-Z0-9_\u4e00-\u9fa5]+$', text)) + # msg = ''.join(re.findall('^[a-zA-Z0-9_\u4e00-\u9fa5]+$', text)) + msg = text if not msg: return None # 获取角色名 diff --git a/StarRailUID/starrailuid_charinfo/get_char_img.py b/StarRailUID/starrailuid_charinfo/get_char_img.py index e72866f..4afebb2 100644 --- a/StarRailUID/starrailuid_charinfo/get_char_img.py +++ b/StarRailUID/starrailuid_charinfo/get_char_img.py @@ -14,6 +14,7 @@ from ..utils.map.name_covert import ( name_to_avatar_id, name_to_weapon_id, alias_to_char_name, + alias_to_weapon_name, ) from ..utils.map.SR_MAP_PATH import ( Property2Name, @@ -251,7 +252,13 @@ async def make_new_charinfo( char_data = {} char_data['uid'] = uid char_data['nickName'] = 'test' - char_data['avatarId'] = int(await name_to_avatar_id(fake_name)) + char_id = await name_to_avatar_id(fake_name) + if char_id == '': + fake_name = await alias_to_char_name(fake_name) + if fake_name is False: + return '请输入正确的角色名' + char_id = await name_to_avatar_id(fake_name) + char_data['avatarId'] = int(char_id) char_data['avatarName'] = fake_name char_data['avatarElement'] = avatarId2DamageType[ str(char_data['avatarId']) @@ -440,6 +447,9 @@ async def get_char( if isinstance(weapon, str): # 处理武器 equipmentid = await name_to_weapon_id(weapon) + if equipmentid == '': + weapon = await alias_to_weapon_name(weapon) + equipmentid = await name_to_weapon_id(weapon) equipment_info = {} equipment_info['equipmentID'] = int(equipmentid) equipment_info['equipmentName'] = EquipmentID2Name[str(equipmentid)] diff --git a/StarRailUID/utils/map/name_covert.py b/StarRailUID/utils/map/name_covert.py index 9f9bed3..5b9bf19 100644 --- a/StarRailUID/utils/map/name_covert.py +++ b/StarRailUID/utils/map/name_covert.py @@ -30,6 +30,11 @@ async def alias_to_char_name(char_name: str) -> str: return alias_data['characters'][i][0] return char_name +async def alias_to_weapon_name(weapon_name: str) -> str: + for i in alias_data['light_cones']: + if weapon_name in alias_data['light_cones'][i]: + return alias_data['light_cones'][i][0] + return weapon_name async def weapon_id_to_name(weapon_id: str) -> str: return EquipmentID2Name[weapon_id]