From 26a6f6437503cbd75201d611a56419e3f754af02 Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Wed, 8 Jul 2026 14:37:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=89=80=E6=9C=89=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E6=B7=BB=E5=8A=A0=20import=20groovy.xml.XmlS?= =?UTF-8?q?lurper=EF=BC=8Cnexusphp=20=E8=A1=A5=E4=B8=8A=20download=20?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/scripts/default-gazelle.groovy | 2 ++ .../main/resources/scripts/default-mtorrent.groovy | 2 ++ .../main/resources/scripts/default-nexusphp.groovy | 14 ++++++++++++++ .../main/resources/scripts/default-unit3d.groovy | 2 ++ 4 files changed, 20 insertions(+) diff --git a/par-core/src/main/resources/scripts/default-gazelle.groovy b/par-core/src/main/resources/scripts/default-gazelle.groovy index 97ca109..d1af484 100644 --- a/par-core/src/main/resources/scripts/default-gazelle.groovy +++ b/par-core/src/main/resources/scripts/default-gazelle.groovy @@ -2,6 +2,8 @@ // 适用: RED / OPS / BHD / PTP 等 Gazelle 架构站点 // 覆盖: 搜索 / 种子详情 / 首页 +import groovy.xml.XmlSlurper + Map parse(String content, String url) { def doc = jsoup.parse(content) diff --git a/par-core/src/main/resources/scripts/default-mtorrent.groovy b/par-core/src/main/resources/scripts/default-mtorrent.groovy index b13bad4..38e6a19 100644 --- a/par-core/src/main/resources/scripts/default-mtorrent.groovy +++ b/par-core/src/main/resources/scripts/default-mtorrent.groovy @@ -2,6 +2,8 @@ // 适用: M-Team 及其 API 兼容站点 // 覆盖: 用户信息 / 做种统计 / 搜索 +import groovy.xml.XmlSlurper + final String API_BASE = "https://api.m-team.io" Map parse(String content, String url) { diff --git a/par-core/src/main/resources/scripts/default-nexusphp.groovy b/par-core/src/main/resources/scripts/default-nexusphp.groovy index a4c54da..f12c817 100644 --- a/par-core/src/main/resources/scripts/default-nexusphp.groovy +++ b/par-core/src/main/resources/scripts/default-nexusphp.groovy @@ -1,12 +1,15 @@ // NexusPHP 站点默认脚本 // 适用: PThome / HDSky / HDFans / OurBits 等 +import groovy.xml.XmlSlurper + Map parse(String content, String url) { def doc = Jsoup.parse(content) if (url.contains('/torrents.php')) return parseSearch(doc) if (url.contains('/details.php')) return parseDetail(doc) if (url.contains('/attendance.php')) return parseSign(doc) + if (url.contains('/download.php')) return parseDownload(content) if (url.contains('/index.php') && !url.contains('?')) return parseUserInfo(doc) if (url.contains('/usercp.php')) return parseUserPanel(doc) if (url.contains('/torrentrss.php') || url.contains('/rss')) return parseRss(content) @@ -14,6 +17,17 @@ Map parse(String content, String url) { return [pageName: '未知页面', message: "未配置: ${url}"] } +private Map parseDownload(String content) { + if (!content || content.length() < 100) return [pageName: '下载', matched: false, message: '内容过短'] + def isTorrent = content.startsWith('d8:announce') || content.startsWith('d13:announce-list') + if (!isTorrent) { + def doc = Jsoup.parse(content) + def title = doc.title() + return [pageName: '下载', matched: false, message: title ? "非 torrent 文件: ${title}" : '非 torrent 文件'] + } + return [pageName: '下载', matched: true, fields: [fileSize: content.length(), isTorrent: true], message: "torrent ${content.length() / 1024}KB"] +} + private Map parseRss(String xml) { if (!xml) return [pageName: 'RSS', matched: false, message: '无内容'] try { diff --git a/par-core/src/main/resources/scripts/default-unit3d.groovy b/par-core/src/main/resources/scripts/default-unit3d.groovy index 88cf736..74338cb 100644 --- a/par-core/src/main/resources/scripts/default-unit3d.groovy +++ b/par-core/src/main/resources/scripts/default-unit3d.groovy @@ -2,6 +2,8 @@ // 适用: BLU / TL / ACM 等 UNIT3D 架构站点(HTML + 可选 API) // 覆盖: 搜索 / 种子详情 / 首页 +import groovy.xml.XmlSlurper + Map parse(String content, String url) { def doc = jsoup.parse(content)