Honkai를 위한 간단한 Python pydantic 모델(유형 힌트 및 자동 완성 지원): Star Rail이 Mihomo API에서 구문 분석한 데이터입니다.
API URL: https://api.mihomo.me/sr_info_parsed/{UID}?lang={LANG}
pip install -U git+https://github.com/KT-Yeh/mihomo.git
구문 분석된 데이터 형식에는 두 가지가 있습니다.
V1:
URL: 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:
URL: 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로 구문 분석된 데이터를 가져올 수 있습니다.
import asynciofrom mihomo import Language, MihomoAPIfrom mihomo.models import StarrailInfoParsedfrom mihomo.models.v1 import StarrailInfoParsedV1client = MihomoAPI(언어=Language.EN)async def v1(): data: StarrailInfoParsedV1 = wait 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. 업적}") print(f"캐릭터 수: {data.player_details.characters}") print(f"프로필 사진 URL: data.characters의 문자에 대한 {client.get_icon_url(data.player.icon)}"): print("------------") print(f"이름: {character.name}") print(f"희귀도: {character.rarity}") print(f"레벨: {character.level}") print(f"아바타 URL: {client.get_icon_url(character.icon)}") print(f"미리보기 URL: {client.get_icon_url(character.preview)}") print(f"세로 url: {client.get_icon_url(character.portrait)}")async def v2(): data: StarrailInfoParsed = wait client.fetch_user(800333171, replacement_icon_name_with_url= True) print(f"이름: {data.player.name}") print(f"레벨: {data.player.level}") print(f"서명: {data.player.signature}") print(f"프로필 사진 URL: {data.player.avatar.icon}") data.characters의 문자: print("------------") print(f"이름: {문자.이름}") print(f"희귀도: {문자.rarity}") print(f"초상화 URL: {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)
피클과 json을 예로 들어보겠습니다.
import pickleimport zlibfrom mihomo import MihomoAPI, Language, StarrailInfoParsedclient = MihomoAPI(언어=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, verify_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(type(data_from_json))