نموذج python pydantic بسيط (اكتب تلميحًا ودعم الإكمال التلقائي) لـ Honkai: Star Rail التي تم تحليل البيانات من Mihomo API.
عنوان URL لواجهة برمجة التطبيقات: https://api.mihomo.me/sr_info_parsed/{UID}?lang={LANG}
pip install -U git+https://github.com/KT-Yeh/mihomo.git
هناك نوعان من تنسيقات البيانات التي تم تحليلها:
الإصدار 1:
عنوان 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
.
الإصدار 2:
عنوان 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 للأصول.
استيراد asynciofrom mihomo استيراد اللغة، MihomoAPIfrom mihomo.models import StarrailInfoParsedfrom mihomo.models.v1 import StarrailInfoParsedV1client = MihomoAPI(language=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"عنوان url لصورة الملف الشخصي: {client.get_icon_url(data.player.icon)}") للشخصية في data.characters: 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(): البيانات: StarrailInfoParsed = انتظار Client.fetch_user(800333171, استبدال_icon_name_with_url=True) print(f"Name: {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"الاسم: {character.name}") print(f"الندرة: {character.rarity}") print(f" عنوان URL العمودي: {character.portrait}")asyncio.run(v1())asyncio.run(v2())
from mihomo import tools
البيانات = انتظار بيانات Client.fetch_user(800333171) = Tools.remove_duplicate_character(data)
old_data = انتظار Client.fetch_user(800333171) # قم بتغيير الشخصيات في اللعبة وانتظر تحديث واجهة برمجة التطبيقات # ... new_data = انتظار Client.fetch_user(800333171) data = Tools.merge_character_data(new_data, old_data)
خذ المخلل و json كمثال
importpickleimport zlibfrom mihomo import MihomoAPI, Language, StarrailInfoParsedclient = MihomoAPI(language=Language.EN)data = انتظار Client.fetch_user(800333171)# Savepickle_data = zlib.compress(pickle.dumps(data))print(len(pickle_data))json_data = data.json(by_alias=True,sure_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))طباعة (النوع(data_from_json))