diff --git a/parser/src/main/java/cn/qaiu/parser/PanDomainTemplate.java b/parser/src/main/java/cn/qaiu/parser/PanDomainTemplate.java index e725fea..0af332f 100644 --- a/parser/src/main/java/cn/qaiu/parser/PanDomainTemplate.java +++ b/parser/src/main/java/cn/qaiu/parser/PanDomainTemplate.java @@ -100,7 +100,6 @@ public enum PanDomainTemplate { "lanzoux|" + "lanzout|" + "lanzouc|" + -// "ilanzou|" + "lanzoui|" + "lanzoug|" + "lanzoum" + @@ -244,7 +243,7 @@ public enum PanDomainTemplate { PgdTool.class), // iCloud https://www.icloud.com.cn/iclouddrive/xxx#fonts PIC("iCloud", - compile("https://www\\.icloud\\.com\\.cn/iclouddrive/(?[a-z_A-Z\\d-=]+)(#(.+))?"), + compile("https://www\\.icloud\\.com(\\.cn)?/iclouddrive/(?[a-z_A-Z\\d-=]+)(#(.+))?"), "https://www.icloud.com.cn/iclouddrive/{shareKey}", PicTool.class), // https://www.dropbox.com/scl/fi/cwnbms1yn8u6rcatzyta7/emqx-5.0.26-el7-amd64.tar.gz?rlkey=3uoi4bxz5mv93jmlaws0nlol1&e=8&st=fe0lclc2&dl=0 diff --git a/parser/src/main/java/cn/qaiu/parser/impl/LzTool.java b/parser/src/main/java/cn/qaiu/parser/impl/LzTool.java index 896b97f..618c88e 100644 --- a/parser/src/main/java/cn/qaiu/parser/impl/LzTool.java +++ b/parser/src/main/java/cn/qaiu/parser/impl/LzTool.java @@ -28,7 +28,7 @@ import java.util.regex.Pattern; */ public class LzTool extends PanBase { - public static final String SHARE_URL_PREFIX = "https://wwwa.lanzoux.com"; + public static final String SHARE_URL_PREFIX = "https://wwww.lanzoup.com"; public LzTool(ShareLinkInfo shareLinkInfo) { diff --git a/parser/src/main/java/cn/qaiu/parser/impl/PvyyTool.java b/parser/src/main/java/cn/qaiu/parser/impl/PvyyTool.java index 536bcfb..7bf8ed9 100644 --- a/parser/src/main/java/cn/qaiu/parser/impl/PvyyTool.java +++ b/parser/src/main/java/cn/qaiu/parser/impl/PvyyTool.java @@ -45,11 +45,10 @@ public class PvyyTool extends PanBase { user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 """); - private String api; + private final String api; public PvyyTool(ShareLinkInfo shareLinkInfo) { super(shareLinkInfo); api = new String(hexArray); - System.out.println(api); } @Override diff --git a/parser/src/main/java/cn/qaiu/parser/impl/QQwTool.java b/parser/src/main/java/cn/qaiu/parser/impl/QQwTool.java index d47e9c3..3ce530d 100644 --- a/parser/src/main/java/cn/qaiu/parser/impl/QQwTool.java +++ b/parser/src/main/java/cn/qaiu/parser/impl/QQwTool.java @@ -1,5 +1,6 @@ package cn.qaiu.parser.impl; +import cn.qaiu.entity.FileInfo; import cn.qaiu.entity.ShareLinkInfo; import io.vertx.core.Future; import java.util.HashMap; @@ -15,9 +16,15 @@ public class QQwTool extends QQTool { @Override public Future parse() { - client.getAbs(shareLinkInfo.getStandardUrl()).send().onSuccess(res -> { + client.getAbs(shareLinkInfo.getShareUrl()).send().onSuccess(res -> { String html = res.bodyAsString(); - String url = extractVariables(html).get("url"); + Map stringStringMap = extractVariables(html); + String url = stringStringMap.get("url"); + String fn = stringStringMap.get("filename"); + String size = stringStringMap.get("filesize"); + String createBy = stringStringMap.get("nick"); + FileInfo fileInfo = new FileInfo().setFileName(fn).setSize(Long.parseLong(size)).setCreateBy(createBy); + shareLinkInfo.getOtherParam().put("fileInfo", fileInfo); if (url != null) { String url302 = url.replace("\\x26", "&"); promise.complete(url302); @@ -44,16 +51,17 @@ public class QQwTool extends QQTool { private Map extractVariables(String jsCode) { Map variables = new HashMap<>(); - // 正则表达式匹配 var 变量定义 - String regex = "var\\s+(\\w+)\\s*=\\s*([\"']?)([^\"';\\s]+)\\2\n"; - Pattern pattern = Pattern.compile(regex); - Matcher matcher = pattern.matcher(jsCode); + String regex = "\\s+var\\s+(\\w+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^;\\r\\n]*))"; + Pattern p = Pattern.compile(regex); + Matcher m = p.matcher(jsCode); - while (matcher.find()) { - String variableName = matcher.group(1); // 变量名 - String variableValue = matcher.group(3); // 变量值 - variables.put(variableName, variableValue); + while (m.find()) { + String name = m.group(1); + String value = m.group(2) != null ? m.group(2) + : m.group(3) != null ? m.group(3) + : m.group(4); + variables.put(name, value); } return variables;