Model python pydantic sederhana (petunjuk ketik dan dukungan pelengkapan otomatis) untuk Honkai: Star Rail mengurai data dari Mihomo API.
Url API: https://api.mihomo.me/sr_info_parsed/{UID}?lang={LANG}
pip install -U git+https://github.com/KT-Yeh/mihomo.git
Ada dua format data yang diurai:
V1:
URL: https://api.mihomo.me/sr_info_parsed/800333171?lang=en&version=v1
Pengambilan: gunakan client.fetch_user_v1(800333171)
Model data: mihomo.models.v1.StarrailInfoParsedV1
Semua model didefinisikan dalam direktori mihomo/models/v1
.
V2:
URL: https://api.mihomo.me/sr_info_parsed/800333171?lang=en
Pengambilan: gunakan client.fetch_user(800333171)
Model data: mihomo.models.StarrailInfoParsed
Semua model ditentukan dalam direktori mihomo/models
.
Jika Anda tidak ingin menggunakan client.get_icon_url
untuk mendapatkan url gambar setiap saat, Anda dapat menggunakan client.fetch_user(800333171, replace_icon_name_with_url=True)
untuk mendapatkan data yang diurai dengan url aset.
import asynciofrom mihomo import Bahasa, MihomoAPIfrom mihomo.models import StarrailInfoParsedfrom mihomo.models.v1 import StarrailInfoParsedV1client = MihomoAPI(bahasa=Language.EN)async def v1(): data: StarrailInfoParsedV1 = menunggu client.fetch_user_v1(800333171) print(f"Name : {data.player.name}") print(f"Level: {data.player.level}") print(f"Tanda tangan: {data.player.signature}") print(f"Prestasi: {data.player_details .achievements}") print(f"Jumlah karakter: {data.player_details.characters}") print(f"URL gambar profil: {client.get_icon_url(data.player.icon)}") untuk karakter dalam data.characters: print("-----------") print(f"Nama: {karakter.nama}") print(f"Kelangkaan: {karakter.kelangkaan}") print(f"Level: {karakter .level}") print(f"URL Avatar: {client.get_icon_url(character.icon)}") print(f"URL pratinjau: {client.get_icon_url(character.preview)}") print(f"URL potret: {client.get_icon_url(character.portrait)}")async def v2(): data: StarrailInfoParsed = menunggu client.fetch_user(800333171, replace_icon_name_with_url=True) print(f"Nama: {data.player.name}") print( f"Level: {data.player.level}") print(f"Tanda tangan: {data.player.signature}") print(f"URL gambar profil: {data.player.avatar.icon}") untuk karakter dalam data.karakter: print("-----------") print(f"Nama: {character.name}") print(f"Kelangkaan: {character.rarity}") print(f" Url potret: {character.portrait}")asyncio.run(v1())asyncio.run(v2())
from mihomo import tools
data = menunggu klien.fetch_user(800333171) data = alat.remove_duplikat_karakter(data)
old_data = menunggu klien.fetch_user(800333171) # Ubah karakter dalam game dan tunggu hingga API disegarkan # ... new_data = menunggu klien.fetch_user(800333171) data = tools.merge_character_data(new_data, old_data)
Ambil acar dan json sebagai contoh
impor acarimport zlibdari mihomo impor MihomoAPI, Bahasa, StarrailInfoParsedclient = MihomoAPI(bahasa=Bahasa.EN)data = menunggu klien.fetch_user(800333171)# Savepickle_data = zlib.compress(pickle.dumps(data))print(len(pickle_data))json_data = data.json(by_alias=Benar, pastikan_ascii=False)print(len(json_data))# Loaddata_from_pickle = acar.loads(zlib.decompress(pickle_data))data_from_json = StarrailInfoParsed.parse_raw(json_data)print(type(data_from_pickle))print (ketik(data_from_json))