dev
This commit is contained in:
@@ -121,7 +121,8 @@ async def get_info_by_dnfhelper(uid: str, state: AltersDep, redis: RedisDep):
|
|||||||
result = await get_user_info_by_id(uid, state)
|
result = await get_user_info_by_id(uid, state)
|
||||||
return response(data=result)
|
return response(data=result)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return response(code=500, message=str(e), data=None)
|
if isinstance(e, ResponseException):
|
||||||
|
return response(code=500, message=str(e), data=None)
|
||||||
return response(code=500, message='Failed to fetch DNFHelper info', data=None)
|
return response(code=500, message='Failed to fetch DNFHelper info', data=None)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+32
-14
@@ -83,7 +83,6 @@ async def get_user_info_by_id(user_id: str, alter: AltersDep):
|
|||||||
name = next((k for k, v in job_mapping.items() if v == alter.origin), '')
|
name = next((k for k, v in job_mapping.items() if v == alter.origin), '')
|
||||||
# 通过OCR助手获取用户信息
|
# 通过OCR助手获取用户信息
|
||||||
helper_info = await get_main_user_info_by_id(user_id, name)
|
helper_info = await get_main_user_info_by_id(user_id, name)
|
||||||
print(helper_info)
|
|
||||||
if helper_info is None:
|
if helper_info is None:
|
||||||
raise ResponseException('当前助手ID不存在或已隐藏,请确认后重试')
|
raise ResponseException('当前助手ID不存在或已隐藏,请确认后重试')
|
||||||
else:
|
else:
|
||||||
@@ -97,13 +96,10 @@ def trans_to_dcalc_set(detail, alter: AltersDep):
|
|||||||
raise ResponseException('未能匹配到当前职业对应的角色信息,请确认后重试')
|
raise ResponseException('未能匹配到当前职业对应的角色信息,请确认后重试')
|
||||||
basic = get_equipment('0')
|
basic = get_equipment('0')
|
||||||
basicAvatars = basic.funs.get_dress_list([])
|
basicAvatars = basic.funs.get_dress_list([])
|
||||||
equs = detail.get('equs', [])
|
|
||||||
avatars = detail.get('avatars', [])
|
|
||||||
emblems = detail.get('emblems', [])
|
|
||||||
equips = {}
|
equips = {}
|
||||||
avatar = {}
|
avatar = {}
|
||||||
emblem = {}
|
emblems = {}
|
||||||
for equ in equs:
|
for equ in detail.get('equs', []):
|
||||||
info = {
|
info = {
|
||||||
'id': '0',
|
'id': '0',
|
||||||
# 强化
|
# 强化
|
||||||
@@ -133,12 +129,12 @@ def trans_to_dcalc_set(detail, alter: AltersDep):
|
|||||||
# if dcalcEquFusion:
|
# if dcalcEquFusion:
|
||||||
# info['fusion'] = dcalcEquFusion.id
|
# info['fusion'] = dcalcEquFusion.id
|
||||||
info['enchant'] = getEnchatIdByName(equ.get('enchant', ''), equ.get('posName', ''), basic.enchants)
|
info['enchant'] = getEnchatIdByName(equ.get('enchant', ''), equ.get('posName', ''), basic.enchants)
|
||||||
emblems = [getEmblemIdByName(i.get('detail', ''), i.get('categorize', ''), i.get('rarity', ''), basic.emblems) for i in equ.get('emblems', [])]
|
# emblems = [getEmblemIdByName(i.get('detail', ''), i.get('categorize', ''), i.get('rarity', ''), basic.emblems) for i in equ.get('emblems', [])]
|
||||||
# info['emblem_0'] = emblems[0] if len(emblems) > 0 else 0
|
# info['emblem_0'] = emblems[0] if len(emblems) > 0 else 0
|
||||||
# info['emblem_1'] = emblems[1] if len(emblems) > 1 else 0
|
# info['emblem_1'] = emblems[1] if len(emblems) > 1 else 0
|
||||||
equips[equ['posName']] = info
|
equips[equ['posName']] = info
|
||||||
|
|
||||||
for item in avatars:
|
for item in detail.get('avatars', []):
|
||||||
info = {
|
info = {
|
||||||
'id': '',
|
'id': '',
|
||||||
'option': '',
|
'option': '',
|
||||||
@@ -176,15 +172,28 @@ def trans_to_dcalc_set(detail, alter: AltersDep):
|
|||||||
# 先默认这个了 不管了
|
# 先默认这个了 不管了
|
||||||
item['enchant'] = 'Lv1~95+1|攻击强化(12%)|增益量(7%)'
|
item['enchant'] = 'Lv1~95+1|攻击强化(12%)|增益量(7%)'
|
||||||
info['enchant'] = getEnchatIdByName(item.get('enchant', ''), item.get('posName', ''), basic.enchants)
|
info['enchant'] = getEnchatIdByName(item.get('enchant', ''), item.get('posName', ''), basic.enchants)
|
||||||
emblems = [getEmblemIdByName(i.get('detail', ''), i.get('categorize', ''), i.get('rarity', ''), basic.emblems) for i in item.get('emblems', [])]
|
# emblems = [getEmblemIdByName(i.get('detail', ''), i.get('categorize', ''), i.get('rarity', ''), basic.emblems) for i in item.get('emblems', [])]
|
||||||
info['emblem_0'] = emblems[0] if len(emblems) > 0 else 0
|
# info['emblem_0'] = emblems[0] if len(emblems) > 0 else 0
|
||||||
info['emblem_1'] = emblems[1] if len(emblems) > 1 else 0
|
# info['emblem_1'] = emblems[1] if len(emblems) > 1 else 0
|
||||||
avatar[item['posName']] = info
|
avatar[item['posName']] = info
|
||||||
|
|
||||||
|
rarities = ['稀有', '神器', '传说', '史诗']
|
||||||
|
for item in detail.get('emblems', []):
|
||||||
|
pos = item.get('pos', '')
|
||||||
|
if not pos:
|
||||||
|
continue
|
||||||
|
rarity = item.get('rarity', '')
|
||||||
|
lv = item.get('lv', 1)
|
||||||
|
if rarity in rarities:
|
||||||
|
lv += rarities.index(rarity) * 5 - 1
|
||||||
|
emblems[pos] = {'lv': lv, 'items': [getEmblemIdByAttr(i.get('attr', ''), i.get('rarity', ''), i.get('type', ''), basic.emblems) for i in item.get('items', [])]}
|
||||||
return {
|
return {
|
||||||
'job': job,
|
'job': job,
|
||||||
'equips': equips,
|
'equips': equips,
|
||||||
'avatars': avatar,
|
'avatars': avatar,
|
||||||
|
'emblems': emblems,
|
||||||
'avatarLink': detail.get('avatarLink', ''),
|
'avatarLink': detail.get('avatarLink', ''),
|
||||||
|
'fogOathLv': detail.get('fogOathLv', 0),
|
||||||
'dressInfo': [
|
'dressInfo': [
|
||||||
{
|
{
|
||||||
'dress': i.get('name', ''),
|
'dress': i.get('name', ''),
|
||||||
@@ -194,9 +203,6 @@ def trans_to_dcalc_set(detail, alter: AltersDep):
|
|||||||
for i in detail.get('avatars', [])
|
for i in detail.get('avatars', [])
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
# 处理装备
|
|
||||||
# 处理时装
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def getEnchatIdByName(name: str, position: str, items: list):
|
def getEnchatIdByName(name: str, position: str, items: list):
|
||||||
@@ -220,3 +226,15 @@ def getEmblemIdByName(detail: str, categorize: str, rarity: str, items: list):
|
|||||||
return 0
|
return 0
|
||||||
except Exception as _:
|
except Exception as _:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def getEmblemIdByAttr(attr: str, rarity: str, type: str, items: list):
|
||||||
|
try:
|
||||||
|
if type == '白金':
|
||||||
|
return attr
|
||||||
|
for item in items:
|
||||||
|
if item.get('attr', '') == attr and item.get('type', '') == type and item.get('rarity', '') == rarity:
|
||||||
|
return item.get('id', 0)
|
||||||
|
return 0
|
||||||
|
except Exception as _:
|
||||||
|
return 0
|
||||||
|
|||||||
@@ -110,6 +110,7 @@ class EmblemData(Base):
|
|||||||
type = Column(Text)
|
type = Column(Text)
|
||||||
value = Column(Text)
|
value = Column(Text)
|
||||||
fame = Column(Integer)
|
fame = Column(Integer)
|
||||||
|
attr = Column(Text)
|
||||||
|
|
||||||
|
|
||||||
class JadeData(Base):
|
class JadeData(Base):
|
||||||
|
|||||||
+1
-1
Submodule backend/openapi updated: 60d8022f36...4a72406baa
@@ -17,6 +17,8 @@ export default defineComponent({
|
|||||||
configStore.config.equips = res.equips
|
configStore.config.equips = res.equips
|
||||||
configStore.config.avatar = res.avatars
|
configStore.config.avatar = res.avatars
|
||||||
configStore.config.avatarLink = res.avatarLink
|
configStore.config.avatarLink = res.avatarLink
|
||||||
|
configStore.config.emblems = res.emblems
|
||||||
|
configStore.config.sundry.fog = res.fogOathLv
|
||||||
const { alert } = useDialog()
|
const { alert } = useDialog()
|
||||||
visible.value = false
|
visible.value = false
|
||||||
await alert({
|
await alert({
|
||||||
@@ -51,15 +53,13 @@ export default defineComponent({
|
|||||||
<calc-input class="!w-60" v-model={uid.value} />
|
<calc-input class="!w-60" v-model={uid.value} />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<p class="text-#e9c556/80">
|
<p class="text-#e9c556/80">* 点击导入后会从助手通过文字识别获取打造</p>
|
||||||
* 点击导入后会从助手通过文字识别获取打造
|
<p class="text-#e9c556/80">* 部分打造无法获取,此处仅做快捷导入</p>
|
||||||
</p>
|
|
||||||
<p class="text-#e9c556/80">
|
|
||||||
* 部分打造无法获取,此处仅做快捷导入
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-around items-center">
|
<div class="flex justify-around items-center">
|
||||||
<calc-button onClick={execute} disabled={isLoading.value}>导入</calc-button>
|
<calc-button onClick={execute} disabled={isLoading.value}>
|
||||||
|
导入
|
||||||
|
</calc-button>
|
||||||
<calc-button onClick={() => (visible.value = false)}>取消</calc-button>
|
<calc-button onClick={() => (visible.value = false)}>取消</calc-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user