🐛 Fix role combat query previous data

This commit is contained in:
xtaodada 2024-08-01 16:51:56 +08:00
parent 4f3c22bf10
commit 259ff6b6a0
Signed by: xtaodada
GPG Key ID: 4CBB3F4FA8C85659
2 changed files with 9 additions and 4 deletions

View File

@ -174,16 +174,21 @@ class RoleCombatPlugin(Plugin):
self, client: GenshinClient, uid: int, previous: bool self, client: GenshinClient, uid: int, previous: bool
) -> Tuple["ImgTheaterData", Dict[int, int]]: ) -> Tuple["ImgTheaterData", Dict[int, int]]:
abyss_data = await client.get_genshin_imaginarium_theater( abyss_data = await client.get_genshin_imaginarium_theater(
uid, need_detail=not client.public, previous=previous, lang="zh-cn" uid, need_detail=not client.public, lang="zh-cn"
) # noqa ) # noqa
avatar_data = {} avatar_data = {}
if (not abyss_data.unlocked) or (not abyss_data.data): if (not abyss_data.unlocked) or (not abyss_data.data):
raise AbyssUnlocked raise AbyssUnlocked
abyss_data = abyss_data.data[0] index = 1 if previous else 0
if len(abyss_data.data) <= index:
raise AbyssUnlocked
abyss_data = abyss_data.data[index]
if not abyss_data.has_data:
raise AbyssUnlocked
if not client.public: # noqa if not client.public: # noqa
avatars = await client.get_genshin_characters(uid, lang="zh-cn") avatars = await client.get_genshin_characters(uid, lang="zh-cn")
avatar_data = {i.id: i.constellation for i in avatars} avatar_data = {i.id: i.constellation for i in avatars}
if abyss_data.has_data and abyss_data.has_detail_data and abyss_data.detail: if abyss_data.has_detail_data and abyss_data.detail:
await self.save_abyss_data(self.history_data_abyss, uid, abyss_data, avatar_data) await self.save_abyss_data(self.history_data_abyss, uid, abyss_data, avatar_data)
return abyss_data, avatar_data return abyss_data, avatar_data

View File

@ -113,7 +113,7 @@ class RefreshHistoryJob(Plugin):
async def save_img_theater_data(self, client: "GenshinClient", avatar_data: Dict[int, int]) -> bool: async def save_img_theater_data(self, client: "GenshinClient", avatar_data: Dict[int, int]) -> bool:
uid = client.player_id uid = client.player_id
abyss_data = await client.get_genshin_imaginarium_theater(uid, previous=False, lang="zh-cn") abyss_data = await client.get_genshin_imaginarium_theater(uid, lang="zh-cn")
if abyss_data.unlocked and abyss_data.data: if abyss_data.unlocked and abyss_data.data:
data = abyss_data.data[0] data = abyss_data.data[0]
if data.has_data and data.has_detail_data and data.detail: if data.has_data and data.has_detail_data and data.detail: