From 9c65d014977a058d929ab3b5dad5def468e5fb7a Mon Sep 17 00:00:00 2001 From: qwerdvd <2450899274@qq.com> Date: Fri, 12 May 2023 12:26:33 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20=E6=9B=B4=E6=96=B0map?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- StarRailUID/starrailuid_charinfo/to_card.py | 6 +- StarRailUID/starrailuid_charinfo/to_data.py | 6 +- StarRailUID/utils/map/SR_MAP_PATH.py | 9 +- .../data/avatarId2Rarity_mapping_1.0.5.json | 1 + StarRailUID/utils/map/data/char_alias.json | 402 ++++++++++++++++++ StarRailUID/utils/map/name_covert.py | 14 +- 6 files changed, 430 insertions(+), 8 deletions(-) create mode 100644 StarRailUID/utils/map/data/avatarId2Rarity_mapping_1.0.5.json create mode 100644 StarRailUID/utils/map/data/char_alias.json diff --git a/StarRailUID/starrailuid_charinfo/to_card.py b/StarRailUID/starrailuid_charinfo/to_card.py index a760147..07ada81 100644 --- a/StarRailUID/starrailuid_charinfo/to_card.py +++ b/StarRailUID/starrailuid_charinfo/to_card.py @@ -7,7 +7,7 @@ from typing import Union, Optional from gsuid_core.utils.api.enka.models import EnkaData # -from .to_data import enka_to_dict +from .to_data import api_to_dict # from ..utils.image.convert import convert_img # from ..utils.resource.RESOURCE_PATH import CHAR_ICON_PATH @@ -30,10 +30,10 @@ from .to_data import enka_to_dict # -async def enka_to_card( +async def api_to_card( uid: str, enka_data: Optional[EnkaData] = None ) -> Union[str, bytes]: - char_data_list = await enka_to_dict(uid, enka_data) + char_data_list = await api_to_dict(uid, enka_data) return char_data_list diff --git a/StarRailUID/starrailuid_charinfo/to_data.py b/StarRailUID/starrailuid_charinfo/to_data.py index 2d5accb..4f93575 100644 --- a/StarRailUID/starrailuid_charinfo/to_data.py +++ b/StarRailUID/starrailuid_charinfo/to_data.py @@ -39,7 +39,7 @@ PROP_ATTR_MAP = { } -async def enka_to_dict( +async def api_to_dict( sr_uid: str, sr_data: Optional[EnkaData] = None ) -> Union[List[dict], str]: """ @@ -317,10 +317,10 @@ async def get_data(char: dict, sr_data: dict, sr_uid: str): return char_data, avatarName -async def enka_to_data( +async def api_to_data( uid: str, enka_data: Optional[EnkaData] = None ) -> Union[dict, str]: - raw_data = await enka_to_dict(uid, enka_data) + raw_data = await api_to_dict(uid, enka_data) if isinstance(raw_data, str): return raw_data char_name_list = [] diff --git a/StarRailUID/utils/map/SR_MAP_PATH.py b/StarRailUID/utils/map/SR_MAP_PATH.py index 13bc7b7..5723671 100644 --- a/StarRailUID/utils/map/SR_MAP_PATH.py +++ b/StarRailUID/utils/map/SR_MAP_PATH.py @@ -1,5 +1,5 @@ from pathlib import Path -from typing import Dict, TypedDict +from typing import Dict, List, TypedDict from msgspec import json as msgjson @@ -21,6 +21,7 @@ SetId2Name_fileName = f'SetId2Name_mapping_{version}.json' rankId2Name_fileName = f'rankId2Name_mapping_{version}.json' characterSkillTree_fileName = f'characterSkillTree_mapping_{version}.json' avatarId2DamageType_fileName = f'avatarId2DamageType_mapping_{version}.json' +avatarId2Rarity_fileName = f'avatarId2Rarity_mapping_{version}.json' class TS(TypedDict): @@ -63,3 +64,9 @@ with open(MAP / characterSkillTree_fileName, 'r', encoding='UTF-8') as f: with open(MAP / avatarId2DamageType_fileName, 'r', encoding='UTF-8') as f: avatarId2DamageType = msgjson.decode(f.read(), type=Dict[str, str]) + +with open(MAP / 'char_alias.json', 'r', encoding='UTF-8') as f: + alias_data = msgjson.decode(f.read(), type=Dict[str, Dict[str, List]]) + +with open(MAP / avatarId2Rarity_fileName, 'r', encoding='UTF-8') as f: + avatarId2Rarity = msgjson.decode(f.read(), type=Dict[str, str]) diff --git a/StarRailUID/utils/map/data/avatarId2Rarity_mapping_1.0.5.json b/StarRailUID/utils/map/data/avatarId2Rarity_mapping_1.0.5.json new file mode 100644 index 0000000..f18cb5c --- /dev/null +++ b/StarRailUID/utils/map/data/avatarId2Rarity_mapping_1.0.5.json @@ -0,0 +1 @@ +{"1001": "4", "1002": "4", "1003": "5", "1004": "5", "1005": "5", "1006": "5", "1008": "4", "1009": "4", "1013": "4", "1101": "5", "1102": "5", "1103": "4", "1104": "5", "1105": "4", "1106": "4", "1107": "5", "1108": "4", "1109": "4", "1201": "4", "1202": "4", "1203": "5", "1204": "5", "1206": "4", "1209": "5", "1211": "5", "8001": "5", "8002": "5", "8003": "5", "8004": "5"} diff --git a/StarRailUID/utils/map/data/char_alias.json b/StarRailUID/utils/map/data/char_alias.json new file mode 100644 index 0000000..ee8c3d5 --- /dev/null +++ b/StarRailUID/utils/map/data/char_alias.json @@ -0,0 +1,402 @@ +{ + "characters": { + "1008": [ + "阿兰" + ], + "1009": [ + "艾丝妲", + "富婆", + "代理站长", + "知名不具" + ], + "1211": [ + "白露", + "衔药龙女" + ], + "1101": [ + "布洛妮娅", + "布洛妮娅兰德", + "兰德鸭", + "大板鸭", + "三涡轮增鸭", + "渡鸭" + ], + "1107": [ + "克拉拉", + "猩红兔子", + "天才侦探少女", + "史瓦罗", + "史瓦罗发射器" + ], + "1002": [ + "丹恒", + "冷面小青龙", + "闷葫芦" + ], + "1104": [ + "杰帕德", + "杰帕德朗道", + "杰哥", + "小杰杰" + ], + "1013": [ + "黑塔", + "天才俱乐部#83", + "天才俱乐部第83席", + "天才俱乐部第八十三席", + "黑塔女士" + ], + "1003": [ + "姬子", + "姬子阿姐" + ], + "1109": [ + "虎克" + ], + "1204": [ + "景元", + "云骑将军", + "闭目将军" + ], + "1005": [ + "卡芙卡", + "妈", + "妈妈" + ], + "1203": [ + "罗刹", + "主教" + ], + "1001": [ + "三月七", + "三月", + "小三月", + "阿七", + "冷面小粉龙", + "纠缠之缘", + "小仓唯", + "xcw" + ], + "1105": [ + "娜塔莎", + "娜塔", + "娜塔莎姐姐", + "老巫婆" + ], + "1106": [ + "佩拉", + "佩拉格娅谢尔盖耶夫娜", + "佩拉格娅", + "谢尔盖耶夫娜" + ], + "1201": [ + "青雀", + "克莱茵" + ], + "1108": [ + "桑博", + "桑博科斯基", + "深蓝帅哥", + "布鲁海尔波桑" + ], + "1102": [ + "希儿", + "蝴蝶", + "希尔" + ], + "1103": [ + "希露瓦", + "希露瓦朗道", + "朗道家长女", + "贝洛伯格机械师" + ], + "1006": [ + "银狼", + "小板鸭", + "酷鸭", + "超级骇客" + ], + "1206": [ + "素裳", + "李素裳", + "李大枕头" + ], + "1202": [ + "停云", + "屑狐狸", + "骚狐狸" + ], + "8002": [ + "开拓者物理", + "爷", + "星爷", + "恩公", + "银河球棒侠", + "脸接大招", + "复读机", + "天才少女侦探的助手", + "机巧鸟捕手", + "物主", + "物理主", + "毁灭主" + ], + "8004": [ + "开拓者火", + "火主", + "存护主" + ], + "1004": [ + "瓦尔特", + "瓦尔特杨", + "杨叔", + "牧月忍冬", + "约阿希姆诺基安维塔宁" + ], + "1209": [ + "彦卿", + "马彦卿", + "老马" + ] + }, + "light_cones": { + "23001": [ + "于夜色中", + "希儿卡面" + ], + "23003": [ + "但战斗还未结束", + "布洛妮娅卡面" + ], + "23004": [ + "以世界之名", + "瓦尔特卡面" + ], + "23005": [ + "制胜的瞬间", + "杰帕德卡面" + ], + "23012": [ + "如泥酣眠", + "彦卿卡面" + ], + "23013": [ + "时节不居", + "白露卡面" + ], + "24000": [ + "记一位星神的陨落", + "星神陨落", + "星神的陨落" + ], + "24001": [ + "星海巡航" + ], + "24002": [ + "记忆的质料" + ], + "23000": [ + "银河铁道之夜", + "姬子卡面" + ], + "23010": [ + "拂晓之前", + "景元卡面" + ], + "23002": [ + "无可取代的东西", + "克拉拉卡面" + ], + "21000": [ + "一场术后对话", + "娜塔莎卡面" + ], + "21001": [ + "晚安与睡颜", + "佩拉卡面", + "晚安睡颜" + ], + "21002": [ + "余生的第一天", + "三月七卡面" + ], + "21003": [ + "唯有沉默", + "丹恒卡面" + ], + "21004": [ + "记忆中的模样", + "布洛妮娅卡面" + ], + "21005": [ + "鼹鼠党欢迎你", + "虎克卡面", + "鼹鼠党" + ], + "21006": [ + "我的诞生", + "黑塔卡面" + ], + "21007": [ + "同一种心情" + ], + "21008": [ + "猎物的视线", + "桑博卡面" + ], + "21009": [ + "朗道的选择" + ], + "21010": [ + "论剑", + "素裳卡面" + ], + "21011": [ + "与行星相会", + "艾丝妲卡面" + ], + "21012": [ + "秘密誓心", + "阿兰卡面" + ], + "21014": [ + "此时恰好" + ], + "21015": [ + "决心如汗珠般闪耀" + ], + "21016": [ + "宇宙市场趋势" + ], + "21017": [ + "点个关注吧", + "点个关注" + ], + "21021": [ + "等价交换", + "白露卡面" + ], + "21028": [ + "暖夜不会漫长" + ], + "21013": [ + "别让世界静下来", + "希露瓦卡面" + ], + "21019": [ + "在蓝天下" + ], + "21020": [ + "天才们的休憩" + ], + "21023": [ + "我们是地火" + ], + "21024": [ + "春水初生", + "彦卿卡面" + ], + "21022": [ + "延长记号", + "卡芙卡卡面" + ], + "21026": [ + "汪散步时间", + "散步时间" + ], + "21027": [ + "早餐的仪式感" + ], + "21029": [ + "后会有期" + ], + "21030": [ + "这就是我啦", + "三月七卡面" + ], + "21031": [ + "重返幽冥" + ], + "21032": [ + "镂月裁云之意", + "停云卡面", + "镂月裁云" + ], + "21033": [ + "无处可逃" + ], + "21034": [ + "今日亦是和平的一日", + "青雀卡面", + "和平的一日" + ], + "21018": [ + "舞舞舞" + ], + "21025": [ + "过往未来" + ], + "20000": [ + "锋镝" + ], + "20001": [ + "物穰" + ], + "20002": [ + "天倾" + ], + "20003": [ + "琥珀" + ], + "20004": [ + "幽邃" + ], + "20005": [ + "齐颂" + ], + "20006": [ + "智库" + ], + "20007": [ + "离弦" + ], + "20008": [ + "嘉果" + ], + "20009": [ + "乐圮" + ], + "20010": [ + "戍御" + ], + "20011": [ + "渊环" + ], + "20012": [ + "轮契" + ], + "20013": [ + "灵钥" + ], + "20014": [ + "相抗" + ], + "20015": [ + "蕃息" + ], + "20016": [ + "俱殁" + ], + "20017": [ + "开疆" + ], + "20018": [ + "匿影" + ], + "20019": [ + "调和" + ], + "20020": [ + "睿见" + ] + } +} \ No newline at end of file diff --git a/StarRailUID/utils/map/name_covert.py b/StarRailUID/utils/map/name_covert.py index 4f20e44..48e3b62 100644 --- a/StarRailUID/utils/map/name_covert.py +++ b/StarRailUID/utils/map/name_covert.py @@ -1,4 +1,9 @@ -from .SR_MAP_PATH import EquipmentID2Name, EquipmentID2EnName, avatarId2Name +from .SR_MAP_PATH import ( + EquipmentID2Name, + EquipmentID2EnName, + alias_data, + avatarId2Name, +) async def avatar_id_to_name(avatar_id: str) -> str: @@ -15,6 +20,13 @@ async def name_to_avatar_id(name: str) -> str: return avatar_id +async def alias_to_char_name(char_id: str, char_name: str) -> str: + for i in alias_data['characters'][char_id]: + if (char_name in i) or (char_name in alias_data[i]): + return i + return char_name + + async def weapon_id_to_name(weapon_id: str) -> str: weapon_name = EquipmentID2Name[weapon_id] return weapon_name