米霍莫
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(clis: 101707017 月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=pue) 標籤(800333171, Replace_icon_name_with_url=pue) 的 print( .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(newdata)
以pickle和json為例
。 = 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.decompress(pickle_data))data_from_json = StarrailInfoParsed。 (類型(data_from_json))