From 68717daefb40a143dc8eea5c1dad1174a91b9959 Mon Sep 17 00:00:00 2001 From: qinglong Date: Sat, 13 Jun 2026 21:19:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20Sentinel=20=E6=94=AF=E6=8C=81=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=20API=20=E8=B7=AF=E5=BE=84=E5=89=8D=E7=BC=80?= =?UTF-8?q?=20(base=5Fpath)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 节点编辑对话框新增「API 路径前缀」字段 (默认 /SenSu) - 后端保存/读取 base_path - API 响应包含 base_path 供前端回显 Co-Authored-By: Claude --- plugins/sentinel/__init__.py | 3 +++ plugins/sentinel/dashboard.html | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/plugins/sentinel/__init__.py b/plugins/sentinel/__init__.py index 0e7b253..1dafd1b 100644 --- a/plugins/sentinel/__init__.py +++ b/plugins/sentinel/__init__.py @@ -109,6 +109,7 @@ class Plugin(PluginWebMixin): result.append({ "id": n.get("id", ""), "name": n.get("name", ""), "url": n.get("url", ""), "notes": n.get("notes", ""), + "base_path": n.get("base_path", "/SenSu"), "enabled": n.get("enabled", True), "online": c.get("online", False), "system": c.get("system", {}), @@ -130,6 +131,7 @@ class Plugin(PluginWebMixin): "name": data.get("name", "").strip(), "url": data.get("url", "").strip().rstrip("/"), "api_key": data.get("api_key", "").strip(), + "base_path": data.get("base_path", "/SenSu").strip() or "/SenSu", "notes": data.get("notes", "").strip(), "enabled": data.get("enabled", True), } @@ -233,6 +235,7 @@ class Plugin(PluginWebMixin): result.append({ "id": n.get("id", ""), "name": n.get("name", ""), "url": n.get("url", ""), "notes": n.get("notes", ""), + "base_path": n.get("base_path", "/SenSu"), "enabled": n.get("enabled", True), "online": c.get("online", False), "system": c.get("system", {}), diff --git a/plugins/sentinel/dashboard.html b/plugins/sentinel/dashboard.html index b9710f3..0ea9c3c 100644 --- a/plugins/sentinel/dashboard.html +++ b/plugins/sentinel/dashboard.html @@ -30,6 +30,7 @@
+
@@ -238,6 +239,7 @@ document.getElementById("edit-name").value = ""; document.getElementById("edit-url").value = "http://"; document.getElementById("edit-key").value = ""; + document.getElementById("edit-base").value = "/SenSu"; document.getElementById("edit-notes").value = ""; document.getElementById("test-result").innerHTML = ""; document.getElementById("edit-dialog").style.display = "flex"; @@ -250,6 +252,7 @@ document.getElementById("edit-name").value = n.name||""; document.getElementById("edit-url").value = n.url||""; document.getElementById("edit-key").value = n.api_key||""; + document.getElementById("edit-base").value = n.base_path||"/SenSu"; document.getElementById("edit-notes").value = n.notes||""; document.getElementById("test-result").innerHTML = ""; document.getElementById("edit-dialog").style.display = "flex"; @@ -263,6 +266,7 @@ name: document.getElementById("edit-name").value.trim(), url: document.getElementById("edit-url").value.trim(), api_key: document.getElementById("edit-key").value.trim(), + base_path: document.getElementById("edit-base").value.trim() || "/SenSu", notes: document.getElementById("edit-notes").value.trim() }; if(!data.name||!data.url){ alert("名称和 URL 不能为空"); return; }