添加列表及一键导入

This commit is contained in:
2026-05-28 18:02:34 +08:00
parent 1fc3326f2e
commit 3a590e1c60
10 changed files with 173 additions and 20 deletions
+18 -3
View File
@@ -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:
+13
View File
@@ -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,请刷新后重试')