🚑强制刷新超时使用安柏数据源

This commit is contained in:
‘KimigaiiWuyi’ 2023-04-13 11:08:54 +08:00
parent 7c99c995ce
commit 7ebf678ae6
2 changed files with 24 additions and 4 deletions

View File

@ -2,12 +2,13 @@ import json
import time
from typing import List, Union, Literal, Optional
from httpx import ReadTimeout
from httpx import ReadTimeout, ConnectTimeout
from ..utils.error_reply import UID_HINT
from ..gsuid_utils.api.enka.models import EnkaData
from ..utils.resource.RESOURCE_PATH import PLAYER_PATH
from ..gsuid_utils.api.enka.request import get_enka_info
from ..utils.ambr_to_minigg import convert_ambr_to_weapon
from ..gsuid_utils.api.minigg.request import get_weapon_info
from ..utils.map.GS_MAP_PATH import (
icon2Name,
@ -256,7 +257,10 @@ async def enka_to_dict(
weapon_prop_temp['statValue'] = k['statValue']
weapon_info['weaponStats'].append(weapon_prop_temp)
# 武器特效须请求API
effect_raw = await get_weapon_info(weapon_info['weaponName'])
try:
effect_raw = await get_weapon_info(weapon_info['weaponName'])
except ConnectTimeout:
effect_raw = await convert_ambr_to_weapon(weapon_info['itemId'])
if not isinstance(effect_raw, List) and not isinstance(
effect_raw, int
):

View File

@ -116,18 +116,34 @@ async def convert_ambr_to_weapon(
raw_data = await get_ambr_weapon_data(weapon_id)
if raw_data is None:
return None
effect = list(raw_data['affix'].values())[0]
if raw_data['affix'] is None:
effect = {
'name': '无特效',
'upgrade': {
'0': '无特效',
'1': '无特效',
'2': '无特效',
'3': '无特效',
'4': '无特效',
},
}
else:
effect = list(raw_data['affix'].values())[0]
effect_name = effect['name']
effect_up = effect['upgrade']
upgrade = raw_data['upgrade']
baseatk = upgrade['prop'][0]['initValue']
basesp = upgrade['prop'][-1]['initValue']
if 'propType' in upgrade['prop'][1]:
substat = PROP_MAP[upgrade['prop'][1]['propType']]
else:
substat = '无副词条'
result = {
'name': raw_data['name'],
'weapontype': raw_data['type'],
'rarity': str(raw_data['rank']),
'baseatk': baseatk,
'substat': PROP_MAP[upgrade['prop'][1]['propType']],
'substat': substat,
'effectname': effect_name,
'level': 90,
'ascension': 6,