new:MCP及openapi新增技能特殊属性查询

This commit is contained in:
2026-06-12 13:22:09 +08:00
parent d17d340c20
commit 729e08046d
7 changed files with 91 additions and 15 deletions
+11 -8
View File
@@ -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)