diff --git a/parser/src/test/java/cn/qaiu/parser/PanDomainTemplateTest.java b/parser/src/test/java/cn/qaiu/parser/PanDomainTemplateTest.java index 0ed4ec6..d0eb78c 100644 --- a/parser/src/test/java/cn/qaiu/parser/PanDomainTemplateTest.java +++ b/parser/src/test/java/cn/qaiu/parser/PanDomainTemplateTest.java @@ -170,6 +170,10 @@ public class PanDomainTemplateTest { assertTrue("YE should match redirected mshare URL", redirectedUrl.find()); assertEquals("lN7UVv-pbYJ", redirectedUrl.group("KEY")); + Matcher shareUrl = yePattern.matcher("https://1815268665.share.123pan.cn/123pan/iaKtVv-r4aCd"); + assertTrue("YE should match uid.share.123pan.cn URL", shareUrl.find()); + assertEquals("iaKtVv-r4aCd", shareUrl.group("KEY")); + Matcher htmlUrl = yePattern.matcher("https://www.123278.com/s/lN7UVv-pbYJ.html?pwd=abcd"); assertTrue("YE should match html URL with query", htmlUrl.find()); assertEquals("lN7UVv-pbYJ", htmlUrl.group("KEY")); diff --git a/web-front/src/parserUrl1.js b/web-front/src/parserUrl1.js index c3e38a9..506d9fe 100644 --- a/web-front/src/parserUrl1.js +++ b/web-front/src/parserUrl1.js @@ -246,8 +246,8 @@ storage: 'hash' }, '123pan': { - reg: /((?:https?:\/\/)?www\.(123pan|123865|123684)\.com\/s\/[\w-]{6,})/, - host: /www\.123pan\.com/, + reg: /((?:https?:\/\/)?(?:[a-zA-Z\d-]+\.(?:m?share)\.123pan\.cn\/123pan\/[\w-]+|(?:www\.)?(?:123panpay|123pan|123\d{3})\.(?:com|cn)\/s\/[\w-]{6,}(?:\.html)?)(?:\?[^#\s]*)?)/i, + host: /(?:[a-zA-Z\d-]+\.(?:m?share)\.123pan\.cn|(?:www\.)?(?:123panpay|123pan|123\d{3})\.(?:com|cn))/i, input: ['.ca-fot input', ".appinput .appinput"], button: ['.ca-fot button', ".appinput button"], name: '123云盘', @@ -377,6 +377,7 @@ parseLink(text = '') { let obj = {name: '', link: '', storage: '', storagePwdName: ''}; if (text) { + text = String(text).trim(); try { text = decodeURIComponent(text); } catch { @@ -390,6 +391,9 @@ let matches = text.match(val.reg); obj.name = val.name; obj.link = matches[0]; + if (obj.link && !/^https?:\/\//i.test(obj.link)) { + obj.link = 'https://' + obj.link.replace(/^\/\//, ''); + } obj.storage = val.storage; obj.storagePwdName = val.storagePwdName || null; if (val.replaceHost) { diff --git a/web-front/src/views/Home.vue b/web-front/src/views/Home.vue index aca2358..bd45069 100644 --- a/web-front/src/views/Home.vue +++ b/web-front/src/views/Home.vue @@ -90,7 +90,7 @@ - +