mys_api新增成就接口

This commit is contained in:
KimigaiiWuyi 2024-10-20 17:20:13 +08:00
parent e9193137cd
commit 3c55ab4ba3
5 changed files with 39 additions and 2 deletions

View File

@ -1,4 +1,4 @@
# ⚙️[GenshinUID](https://github.com/KimigaiiWuyi/GenshinUID) Core 0.5.5 # ⚙️[GenshinUID](https://github.com/KimigaiiWuyi/GenshinUID) Core 0.6.1
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?&labelColor=ef8336)](https://pycqa.github.io/isort/) [![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?&labelColor=ef8336)](https://pycqa.github.io/isort/)

View File

@ -118,6 +118,7 @@ CALCULATE_INFO_URL_OS = (
# 新版素材计算器 # 新版素材计算器
COMPUTE_URL = f'{GS_BASE}/event/e20200928calculate/v3/batch_compute' COMPUTE_URL = f'{GS_BASE}/event/e20200928calculate/v3/batch_compute'
POETRY_ABYSS_URL = f'{RECORD_BASE}/game_record/app/genshin/api/role_combat' POETRY_ABYSS_URL = f'{RECORD_BASE}/game_record/app/genshin/api/role_combat'
ACHI_URL = f'{RECORD_BASE}/game_record/app/genshin/api/achievement'
# 获取米游社内的角色信息 mysid -> uid # 获取米游社内的角色信息 mysid -> uid
MIHOYO_BBS_PLAYER_INFO_URL = ( MIHOYO_BBS_PLAYER_INFO_URL = (

View File

@ -1214,3 +1214,12 @@ class PoetryAbyssDatas(TypedDict):
data: List[PoetryAbyssData] data: List[PoetryAbyssData]
is_unlock: bool is_unlock: bool
links: PoetryAbyssLinks links: PoetryAbyssLinks
class AchievementData(TypedDict):
name: str
id: str
percentage: int
finish_num: int
show_percent: bool
icon: str

View File

@ -22,6 +22,7 @@ from .models import (
CalculateInfo, CalculateInfo,
DailyNoteData, DailyNoteData,
CharDetailData, CharDetailData,
AchievementData,
PoetryAbyssDatas, PoetryAbyssDatas,
) )
@ -77,6 +78,32 @@ class MysApi(SignMysApi):
return cast(BsIndex, data['data']) return cast(BsIndex, data['data'])
return data return data
async def get_achievement_info(
self, uid: str
) -> Union[List[AchievementData], int]:
server_id = self.RECOGNIZE_SERVER.get(uid[0])
HEADER = deepcopy(self._HEADER)
ck = await self.get_ck(uid, 'OWNER')
if ck is None:
return -51
HEADER['Cookie'] = ck
data = await self._mys_request(
self.MAPI['ACHI_URL'],
'POST',
HEADER,
data={'role_id': uid, 'server': server_id},
)
if isinstance(data, Dict):
if 'retcode' in data:
if data['retcode'] == 0:
data = cast(List[AchievementData], data['data']['list'])
else:
data = cast(int, data['retcode'])
else:
data = -999
return data
async def get_spiral_abyss_info( async def get_spiral_abyss_info(
self, uid: str, schedule_type='1', ck: Optional[str] = None self, uid: str, schedule_type='1', ck: Optional[str] = None
) -> Union[AbyssData, int]: ) -> Union[AbyssData, int]:

View File

@ -1 +1 @@
__version__ = "0.6.0" __version__ = "0.6.1"