添加列表及一键导入
This commit is contained in:
@@ -11,7 +11,7 @@ from api.dp import RedisDep, AltersDep
|
||||
from core.basic.equipment import get_equipment
|
||||
from core.character.adventure import get_adv_list
|
||||
from core.basic.character import createCharacter
|
||||
from core.open.helper import get_user_info_by_id, get_user_list_by_id
|
||||
from core.open.helper import get_user_info_by_id, get_user_info_by_role_id, get_user_list_by_id, getRoleJobCode
|
||||
from core.open.skillTree import get_skill_tree_info
|
||||
from api.core.exception import ResponseException
|
||||
|
||||
@@ -34,9 +34,12 @@ def replace_placeholders(template):
|
||||
|
||||
|
||||
@router.get('/adventure')
|
||||
async def get_adventure_info(request: Request, redis: RedisDep):
|
||||
async def get_adventure_info(request: Request, redis: RedisDep, name: str = None):
|
||||
adventure_info = get_redis_info(redis, 'dcalc:adventure', get_adv_list)
|
||||
|
||||
if name:
|
||||
total = [item for job in adventure_info for item in job.get('children', [])]
|
||||
code = getRoleJobCode(name)
|
||||
adventure_info = next((x for x in total if (x['title'] == name or x['name'] == code) and x['open']), None)
|
||||
return response(data=adventure_info)
|
||||
|
||||
|
||||
@@ -128,6 +131,18 @@ async def get_dnfhelper_list(uid: str, redis: RedisDep):
|
||||
# return response(code=500, message='Failed to fetch DNFHelper list', data=None)
|
||||
|
||||
|
||||
@router.get('/dnfhelper/{uid}/{id}/')
|
||||
async def get_dnfhelper_detail(uid: str, id: str, state: AltersDep, redis: RedisDep):
|
||||
cache_key = f'dnfhelper:{uid}:{id}'
|
||||
|
||||
async def get_detail():
|
||||
return await get_user_info_by_role_id(uid, id, state)
|
||||
|
||||
result = await get_redis_info_async(redis, cache_key, get_detail, expire=12 * 60 * 60)
|
||||
return response(data=result)
|
||||
# return response(code=500, message='Failed to fetch DNFHelper detail', data=None)
|
||||
|
||||
|
||||
@router.get('/dnfhelper/{uid}/')
|
||||
async def get_info_by_dnfhelper(uid: str, state: AltersDep, redis: RedisDep):
|
||||
try:
|
||||
|
||||
@@ -86,6 +86,19 @@ async def get_user_list_by_id(user_id: str):
|
||||
return helper_list
|
||||
|
||||
|
||||
def getRoleJobCode(jobName: str):
|
||||
return job_mapping.get(jobName, None)
|
||||
|
||||
|
||||
async def get_user_info_by_role_id(user_id: str, role_id: str, alter: AltersDep):
|
||||
# 通过OCR助手获取用户信息
|
||||
helper_info = await get_main_user_info_by_id(user_id, None, role_id)
|
||||
if helper_info is None:
|
||||
raise ResponseException('当前助手ID不存在或已隐藏,请确认后重试')
|
||||
else:
|
||||
return trans_to_dcalc_set(helper_info, alter)
|
||||
|
||||
|
||||
async def get_user_info_by_id(user_id: str, alter: AltersDep):
|
||||
if alter is None:
|
||||
raise ResponseException('登录过期或无效Token,请刷新后重试')
|
||||
|
||||
+1
-1
Submodule backend/openapi updated: be3ff246ed...0c65d37e63
Reference in New Issue
Block a user