From ce1e87b81360b47ed16c51c405b7c198ef389ca0 Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Thu, 9 Jul 2026 15:58:34 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20parse=E7=BB=9F=E4=B8=80=E7=94=A8pag?= =?UTF-8?q?eKey=E8=B7=AF=E7=94=B1=EF=BC=8C=E7=A7=BB=E9=99=A4URL=E5=9B=9E?= =?UTF-8?q?=E9=80=80=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/par/api/controller/AdapterController.java | 2 +- .../java/com/par/core/adapter/GroovyScriptEngine.java | 6 +----- .../src/main/resources/scripts/default-nexusphp.groovy | 10 +--------- 3 files changed, 3 insertions(+), 15 deletions(-) diff --git a/par-api/src/main/java/com/par/api/controller/AdapterController.java b/par-api/src/main/java/com/par/api/controller/AdapterController.java index 5f8ae70..846ddad 100644 --- a/par-api/src/main/java/com/par/api/controller/AdapterController.java +++ b/par-api/src/main/java/com/par/api/controller/AdapterController.java @@ -62,7 +62,7 @@ public class AdapterController { catch (Exception e) { return ApiResponse.error(500, "读取内容失败: " + e.getMessage()); } if (content == null) return ApiResponse.error(404, "内容为空"); - String pageKey = resolvePageKey(siteConfig.getSiteId(), accessResult.getUrl()); + String pageKey = (String) payload.getOrDefault("pageKey", resolvePageKey(siteConfig.getSiteId(), accessResult.getUrl())); return ApiResponse.success(groovyEngine.execute(script, content, accessResult.getUrl(), pageKey)); } diff --git a/par-core/src/main/java/com/par/core/adapter/GroovyScriptEngine.java b/par-core/src/main/java/com/par/core/adapter/GroovyScriptEngine.java index db915c8..04a494b 100644 --- a/par-core/src/main/java/com/par/core/adapter/GroovyScriptEngine.java +++ b/par-core/src/main/java/com/par/core/adapter/GroovyScriptEngine.java @@ -145,11 +145,7 @@ public class GroovyScriptEngine { binding.setVariable("http", HttpUtils.INSTANCE); GroovyShell shell = new GroovyShell(classLoader, binding); - // 优先用 pageKey 路由,无则回退 url 路由 - String call = pageKey != null && !pageKey.isEmpty() - ? "return parse(content, pageKey)" - : "return parse(content, url)"; - String fullScript = SCRIPT_PREFIX + groovyScript + "\n// PAR 调用入口\n" + call; + String fullScript = SCRIPT_PREFIX + groovyScript + "\n// PAR 调用入口\nreturn parse(content, pageKey)"; Object scriptResult = shell.evaluate(fullScript); return buildResult(result, scriptResult); diff --git a/par-core/src/main/resources/scripts/default-nexusphp.groovy b/par-core/src/main/resources/scripts/default-nexusphp.groovy index d1c26d2..c827484 100644 --- a/par-core/src/main/resources/scripts/default-nexusphp.groovy +++ b/par-core/src/main/resources/scripts/default-nexusphp.groovy @@ -10,15 +10,7 @@ Map parse(String content, String pageKey) { case 'download': return parseDownload(content) case 'sync': return parseUserInfo(doc) case 'rss': return parseRss(content) - default: - // fallback: pageKey 未知时用 URL 兜底 - String u = url ?: '' - if (u.contains('/attendance.php')) return parseSign(doc) - if (u.contains('/download.php')) return parseDownload(content) - if (u.contains('/index.php') && !u.contains('?')) return parseUserInfo(doc) - if (u.contains('/usercp.php')) return parseUserPanel(doc) - if (u.contains('/torrentrss.php') || u.contains('/rss')) return parseRss(content) - return [pageName: '未知页面', message: "未配置: pageKey=${pageKey}"] + default: return [pageName: '未知页面', error: "未知 pageKey: ${pageKey}"] } }