米霍莫
v1.18.10
Honkai 的简单 python pydantic 模型(类型提示和自动完成支持):Star Rail 从 Mihomo API 解析数据。
API 网址:https://api.mihomo.me/sr_info_parsed/{UID}?lang={LANG}
pip install -U git+https://github.com/KT-Yeh/mihomo.git
解析的数据格式有两种:
V1:
网址:https://api.mihomo.me/sr_info_parsed/800333171?lang=en&version=v1
获取:使用client.fetch_user_v1(800333171)
数据模型: mihomo.models.v1.StarrailInfoParsedV1
mihomo/models/v1
目录中定义的所有模型。
V2:
网址:https://api.mihomo.me/sr_info_parsed/800333171?lang=en
获取:使用client.fetch_user(800333171)
数据模型: mihomo.models.StarrailInfoParsed
mihomo/models
目录中定义的所有模型。
如果您不想每次都使用client.get_icon_url
来获取图片 url,可以使用client.fetch_user(800333171, replace_icon_name_with_url=True)
来获取带有资产 url 的解析数据。
导入 asynciofrom mihomo 导入语言,MihomoAPIfrom mihomo.models 导入 StarrailInfoParsedfrom mihomo.models.v1 导入 StarrailInfoParsedV1client = MihomoAPI(语言=Language.EN)async def v1(): 数据: StarrailInfoParsedV1 = 等待 client.fetch_user_v1(800333171) print(f"Name : {data.player.name}") print(f"等级: {data.player.level}") print(f"签名: {data.player.signature}") print(f"成就: {data.player_details .achievements}") print(f"字符数:{data.player_details.characters}") print(f"个人资料图片网址:{client.get_icon_url(data.player.icon)}") for data.characters 中的字符: print("------------") print(f"姓名:{character.name}") print(f"稀有度:{character.rarity}") print(f"等级:{character.name}") .level}") print(f"头像网址: {client.get_icon_url(character.icon)}") print(f"预览网址: {client.get_icon_url(character.preview)}") print(f"头像网址: {client.get_icon_url(character.portrait)}")async def v2(): data: StarrailInfoParsed = wait client.fetch_user(800333171, Replace_icon_name_with_url=True) print(f"姓名: {data.player.name}") print( f"等级:{data.player.level}") print(f"签名:{data.player.signature}") print(f"个人资料图片网址:{data.player.avatar.icon}") for 角色data.characters: print("------------") print(f"姓名:{character.name}") print(f"稀有度:{character.rarity}") print(f"肖像网址:{character.portrait}")asyncio.run(v1())asyncio.run(v2())
from mihomo import tools
数据=等待client.fetch_user(800333171)数据=tools.remove_duplicate_character(数据)
old_data = wait client.fetch_user(800333171) # 更改游戏中的角色并等待 API 刷新 # ... new_data = wait client.fetch_user(800333171) data = tools.merge_character_data(new_data, old_data)
以pickle和json为例
import pickleimport zlibfrom mihomo import MihomoAPI, Language, StarrailInfoParsedclient = MihomoAPI(language=Language.EN)data = wait client.fetch_user(800333171)# Savepickle_data = zlib.compress(pickle.dumps(data))print(len(pickle_data))json_data = data.json(by_alias=True, Ensure_ascii=False)print(len(json_data))# Loaddata_from_pickle = pickle.loads(zlib.decompress(pickle_data))data_from_json = StarrailInfoParsed.parse_raw(json_data)print(type(data_from_pickle))print (类型(data_from_json))