Files
netdisk-fast-download/web-front/src/parserUrl1.js

400 lines
16 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 修改自 https://github.com/syhyz1990/panAI
let opt = {
// 'baidu': {
// reg: /((?:https?:\/\/)?(?:e?yun|pan)\.baidu\.com\/(doc\/|enterprise\/)?(?:s\/[\w~]*(((-)?\w*)*)?|share\/\S{4,}))/,
// host: /(pan|e?yun)\.baidu\.com/,
// input: ['#accessCode', '.share-access-code', '#wpdoc-share-page > .u-dialog__wrapper .u-input__inner'],
// button: ['#submitBtn', '.share-access .g-button', '#wpdoc-share-page > .u-dialog__wrapper .u-btn--primary'],
// name: '百度网盘',
// storage: 'hash'
// },
// 'aliyun': {
// reg: /((?:https?:\/\/)?(?:(?:www\.)?(?:aliyundrive|alipan)\.com\/s|alywp\.net)\/[a-zA-Z\d]+)/,
// host: /www\.(aliyundrive|alipan)\.com|alywp\.net/,
// input: ['form .ant-input', 'form input[type="text"]', 'input[name="pwd"]'],
// button: ['form .button--fep7l', 'form button[type="submit"]'],
// name: '阿里云盘',
// storage: 'hash'
// },
// 'weiyun': {
// reg: /((?:https?:\/\/)?share\.weiyun\.com\/[a-zA-Z\d]+)/,
// host: /share\.weiyun\.com/,
// input: ['.mod-card-s input[type=password]', 'input.pw-input'],
// button: ['.mod-card-s .btn-main', ".pw-btn-wrap button.btn"],
// name: '微云',
// storage: 'hash'
// },
// 'tianyi': {
// reg: /((?:https?:\/\/)?cloud\.189\.cn\/(?:t\/|web\/share\?code=)?[a-zA-Z\d]+)/,
// host: /cloud\.189\.cn/,
// input: ['.access-code-item #code_txt', "input.access-code-input"],
// button: ['.access-code-item .visit', ".button"],
// name: '天翼云盘',
// storage: (() => util.isMobile === true ? 'local' : 'hash')(),
// storagePwdName: 'tmp_tianyi_pwd'
// },
// 'caiyun': {
// reg: /((?:https?:\/\/)?caiyun\.139\.com\/(?:m\/i|w\/i\/|web\/|front\/#\/detail)\??(?:linkID=)?[a-zA-Z\d]+)/,
// host: /(?:cai)?yun\.139\.com/,
// input: ['.token-form input[type=text]'],
// button: ['.token-form .btn-token'],
// name: '移动云盘',
// storage: 'local',
// storagePwdName: 'tmp_caiyun_pwd'
// },
// 'xunlei': {
// reg: /((?:https?:\/\/)?pan\.xunlei\.com\/s\/[\w-]{10,})/,
// host: /pan\.xunlei\.com/,
// input: ['.pass-input-wrap .td-input__inner'],
// button: ['.pass-input-wrap .td-button'],
// name: '迅雷云盘',
// storage: 'hash'
// },
// '360': {
// reg: /((?:https?:\/\/)?(?:[a-zA-Z\d\-.]+)?(?:yunpan\.360\.cn|yunpan\.com)(\/lk)?\/surl_\w{6,})/,
// host: /[\w.]+?yunpan\.com/,
// input: ['.pwd-input'],
// button: ['.submit-btn'],
// name: '360云盘',
// storage: 'local',
// storagePwdName: 'tmp_360_pwd'
// },
// '115': {
// reg: /((?:https?:\/\/)?115\.com\/s\/[a-zA-Z\d]+)/,
// host: /115\.com/,
// input: ['.form-decode input'],
// button: ['.form-decode .submit a'],
// name: '115网盘',
// storage: 'hash'
// },
// 'quark': {
// reg: /((?:https?:\/\/)?pan\.quark\.cn\/s\/[a-zA-Z\d-]+)/,
// host: /pan\.quark\.cn/,
// input: ['.ant-input'],
// button: ['.ant-btn-primary'],
// name: '夸克网盘',
// storage: 'local',
// storagePwdName: 'tmp_quark_pwd'
// },
// 'vdisk': {
// reg: /(?:https?:\/\/)?vdisk.weibo.com\/lc\/\w+/,
// host: /vdisk\.weibo\.com/,
// input: ['#keypass', "#access_code"],
// button: ['.search_btn_wrap a', "#linkcommon_btn"],
// name: '微盘',
// storage: 'hash',
// },
// 'uc': {
// reg: /(?:https?:\/\/)?drive\.uc\.cn\/s\/[a-zA-Z\d]+/,
// host: /drive\.uc\.cn/,
// input: ["input[class*='ShareReceivePC--input']", '.input-wrap input'],
// button: ["button[class*='ShareReceivePC--submit-btn'", '.input-wrap button'],
// name: 'UC云盘',
// storage: 'hash'
// },
// 'jianguoyun': {
// reg: /((?:https?:\/\/)?www\.jianguoyun\.com\/p\/[\w-]+)/,
// host: /www\.jianguoyun\.com/,
// input: ['input[type=password]'],
// button: ['.ok-button', '.confirm-button'],
// name: '坚果云',
// storage: 'hash'
// },
// 'wo': {
// reg: /(?:https?:\/\/)?pan\.wo\.cn\/s\/[\w_]+/,
// host: /(pan\.wo\.cn|panservice\.mail\.wo\.cn)/,
// input: ['input.el-input__inner', ".van-field__control"],
// button: ['.s-button', ".share-code button"],
// name: '联通云盘',
// storage: (() => util.isMobile === true ? 'local' : 'hash')(),
// storagePwdName: 'tmp_wo_pwd'
// },
// 'mega': {
// reg: /((?:https?:\/\/)?(?:mega\.nz|mega\.co\.nz)\/#F?![\w!-]+)/,
// host: /(?:mega\.nz|mega\.co\.nz)/,
// input: ['.dlkey-dialog input'],
// button: ['.dlkey-dialog .fm-dialog-new-folder-button'],
// name: 'Mega',
// storage: 'local'
// },
// '520vip': {
// reg: /((?:https?:\/\/)?www\.(?:520-vip|eos-53)\.com\/file-\d+\.html)/,
// host: /www\.520-vip\.com/,
// name: '520云盘',
// },
// '567pan': {
// reg: /((?:https?:\/\/)?www\.567(?:pan|yun|file|inc)\.(?:com|cn)\/file-\d+\.html)/,
// host: /www\.567inc\.cn/,
// name: '567盘',
// replaceHost: "www.567inc.com",
// },
// 'ayunpan': {
// reg: /((?:https?:\/\/)?www\.ayunpan\.com\/file-\d+\.html)/,
// host: /www\.ayunpan\.com/,
// name: 'AYunPan',
// },
// 'iycdn.com': {
// reg: /((?:https?:\/\/)?www\.iycdn\.com\/file-\d+\.html)/,
// host: /www\.iycdn\.com/,
// name: '爱优网盘',
// },
// 'feimaoyun': {
// reg: /((?:https?:\/\/)?www\.feimaoyun\.com\/s\/[0-9a-zA-Z]+)/,
// host: /www\.feimaoyun\.com/,
// name: '飞猫盘',
// },
// 'uyunp.com': {
// reg: /((?:https?:\/\/)?download\.uyunp\.com\/share\/s\/short\/\?surl=[0-9a-zA-Z]+)/,
// host: /download\.uyunp\.com/,
// name: '优云下载',
// },
// 'dudujb': {
// reg: /(?:https?:\/\/)?www\.dudujb\.com\/file-\d+\.html/,
// host: /www\.dudujb\.com/,
// name: '贵族网盘',
// },
// 'xunniu': {
// reg: /(?:https?:\/\/)?www\.xunniu(?:fxp|wp|fx)\.com\/file-\d+\.html/,
// host: /www\.xunniuwp\.com/,
// name: '迅牛网盘',
// },
// 'xueqiupan': {
// reg: /(?:https?:\/\/)?www\.xueqiupan\.com\/file-\d+\.html/,
// host: /www\.xueqiupan\.com/,
// name: '雪球云盘',
// },
// '77file': {
// reg: /(?:https?:\/\/)?www\.77file\.com\/s\/[a-zA-Z\d]+/,
// host: /www\.77file\.com/,
// name: '77file',
// },
// 'ownfile': {
// reg: /(?:https?:\/\/)?ownfile\.net\/files\/[a-zA-Z\d]+\.html/,
// host: /ownfile\.net/,
// name: 'OwnFile',
// },
// 'feiyunfile': {
// reg: /(?:https?:\/\/)?www\.feiyunfile\.com\/file\/[\w=]+\.html/,
// host: /www\.feiyunfile\.com/,
// name: '飞云网盘',
// },
// 'yifile': {
// reg: /(?:https?:\/\/)?www\.yifile\.com\/f\/\w+/,
// host: /www\.yifile\.com/,
// name: 'YiFile',
// },
// 'dufile': {
// reg: /(?:https?:\/\/)?dufile\.com\/file\/\w+\.html/,
// host: /dufile\.com/,
// name: 'duFile',
// },
// 'flowus': {
// reg: /((?:https?:\/\/)?flowus\.cn\/[\S ^\/]*\/?share\/[a-z\d]{8}-[a-z\d]{4}-[a-z\d]{4}-[a-z\d]{4}-[a-z\d]{12})/,
// host: /flowus\.cn/,
// name: 'FlowUs息流',
// storage: 'hash'
// },
// 'chrome': {
// reg: /^https?:\/\/chrome.google.com\/webstore\/.+?\/([a-z]{32})(?=[\/#?]|$)/,
// host: /chrome\.google\.com/,
// replaceHost: "chrome.crxsoso.com",
// name: 'Chrome商店',
// },
// 'edge': {
// reg: /^https?:\/\/microsoftedge.microsoft.com\/addons\/.+?\/([a-z]{32})(?=[\/#?]|$)/,
// host: /microsoftedge\.microsoft\.com/,
// replaceHost: "microsoftedge.crxsoso.com",
// name: 'Edge商店',
// },
// 'firefox': {
// reg: /^https?:\/\/(reviewers\.)?(addons\.mozilla\.org|addons(?:-dev)?\.allizom\.org)\/.*?(?:addon|review)\/([^/<>"'?#]+)/,
// host: /addons\.mozilla\.org/,
// replaceHost: "addons.crxsoso.com",
// name: 'Firefox商店',
// },
// 'microsoft': {
// reg: /^https?:\/\/(?:apps|www).microsoft.com\/(?:store|p)\/.+?\/([a-zA-Z\d]{10,})(?=[\/#?]|$)/,
// host: /(apps|www)\.microsoft\.com/,
// replaceHost: "apps.crxsoso.com",
// name: 'Windows商店',
// }
'lanzou': {
reg: /((?:https?:\/\/)?(?:[a-zA-Z0-9\-.]+)?(?:lanzou[a-z]|lanzn)\.com\/[a-zA-Z\d_\-]+(?:\/[\w-]+)?)/,
host: /(?:[a-zA-Z\d-.]+)?(?:lanzou[a-z]|lanzn)\.com/,
input: ['#pwd'],
button: ['.passwddiv-btn', '#sub'],
name: '蓝奏云',
storage: 'hash'
},
'cowtransfer': {
reg: /((?:https?:\/\/)?(?:[a-zA-Z\d-.]+)?cowtransfer\.com\/s\/[a-zA-Z\d]+)/,
host: /(?:[a-zA-Z\d-.]+)?cowtransfer\.com/,
input: ['.receive-code-input input'],
button: ['.open-button'],
name: '奶牛快传',
storage: 'hash'
},
'ctfile': {
reg: /((?:https?:\/\/)?(?:[a-zA-Z\d-.]+)?(?:ctfile|545c|u062|ghpym|474b)\.com\/\w+\/[a-zA-Z\d-]+)/,
host: /(?:[a-zA-Z\d-.]+)?(?:ctfile|545c|u062|474b)\.com/,
input: ['#passcode'],
button: ['.card-body button'],
name: '城通网盘',
storage: 'hash'
},
'123pan': {
reg: /((?:https?:\/\/)?www\.(123pan|123865|123684)\.com\/s\/[\w-]{6,})/,
host: /www\.123pan\.com/,
input: ['.ca-fot input', ".appinput .appinput"],
button: ['.ca-fot button', ".appinput button"],
name: '123云盘',
storage: 'hash'
},
'wenshushu': {
reg: /((?:https?:\/\/)?(?:www\.wenshushu|ws28)\.cn\/(?:k|box|f)\/\w+)/,
host: /www\.wenshushu\.cn/,
input: ['.pwd-inp .ivu-input'],
button: ['.pwd-inp .ivu-btn'],
name: '文叔叔网盘',
storage: 'hash'
},
// ---new---
feijix: {
reg: /https:\/\/(share\.feijipan\.com|www\.feijix\.com)\/s\/.+/,
host: /feijix\.com|feijipan\.com/,
name: '小飞机网盘'
},
lecloud: {
reg: /https:\/\/lecloud\.lenovo\.com\/share\/.+/,
host: /lenovo\.com/,
name: '联想乐云'
},
fangcloud: {
reg: /https:\/\/v2\.fangcloud\.(com|cn)\/(s|sharing)\/.+/,
host: /fangcloud\.(com|cn)/,
name: '亿方云'
},
ilanzou: {
reg: /https:\/\/www\.ilanzou\.com\/s\/.+/,
host: /ilanzou\.com/,
name: '蓝奏云优享'
},
qqMailTransfer: {
reg: /https:\/\/iwx\.mail\.qq\.com\/ftn\/download\?.+/,
host: /mail\.qq\.com/,
name: 'QQ邮箱中转站'
},
QQsc: {
// qfile.qq.com
reg: /https:\/\/qfile\.qq\.com\/q\/.+/,
host: /qfile\.qq\.com/,
name: 'QQ闪传'
},
pan118: {
reg: /https:\/\/(?:[a-zA-Z\d-]+\.)?118pan\.com\/b.+/,
host: /118pan\.com/,
name: '118网盘'
},
pan115: {
// https://115.com/s/swhyiia3wzi?password=h374
reg: /https:\/\/(115|anxia)\.com\/s\/.+/,
host: /115pan\.com/,
name: '115网盘'
},
onedrive: {
reg: /https:\/\/1drv\.ms\/.+/,
host: /1drv\.ms/,
name: 'OneDrive'
},
googleDrive: {
reg: /https:\/\/drive\.google\.com\/file\/d\/.+\/view\?usp=(sharing|drive_link)?/,
host: /drive\.google\.com/,
name: 'GoogleDrive'
},
icloud: {
reg: /https:\/\/www\.icloud\.com\.cn\/iclouddrive\/([a-zA-Z\d_-]+)(#.+)?/,
host: /www\.icloud\.com\.cn/,
name: 'iCloud',
},
n163Music: {
reg: /https:\/\/163cn\.tv\/.+/,
host: /163cn\.tv/,
name: '网易云音乐分享'
},
qqMusic: {
reg: /https:\/\/y\.qq\.com\/n\/ryqq\/songDetail\/.+/,
host: /y\.qq\.com/,
name: 'QQ音乐歌曲详情'
},
kuwoMusic: {
reg: /https:\/\/(m\.)?kuwo\.cn\/(newh5app\/)?play_detail\/.+/,
host: /kuwo\.cn/,
name: '酷我音乐分享'
},
miguMusic: {
reg: /https:\/\/music\.migu\.cn\/v3\/music\/song\/.+/,
host: /migu\.cn/,
name: '咪咕音乐分享'
},
other: {
reg: /https:\/\/([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\.)+[a-zA-Z]{2,}\/s\/.+/,
host: /.*/,
name: '其他/Cloudreve/可道云'
},
};
let main = {
//正则解析网盘链接
parseLink(text = '') {
let obj = {name: '', link: '', storage: '', storagePwdName: ''};
if (text) {
try {
text = decodeURIComponent(text);
} catch {
}
text = text.replace(/[点點]/g, '.');
text = text.replace(/[\u4e00-\u9fa5(),\u200B\uD83C-\uDBFF\uDC00-\uDFFF]/g, '');
text = text.replace(/lanzous/g, 'lanzouw'); //修正lanzous打不开的问题
for (let name in opt) {
let val = opt[name];
if (val.reg.test(text)) {
let matches = text.match(val.reg);
obj.name = val.name;
obj.link = matches[0];
obj.storage = val.storage;
obj.storagePwdName = val.storagePwdName || null;
if (val.replaceHost) {
obj.link = obj.link.replace(val.host, val.replaceHost);
}
return obj;
}
}
}
return obj;
},
//正则解析提取码
parsePwd(text = '') {
text = text.replace(/\u200B/g, '').replace('%3A', ":");
text = text.replace(/(?:本帖)?隐藏的?内容[:]?/, "");
let reg = /wss:[a-zA-Z0-9]+|(?<=\s*(?:密|提取|访问|訪問|key|password|pwd|#|\?p=)\s*[码碼]?\s*[:=]?\s*)[a-zA-Z0-9]{3,8}/i;
if (reg.test(text)) {
let match = text.match(reg);
return match[0];
}
return '';
},
};
export default {
parseLink: main.parseLink,
parsePwd: main.parsePwd,
opt: opt
}