From b4291dd357711a150f890797356728627e03026a Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Mon, 6 Jul 2026 08:50:41 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20detail=E4=BB=85=E4=BD=9C=E5=AD=90?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E4=B8=8D=E8=AE=BE=E7=8B=AC=E7=AB=8B=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/nexusphp-default.groovy | 18 ++++++++++++++---- .../main/java/com/par/core/enums/PageKey.java | 5 +++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/docs/nexusphp-default.groovy b/docs/nexusphp-default.groovy index 52eee47..3dc9ba5 100644 --- a/docs/nexusphp-default.groovy +++ b/docs/nexusphp-default.groovy @@ -6,10 +6,20 @@ // medibo 根据 pageKey 调用对应方法,如 parseSync(context) // 约定方法名: parse + pageKey 首字母大写 -Map parseSync(context) { return checkStatus(context) ?: parseUserProfile(Jsoup.parse(context.content)) } -Map parseSearch(context) { return checkStatus(context) ?: parseSearchPage(Jsoup.parse(context.content)) } -Map parseDetail(context) { return checkStatus(context) ?: parseDetailPage(Jsoup.parse(context.content)) } -Map parseSignIn(context) { return checkStatus(context) ?: parseSignPage(Jsoup.parse(context.content)) } +// medibo 直接调用的入口方法 +Map parseSync(context) { + if (context.status != 200) return [matched: false, error: true, status: context.status] + def doc = Jsoup.parse(context.content) + def profile = parseUserProfile(doc) + // 如果需要详情,通过 context.fetch 子请求 + if (profile.matched && false /* 需要详情 */) { + def resp = context.fetch("detail", [id: "xxx"]) + if (resp.status == 200) profile.detail = parseDetailPage(Jsoup.parse(resp.content)) + } + return profile +} +Map parseSearch(context) { return checkStatus(context) ?: parseSearchPage(Jsoup.parse(context.content)) } +Map parseSignIn(context) { return checkStatus(context) ?: parseSignPage(Jsoup.parse(context.content)) } Map parseDownload(context) { return checkStatus(context) ?: parseDownloadPage(context) } /** 通用状态码检查,非 200 直接返回错误 */ diff --git a/par-core/src/main/java/com/par/core/enums/PageKey.java b/par-core/src/main/java/com/par/core/enums/PageKey.java index e2c14cd..2f042e3 100644 --- a/par-core/src/main/java/com/par/core/enums/PageKey.java +++ b/par-core/src/main/java/com/par/core/enums/PageKey.java @@ -9,8 +9,9 @@ public enum PageKey { SYNC("sync", "同步", "GET"), SIGN_IN("signIn", "签到", "POST"), SEARCH("search", "搜索", "GET"), - DETAIL("detail", "资源详情", "GET"), - DOWNLOAD("download", "下载", "GET"); + DOWNLOAD("download", "下载", "GET"), + // detail 仅供脚本内 context.fetch("detail", ...) 使用,medibo 不直接调用 + DETAIL("detail", "资源详情", "GET"); private final String key; private final String label;