diff --git a/GenshinUID/genshinuid_enka/__init__.py b/GenshinUID/genshinuid_enka/__init__.py index 237a796a..b7d4bf12 100644 --- a/GenshinUID/genshinuid_enka/__init__.py +++ b/GenshinUID/genshinuid_enka/__init__.py @@ -30,7 +30,7 @@ sv_get_enka = SV('面板查询', priority=10) sv_get_original_pic = SV('查看面板原图', priority=5) -@sv_akasha.on_fullmatch('排名统计') +@sv_akasha.on_command('排名统计') async def sned_rank_data(bot: Bot, ev: Event): # 获取uid uid = await get_uid(bot, ev) diff --git a/GenshinUID/genshinuid_enka/get_akasha_data.py b/GenshinUID/genshinuid_enka/get_akasha_data.py index 8df17a11..63a8f336 100644 --- a/GenshinUID/genshinuid_enka/get_akasha_data.py +++ b/GenshinUID/genshinuid_enka/get_akasha_data.py @@ -22,7 +22,7 @@ async def get_rank(uid: str) -> str: if len(rank_data) == 0: return '你还没有排名缓存, 请使用[强制刷新]生成/刷新数据!' - im_list = [] + im_list = [f'UID {uid}'] for char in rank_data: raw_data = rank_data[char] diff --git a/GenshinUID/utils/api/cv/api.py b/GenshinUID/utils/api/cv/api.py index c7e4fce6..0e3bed08 100644 --- a/GenshinUID/utils/api/cv/api.py +++ b/GenshinUID/utils/api/cv/api.py @@ -1,6 +1,7 @@ MAIN_API = 'https://akasha.cv/api/filters/accounts/' RANK_API = 'https://akasha.cv/api/getCalculationsForUser/{}' DATA_API = 'https://akasha.cv/api/user/{}' +REFRESH_API = 'https://akasha.cv/api/user/refresh/{}' LEADERBOARD_API = ( 'https://akasha.cv/api/v2/leaderboards/categories?characterId={}' ) diff --git a/GenshinUID/utils/api/cv/request.py b/GenshinUID/utils/api/cv/request.py index ebd23710..af6fa96a 100644 --- a/GenshinUID/utils/api/cv/request.py +++ b/GenshinUID/utils/api/cv/request.py @@ -4,7 +4,7 @@ from typing import Any, Dict, Union, Literal, Optional from gsuid_core.logger import logger from aiohttp import TCPConnector, ClientSession, ContentTypeError -from .api import DATA_API, MAIN_API, RANK_API +from .api import DATA_API, MAIN_API, RANK_API, REFRESH_API class _CvApi: @@ -15,6 +15,7 @@ class _CvApi: self.session = ClientSession( connector=TCPConnector(verify_ssl=self.ssl_verify) ) + self.sessionID = None async def get_session_id(self) -> str: async with self.session.get(MAIN_API) as resp: @@ -27,6 +28,7 @@ class _CvApi: sid = 'NVybrjSdSZISA0JRuKFoZIndoCfDWdA2' sid = unquote(str(sid)) sessionID = sid.split(".")[0].split(":")[-1] + self.sessionID = sessionID return sessionID async def get_base_data(self, uid: str) -> Union[Dict, int]: @@ -35,8 +37,17 @@ class _CvApi: DATA_API.format(uid), 'GET', self._HEADER, {'sessionID': sessionID} ) + async def get_refresh_data(self, uid: str) -> Union[Dict, int]: + return await self._cv_request( + REFRESH_API.format(uid), + 'GET', + self._HEADER, + {'sessionID': self.sessionID}, + ) + async def get_rank_data(self, uid: str) -> Union[Dict, int]: await self.get_base_data(uid) + await self.get_refresh_data(uid) return await self._cv_request( RANK_API.format(uid), 'GET', self._HEADER )