From 1ab21024dd2fb5daea9d6a1697ba6e57dd136bde Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Wed, 1 Jul 2026 21:49:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20parseUserInfo=E6=94=AF=E6=8C=81PTTIME?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F(td.bottom.clearfix+=E2=AC=86=E2=AC=87?= =?UTF-8?q?=E5=81=9A=E7=A7=8D=E6=95=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/scripts/default-nexusphp.groovy | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/par-core/src/main/resources/scripts/default-nexusphp.groovy b/par-core/src/main/resources/scripts/default-nexusphp.groovy index 55e8f64..036d001 100644 --- a/par-core/src/main/resources/scripts/default-nexusphp.groovy +++ b/par-core/src/main/resources/scripts/default-nexusphp.groovy @@ -16,17 +16,23 @@ Map parse(String content, String url) { private Map parseUserInfo(doc) { def fields = [:] - def el = utils.selectFirst(doc, '#info_block') + def el = utils.selectFirst(doc, '#info_block, td.bottom.clearfix, .userbar') if (el) { def t = utils.text(el) - def um = t =~ /上传[::]\s*([0-9.]+)\s*(TB|GB|MB|KB|B)?/ - def dm = t =~ /下载[::]\s*([0-9.]+)\s*(TB|GB|MB|KB|B)?/ - def rm = t =~ /分享率[::]\s*([\d.]+)/ - def bm = t =~ /魔力[值::]*\s*([\d,]+)/ + // 通用正则提取 + def um = t =~ /上传[::]\s*([0-9.,]+)\s*(TB|GB|MB|KB|B)?/ + def dm = t =~ /下载[::]\s*([0-9.,]+)\s*(TB|GB|MB|KB|B)?/ + def rm = t =~ /分享率[::]\s*([\d.,]+)/ + def bm = t =~ /魔力[值::]*[^0-9]*([\d.,]+)/ if (um) fields.upload = um[0][1] + (um[0][2] ?: '') if (dm) fields.download = dm[0][1] + (dm[0][2] ?: '') if (rm) fields.ratio = rm[0][1] if (bm) fields.bonus = bm[0][1] + // PTTIME 特殊:做种/下载计数 + def sm = t =~ /⬆\s*(\d+)/ + def lm = t =~ /⬇\s*(\d+)/ + if (sm) fields.seeding = sm[0][1] + if (lm) fields.leeching = lm[0][1] } return [pageName: '用户信息', fields: fields] } @@ -84,18 +90,21 @@ Map sync(PluginContext ctx) { try { def conn = ctx.httpGet('/index.php') def doc = jsoup.parse(conn.body()) - def el = utils.selectFirst(doc, '#info_block') + def el = utils.selectFirst(doc, '#info_block, td.bottom.clearfix, .userbar') if (!el) return [message: "未找到用户信息"] def t = utils.text(el) def result = [:] - def um = t =~ /上传[::]\s*([0-9.]+)\s*(TB|GB|MB|KB|B)?/ - def dm = t =~ /下载[::]\s*([0-9.]+)\s*(TB|GB|MB|KB|B)?/ - def rm = t =~ /分享率[::]\s*([\d.]+)/ - def bm = t =~ /魔力[值::]*\s*([\d,]+)/ - if (um) result.upload = parseTraffic(um[0][1] as double, um[0][2]) - if (dm) result.download = parseTraffic(dm[0][1] as double, dm[0][2]) - if (rm) result.shareRate = rm[0][1] as double + def um = t =~ /上传[::]\s*([0-9.,]+)\s*(TB|GB|MB|KB|B)?/ + def dm = t =~ /下载[::]\s*([0-9.,]+)\s*(TB|GB|MB|KB|B)?/ + def rm = t =~ /分享率[::]\s*([\d.,]+)/ + def bm = t =~ /魔力[值::]*[^0-9]*([\d.,]+)/ + if (um) result.upload = parseTraffic(um[0][1].replace(',','') as double, um[0][2]) + if (dm) result.download = parseTraffic(dm[0][1].replace(',','') as double, dm[0][2]) + if (rm) result.shareRate = rm[0][1].replace(',','') as double if (bm) result.bonus = bm[0][1].replace(',','') as double + // 做种数 + def sm = t =~ /⬆\s*(\d+)/ + if (sm) result.seeding = sm[0][1] as int return result } catch (e) { return [message: "同步失败: ${e.message}"] } }