From 862309650ec24a093ee76f907d5d127b86020eed Mon Sep 17 00:00:00 2001 From: jingrow Date: Sun, 26 Oct 2025 00:21:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96single?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E7=9A=84pagetype=E7=9A=84api=E7=AB=AF?= =?UTF-8?q?=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/jingrow/jingrow/api/page.py | 17 ++++++++++++++++- apps/jingrow/jingrow/utils/jingrow_api.py | 13 +++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/apps/jingrow/jingrow/api/page.py b/apps/jingrow/jingrow/api/page.py index eb9a98d..ecf8937 100644 --- a/apps/jingrow/jingrow/api/page.py +++ b/apps/jingrow/jingrow/api/page.py @@ -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]): """执行钩子任务""" diff --git a/apps/jingrow/jingrow/utils/jingrow_api.py b/apps/jingrow/jingrow/utils/jingrow_api.py index 6d2638d..a4af831 100644 --- a/apps/jingrow/jingrow/utils/jingrow_api.py +++ b/apps/jingrow/jingrow/utils/jingrow_api.py @@ -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