new:MCP及openapi新增技能特殊属性查询
This commit is contained in:
@@ -5,6 +5,11 @@ from api.core.Response import response
|
||||
from api.core.Redis import get_redis_info
|
||||
from api.dp import RedisDep
|
||||
from api.utils.skill_detail import SKILL_DETAIL_NORMALIZE_VERSION, normalize_skill_detail, skill_detail_for_level
|
||||
from api.utils.skill_tree import (
|
||||
SKILL_TREE_WITH_DESC_SPECIAL_VERSION,
|
||||
filter_skill_tree_by_desc_special,
|
||||
load_skill_tree_with_desc_special,
|
||||
)
|
||||
import re
|
||||
from typing import Annotated
|
||||
|
||||
@@ -89,25 +94,23 @@ async def get_cn_skills_by_job(
|
||||
redis: RedisDep,
|
||||
jobId: Annotated[str, Path(..., description='职业')],
|
||||
jobGrowId: Annotated[str, Path(..., description='转职')],
|
||||
descSpecial: Annotated[str, Query(description='技能特殊功能')] = '',
|
||||
) -> SkillsListResponse:
|
||||
"""
|
||||
获取职业技能列表
|
||||
获取职业技能列表,职业ID和转职ID可通过jobsInfo获取
|
||||
|
||||
Args:
|
||||
jobId (str): 职业ID,必填参数
|
||||
jobGrowId (str): 转职ID,必填参数
|
||||
descSpecial (str, optional): 技能特殊功能,默认为'',可选参数,支持传入以下功能关键词以过滤技能列表:压制、无敌、追踪、聚集敌人、强控敌人
|
||||
"""
|
||||
key = f'openapi:{jobId}:{jobGrowId}:skills'
|
||||
key = f'openapi:{SKILL_TREE_WITH_DESC_SPECIAL_VERSION}:{jobId}:{jobGrowId}:skills'
|
||||
|
||||
def get_skills_by_job():
|
||||
# This function should retrieve the skills by job and jobGrow
|
||||
# For now, we return a placeholder list
|
||||
with open(f'./openapi/data/{jobId}/{jobGrowId}/cn/skill_tree.json', encoding='utf-8') as f:
|
||||
skills_data = json.load(f)
|
||||
return skills_data
|
||||
return load_skill_tree_with_desc_special(jobId, jobGrowId)
|
||||
|
||||
skills_list = get_redis_info(redis, key, get_skills_by_job)
|
||||
return response(data=skills_list)
|
||||
return response(data=filter_skill_tree_by_desc_special(skills_list, descSpecial))
|
||||
|
||||
|
||||
@router.get('/{jobId}/{jobGrowId}/{skillId}/', operation_id='skillDetail', response_model=SkillDetailResponse)
|
||||
|
||||
Reference in New Issue
Block a user