diff --git a/apps/jingrow/jingrow/ai/utils/jlocal.py b/apps/jingrow/jingrow/ai/utils/jlocal.py new file mode 100644 index 0000000..2da6bcf --- /dev/null +++ b/apps/jingrow/jingrow/ai/utils/jlocal.py @@ -0,0 +1,31 @@ +# Copyright (c) 2025, JINGROW and contributors +# For license information, please see license.txt + +""" +jlocal 相关白名单函数 - 转发到 SaaS 端 +""" + +import jingrow +import requests +import logging +from jingrow.config import Config +from jingrow.utils.auth import get_request_session_cookie + +logger = logging.getLogger(__name__) + + +@jingrow.whitelist() +def get_user_pagetype_permissions(**kwargs): + """获取用户 PageType 权限 - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.ai.utils.jlocal.get_user_pagetype_permissions" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.post(url, headers=headers, json=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message", {}) + logger.error(f"[get_user_pagetype_permissions] SaaS error: {resp.status_code} - {resp.text[:200]}") + return {} diff --git a/apps/jingrow/jingrow/client.py b/apps/jingrow/jingrow/client.py new file mode 100644 index 0000000..e03a0f1 --- /dev/null +++ b/apps/jingrow/jingrow/client.py @@ -0,0 +1,65 @@ +# Copyright (c) 2025, JINGROW and contributors +# For license information, please see license.txt + +""" +Client 相关白名单函数 - 转发到 SaaS 端 +""" + +import jingrow +import requests +import logging +from jingrow.config import Config +from jingrow.utils.auth import get_request_session_cookie + +logger = logging.getLogger(__name__) + + +@jingrow.whitelist() +def get_list(**kwargs): + """获取列表 - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.client.get_list" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.post(url, headers=headers, json=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message", []) + logger.error(f"[get_list] SaaS error: {resp.status_code} - {resp.text[:200]}") + return [] + + +@jingrow.whitelist() +def get_value(**kwargs): + """获取值 - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.client.get_value" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.post(url, headers=headers, json=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message") + logger.error(f"[get_value] SaaS error: {resp.status_code} - {resp.text[:200]}") + return None + + +@jingrow.whitelist() +def get_count(**kwargs): + """获取计数 - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.client.get_count" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.get(url, headers=headers, params=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message", 0) + logger.error(f"[get_count] SaaS error: {resp.status_code} - {resp.text[:200]}") + return 0 diff --git a/apps/jingrow/jingrow/core/__init__.py b/apps/jingrow/jingrow/core/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/apps/jingrow/jingrow/core/pagetype/__init__.py b/apps/jingrow/jingrow/core/pagetype/__init__.py new file mode 100644 index 0000000..f0f5951 --- /dev/null +++ b/apps/jingrow/jingrow/core/pagetype/__init__.py @@ -0,0 +1 @@ +# Core pagetype package diff --git a/apps/jingrow/jingrow/core/pagetype/local_job/__init__.py b/apps/jingrow/jingrow/core/pagetype/local_job/__init__.py new file mode 100644 index 0000000..e1bb77e --- /dev/null +++ b/apps/jingrow/jingrow/core/pagetype/local_job/__init__.py @@ -0,0 +1 @@ +# Local job package diff --git a/apps/jingrow/jingrow/core/pagetype/local_job/local_job.py b/apps/jingrow/jingrow/core/pagetype/local_job/local_job.py new file mode 100644 index 0000000..c14a7b9 --- /dev/null +++ b/apps/jingrow/jingrow/core/pagetype/local_job/local_job.py @@ -0,0 +1,31 @@ +# Copyright (c) 2025, JINGROW and contributors +# For license information, please see license.txt + +""" +Local Job 相关白名单函数 - 转发到 SaaS 端 +""" + +import jingrow +import requests +import logging +from jingrow.config import Config +from jingrow.utils.auth import get_request_session_cookie + +logger = logging.getLogger(__name__) + + +@jingrow.whitelist() +def get_local_job_count(**kwargs): + """获取本地任务计数 - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.core.pagetype.local_job.local_job.get_local_job_count" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.get(url, headers=headers, params=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message", 0) + logger.error(f"[get_local_job_count] SaaS error: {resp.status_code}") + return 0 diff --git a/apps/jingrow/jingrow/desk/desktop.py b/apps/jingrow/jingrow/desk/desktop.py new file mode 100644 index 0000000..efd3115 --- /dev/null +++ b/apps/jingrow/jingrow/desk/desktop.py @@ -0,0 +1,48 @@ +# Copyright (c) 2025, JINGROW and contributors +# For license information, please see license.txt + +""" +Desktop 相关白名单函数 - 转发到 SaaS 端 +""" + +import jingrow +import requests +import logging +from jingrow.config import Config +from jingrow.utils.auth import get_request_session_cookie + +logger = logging.getLogger(__name__) + + +@jingrow.whitelist() +def get_workspace_sidebar_items(**kwargs): + """获取工作区侧边栏项目 - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.desk.desktop.get_workspace_sidebar_items" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.post(url, headers=headers, json=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message", {}) + logger.error(f"[get_workspace_sidebar_items] SaaS error: {resp.status_code}") + return {} + + +@jingrow.whitelist() +def get_desktop_page(**kwargs): + """获取桌面页面 - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.desk.desktop.get_desktop_page" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.post(url, headers=headers, json=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message", {}) + logger.error(f"[get_desktop_page] SaaS error: {resp.status_code}") + return {}