增加获取single类型的pagetype的api端点

This commit is contained in:
jingrow 2025-10-26 00:21:59 +08:00
parent 4817388ee7
commit 862309650e
2 changed files with 29 additions and 1 deletions

View File

@ -17,7 +17,7 @@ from jingrow.utils.auth import get_jingrow_api_headers
from jingrow.services.queue import init_queue
from jingrow.services.local_job_manager import local_job_manager
from jingrow.services.hook_executor import create_hook_task, execute_hook_sync
from jingrow.utils.jingrow_api import get_record_list, get_record, create_record, update_record, delete_record
from jingrow.utils.jingrow_api import get_record_list, get_record, create_record, update_record, delete_record, get_single_pagetype
import uuid
logger = logging.getLogger(__name__)
@ -217,6 +217,21 @@ async def get_record_count(request: Request, pagetype: str):
raise HTTPException(status_code=500, detail=str(e))
@router.get("/api/single/{pagetype}")
async def get_single(request: Request, pagetype: str):
"""获取single类型pagetype记录"""
try:
result = get_single_pagetype(pagetype)
if result.get('success'):
return JSONResponse(content={"data": result.get('config', {})})
else:
raise HTTPException(status_code=404, detail=result.get('error', '配置不存在'))
except Exception as e:
logger.error(f"获取single配置失败: {e}")
raise HTTPException(status_code=500, detail=str(e))
@router.post("/api/hooks/execute")
async def execute_hook_task(request: Request, data: Dict[str, Any]):
"""执行钩子任务"""

View File

@ -511,6 +511,19 @@ def get_jingrow_system_timezone():
return _get_default_timezone()
def get_single_pagetype(pagetype: str):
"""获取single类型pagetype记录"""
try:
api_url = f"{Config.jingrow_server_url}/api/action/jingrow.ai.utils.jlocal.get_single_pagetype"
response = requests.post(api_url, json={"pagetype": pagetype}, headers=get_jingrow_api_headers(), timeout=10)
if response.status_code == 200:
result = response.json().get('message', response.json())
return {'success': True, 'config': result.get('config', {})} if result.get('success') else {'success': False, 'error': result.get('error', '获取失败')}
return {'success': False, 'error': f"HTTP {response.status_code}"}
except Exception as e:
return {'success': False, 'error': str(e)}
def _get_default_timezone():
"""获取默认时区"""
return datetime.datetime.now().astimezone().tzinfo