您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
识别网页中显示的网盘链接,目前包括百度网盘、蓝奏云、天翼云、中国移动云盘(原:和彩云)、阿里云、文叔叔、奶牛快传、123盘、腾讯微云、迅雷网盘、115网盘、夸克网盘、城通网盘(部分)、坚果云、UC网盘、BT磁力,支持蓝奏云、天翼云(需登录)、123盘、奶牛、UC网盘(需登录)、坚果云(需登录)和阿里云盘(需登录,且限制在网盘页面解析)直链获取下载,页面动态监控加载的链接,可自定义规则来识别小众网盘/网赚网盘或其它自定义的链接。
当前为
本脚本没有百度网盘
、夸克
、城通
的直链解析
功能,主体是识别链接
,其中百度网盘
只有跳转第三方解析百度网盘链接,第三方网站需自行填写!此功能只为方便跳转而已!
本脚本名称是 网盘链接识别
,不是解析
!!!
本脚本名称是 网盘链接识别
,不是解析
!!!
本脚本名称是 网盘链接识别
,不是解析
!!!
识别出链接时,页面侧边栏会出现一个悬浮按钮。
功能 | 设备 | 操作 | 备注 |
---|---|---|---|
显示链接界面 | PC | 点击 |
|
手机 | 点击 |
||
显示设置界面 | PC | 双击/右击 后点击设置 |
|
手机 | 双击 |
||
显示历史匹配记录 | PC | 油猴菜单中打开/悬浮按钮右击菜单中选择打开 | |
手机 | 油猴菜单中打开 | ||
显示访问码规则 | PC | 油猴菜单中打开/悬浮按钮右击菜单中选择打开 | |
手机 | 油猴菜单中打开 | ||
显示自定义规则 | PC | 油猴菜单中打开/悬浮按钮右击菜单中选择打开 | |
手机 | 油猴菜单中打开 | ||
显示主动识别文本 | PC | 油猴菜单中打开/悬浮按钮右击菜单中选择打开 | |
手机 | 油猴菜单中打开 | ||
复制链接 | PC | 链接界面/历史匹配记录界面右击链接 |
|
手机 | 链接界面/历史匹配记录界面长按链接 |
||
访问链接 | PC | 链接界面/历史匹配记录界面右击链接 |
|
手机 | 链接界面/历史匹配记录界面长按链接 |
||
修改访问码 | PC | 链接界面/历史匹配记录界面右击链接 |
修改后的访问码不会被新匹配到的访问码所替换 |
手机 | 链接界面/历史匹配记录界面长按链接 |
手机,电脑均可使用
15
种动画0.6
秒~5
秒,默认0.8
秒),建议如果是视频网站比如bilibili
,加入黑名单,播放视频会卡innerText
)或间隔的字符(innerHTML
),恢复默认值存储匹配记录
,开启后所有匹配到的网盘链接都可以在设置中打开历史匹配记录
打开,可以查看到匹配的网盘链接
、网站
、搜索过滤
等访问码规则
,可自定义规则在xxx
网站下的xxx
网盘的访问码固定为xxx
弹窗
动画
:设置弹窗显示/隐藏的过渡动画点击弹窗遮罩层关闭弹窗
:开启后可以直接点击遮罩层关闭弹窗拖拽窗口
:可以点击标题来移动弹窗窗口限制拖拽距离
:当开启时,弹窗窗口将会限制它的拖拽上下左右的最大值文件弹窗
排序名
:一般是多文件直链弹窗
的显示的文件夹
和文件
的排序,自动记忆选择的排序规则排序规则
:一般是多文件直链弹窗
的显示的文件夹
和文件
的排序,自动记忆选择的排序规则小图标导航
点击定位分享码
:在识别的链接弹窗内,点击网盘小图标可以定位到页面中的包含该分享码的元素中的位置并且页面会滚动至元素选中分享码
:光标选中包含分享码的元素,如果是#text元素,则选中分享码文字循环定位
:关闭则每个包含分享码的元素只定位一次悬浮按钮
大小
:设置悬浮按钮的大小(15px
~250px
)透明度
:设置悬浮按钮的透明度(0.1~1),数值越低悬浮按钮越透明背景轮播时间
:当匹配到多个网盘链接时,会按本值时间进行切换已匹配到的网盘图标背景显示时间
:当匹配到多个网盘链接时,会按照本值设置网盘图标显示的停留时间吸附边缘
:移动悬浮按钮松开后自动吸附在浏览器的边缘Toast
位置
:设置Toast显示的位置,如:顶部、底部、中间同时显示最多数量
:设置Toast最多同时显示的数量逆序弹出
:设置Toast显示的顺序小窗模式
宽度
:设置小窗宽度(px)高度
:设置小窗最大高度(px)匹配记录
修复存储记录
:如果【匹配记录】弹窗打不开,可能是存储的数据缺失某些字段,可尝试点击此处进行修复排序规则
:排序保存匹配记录
:将匹配到的链接信息进行本地存储,可点击【油猴菜单-⚙ 历史匹配记录】进行查看功能
行为模式
:当匹配到网盘链接会触发UI显示,该选项可选择需要触发的UI匹配间隔
:监听网页动态加载来进行匹配,值越大每次匹配的间隔时间越长,请设置合适的时间,值太小可能会导致浏览器卡顿,(0.6秒~5秒)匹配类型
:可选择普通文本innerText
(默认)、超文本innerHTML
和全部(包括innerText
和innerHTML
)读取剪贴板
:读取剪贴板内容,识别网盘链接(注意:只在https内生效,详情请看)
读取剪贴板权限申请和直接读取剪贴板自动输入访问码
:开启后可通过右击
或长按
出现的菜单选项访问链接
,如果存在访问码,将自动填入访问码,目前存在部分网盘未实现自动填入(没找到这个网盘的存在链接的)获取重定向后的直链
:开启后可对某些网盘直链解析链接进行重定向后的链接获取允许匹配当前URL
:开启后会每次加载时额外匹配当前URL地址,比如蓝奏云链接添加元素时进行匹配
:开启后当监听到页面添加元素时才进行匹配文本分享码相关
相同系数
:例如分享码: aaaaaaaabb,它的相同系数是0.8,设置相同系数≥0.8时会被排除排除分享码
:启用后会根据【相同系数】排除掉匹配到的分享码快捷键
打开设置界面
:点击右边按钮来设置快捷键打开设置
界面,如果已存在设置的快捷键,再次点击可删除设置的快捷键打开历史匹配记录
:点击右边按钮来设置快捷键打开历史匹配记录
界面,如果已存在设置的快捷键,再次点击可删除设置的快捷键打开访问码规则
:点击右边按钮来设置快捷键打开自定义访问码规则
界面,如果已存在设置的快捷键,再次点击可删除设置的快捷键打开用户自定义规则
:点击右边按钮来设置快捷键打开自定义规则
界面,如果已存在设置的快捷键,再次点击可删除设置的快捷键打开主动识别文本
:点击右边按钮来设置快捷键打开主动识别文本
界面,如果已存在设置的快捷键,再次点击可删除设置的快捷键百度网盘链接解析的配置,主要是使用了开源项目https://github.com/yuantuo666/baiduwp-php的网站
参数 | 值 |
---|---|
网址 | 网站的 url,末尾带/,如:https://www.example.com/ |
表单参数 | POST请求的表单参数,例如:surl={#shareCode#}&pwd={#accessCode#}&Password=xxxxx ,其中参数中存在{#shareCode#} 或者{#accessCode#} 时,会自动把它们转换成提取码 和分享码 |
首先开启该设置后,需要在手机上装特定的 app https://baiqi.lanzoul.com/b066di6gb 密码:bzyb
该链接格式为jumpwsv://go?package={#package#}&activity={#activity#}&intentAction={#intentAction#}&intentData=网盘链接&intentExtra={#intentExtra#}
参数 | 值 |
---|---|
{#package#} | App包名 |
{#activity#} | App的Activity入口 |
{#intentAction#} | Activity Action Intent常量,一般是android.intent.action.VIEW |
{#intentExtra#} | 可以为空,若使用,则为{"参数1":"值1","参数2":"值2"} ,注意& 换成{-and-} ,# 换成{-number-} |
下面几个是示例 scheme 链接,可以直接复制粘贴到里面去
jumpwsv://go?package=idm.internet.download.manager.plus&activity=idm.internet.download.manager.UrlHandlerDownloader&intentAction=android.intent.action.VIEW&intentData={#intentAction#}&intentExtra=
jumpwsv://go?package=idm.internet.download.manager.plus&activity=acr.browser.lightning.activity.BrowserLauncher&intentAction=android.intent.action.VIEW&intentData={#intentAction#}&intentExtra=
jumpwsv://go?package=idm.internet.download.manager.plus&activity=acr.browser.lightning.activity.IncognitoActivity&intentAction=android.intent.action.VIEW&intentData={#intentAction#}&intentExtra=
jumpwsv://go?package=com.dv.adm&activity=com.dv.get.AEditor&intentAction=android.intent.action.VIEW&intentData={#intentAction#}&intentExtra=
jumpwsv://go?package=com.dv.adm&activity=com.dv.get.WebBrow&intentAction=android.intent.action.VIEW&intentData={#intentAction#}&intentExtra=
jumpwsv://go?package=com.xunlei.downloadprovider
&activity=com.xunlei.downloadprovider.launch.dispatch.mocklink.LinkDLBtFileExplorerActivity&intentAction=android.intent.action.VIEW&intentData={#intentAction#}&intentExtra=
Text/HTML
-间隔前
?网盘链接分为两块,分享码
和提取码
,其中,由于网站的网盘链接的多样性,分享码
和提取码关键字
之间可能存在很长的干扰的字符串,比如:👇
https://pan.baidu.com/s/xxxxxxxxxx
这个是干扰字符串
提取码:
本贴的隐藏内容
abcd
那么这个这个是干扰字符串
中文就是干扰的字符串,设置间隔长度即为设置分享码
和提取码关键字
之间的最大的
干扰字符串长度。
例如这个就需要设置值>8
才能匹配到访问码
Text
是对应匹配类型
为普通文本
HTML
是对应匹配类型
为超文本
Text/HTML
-间隔后
?当匹配提取码关键字时,如密码
、提取码
、访问码
时,它们后面的字母就是访问码,但是有些时候存在干扰字符串,比如:👇
https://pan.baidu.com/s/xxxxxxxxxx
这个是干扰字符串
提取码:
本贴的隐藏内容
abcd
那么这个:\n本贴隐藏内容
中文就是干扰的字符串,设置间隔长度即为设置提取码关键字
和提取码
之间的最大干扰字符串长度。
例如这个就需要设置值>9
才能匹配到访问码
Text
是对应匹配类型
为普通文本
HTML
是对应匹配类型
为超文本
读取剪贴板
且剪贴板中存在网盘链接,但是并没有成功识别?浏览器Api兼容性查看: https://caniuse.com/mdn-api_permissions_permission_clipboard-read https://caniuse.com/mdn-api_clipboard_readtext
declare interface NetDiskAutoFillAccessCodeOption {
/** 链接 */
url: string;
/** 规则名 */
netDiskName: string;
/** 规则下标 */
netDiskIndex: number;
/** 分享码 */
shareCode: string;
/** 访问码 */
accessCode: string;
}
declare interface NetDiskUserCustomRuleRegexp {
/**
* 当设置中匹配类型为文本/全部,使用该规则
*/
link_innerText: string;
/**
* 当设置中匹配类型为超文本/全部,使用该规则
*/
link_innerHTML: string;
/**
* 用于提取出shareCode
*/
shareCode: string;
/**
* 用于删除提取出的shareCode前面的域名、路径字符串
*
* 会自动进行正则转换,正则模式ig
*/
shareCodeNeedRemoveStr: string;
/**
* 用于判断提取码是否存在
*
* 会自动进行正则转换,正则模式ig
*/
checkAccessCode?: string;
/**
* 匹配提取码
*
* 会自动进行正则转换,正则模式ig
*/
accessCode?: string;
/**
* 用于排除肯定不是提取码的关键字
*
* 会自动进行正则转换,正则模式ig
*/
acceesCodeNotMatch?: string;
/**
* (可选)用于对matchText进行提取需要的关键内容
*
* 会自动进行正则转换,正则模式i
*
* 提取到的内容会被转换成以下格式,可在uiLinkShow、blank、copyUrl中使用
* + 类似:{#$1#}、{#$2#}...
*/
paramMatch?: string,
/**
* 显示出的链接
*/
uiLinkShow: string;
/**
* 用于超链接打开,提取码会自动复制到剪贴板
*/
blank: string;
/**
* 用于复制到剪贴板
*/
copyUrl: string;
}
declare interface NetDiskUserCustomRuleSetting {
/**
* 规则名-不需要和key相同,主要用于显示的
* + 左侧栏显示
* + 顶部标题栏显示
*/
name: string;
/**
* 提取码间隔前的字符长度
*
* 作用于规则-link_innerText,占位字符串{#innerTextAccessCodeBeforeMaxRange#}
*
* 【提取码文本匹配Text】-【间隔前】
*
* 键: `${key}_innerText_accessCode_before_max_range`
*/
innerTextAccessCodeBeforeMaxRange?: number;
/**
* 提取码间隔后的字符长度
*
* 作用于规则-link_innerText,占位字符串{#innerTextAccessCodeAfterMaxRange#}
*
* 【提取码文本匹配Text】-【间隔后】
*
* 键: `${key}_innerText_accessCode_after_max_range`
*/
innerTextAccessCodeAfterMaxRange?: number;
/**
* 提取码间隔前的字符长度
*
* 作用于规则-link_innerHTML,占位字符串{#innerHTMLAccessCodeBeforeMaxRange#}
*
*
* 【提取码文本匹配HTML】-【间隔前】
*
* 键: `${key}_innerHTML_accessCode_before_max_range`
*/
innerHTMLAccessCodeBeforeMaxRange?: number;
/**
* 提取码间隔后的字符长度
*
* 作用于规则-link_innerHTML,占位字符串{#innerHTMLAccessCodeAfterMaxRange#}
*
* 【提取码文本匹配HTML】-【间隔后】
*
* 键: `${key}_innerHTML_accessCode_after_max_range`
*/
innerHTMLAccessCodeAfterMaxRange?: number;
/**
* 是否启用
*
* 【功能】-【启用】
*
* 键: `${key}-enable`
*/
enable: boolean;
/**
* 是否新标签页打开
*
* 【功能】-【新标签页打开】
*
* 键: `${key}-open-enable`
*/
isBlank?: boolean;
/**
* 通过新标签页打开时,复制访问码
*
* 【功能】-【跳转时携带访问码】
*
* 键: `${key}-open-blank-with-copy-accesscode`
*/
openBlankWithCopyAccessCode?: boolean;
/**
* 是否开启scheme转发
*
* 【功能】-【Scheme转发直链】
*
* 键: `${key}-static-scheme-enable`
*/
isForward?: boolean;
/**
* scheme的格式
*
* 【功能】-【Scheme链接】
*
* 键: `${key}-static-scheme-uri`
*/
schemeUri?: boolean;
/**
* 验证链接有效性
*
* 需要配置`setting.checkLinkValidityFunction`
*
* 【功能】-【验证链接有效性】
*
* 键: `${key}-check-link-valid`
*/
checkLinkValidity?: boolean;
}
declare interface NetDiskUserCustomRule {
/**
* 这是需要识别的网盘的唯一key,如果和脚本里的key重复的话会覆盖,如果用户自定义中存在相同的key,将会合并,即一个key匹配多种网盘链接
*/
key: string;
/**
* 用于显示的网盘图标,可以是data:image格式,或者是url图片,如果没有,会是空白图标
*/
icon: string;
/**
* 匹配规则
*/
regexp: NetDiskUserCustomRuleRegexp | NetDiskUserCustomRuleRegexp[];
/**
* 设置
*/
setting: NetDiskUserCustomRuleSetting;
/**
* (可选)验证链接有效性的函数
* + `参数1`: netDiskIndex: number
* + `参数2`: shareCode: string
* + `参数3`: accessCode: string
*
* `this`是`NetDiskUserCustomRuleContext`对象:
*
* `@returns`返回值必须是NetDiskCheckLinkValidity.status内的任意属性值
* 其中包括
* + this.NetDiskCheckLinkValidity.status.loading
* + this.NetDiskCheckLinkValidity.status.success
* + this.NetDiskCheckLinkValidity.status.error
* + this.NetDiskCheckLinkValidity.status.failed
* + this.NetDiskCheckLinkValidity.status.needAccessCode
* + this.NetDiskCheckLinkValidity.status.unknown
* @example
* return this.NetDiskCheckLinkValidity.status.unknown;
*/
checkLinkValidityFunction?: string;
/**
* (可选)鉴权函数,运行于页面加载完毕,可在这里来获取需要的值并存储
* @example
* if(window.location.hostname === "pan.baidu.com"){
* if(typeof this.unsafeWindow.localStorage.getItem("xxxxxx") === "string"){
* this.setValue("baidu-xxxx",this.unsafeWindow.localStorage.getItem("xxxxxx"));
* }
* }
*/
AuthorizationFunction?: string;
/**
* (可选)自动添加访问码函数
* 通过NetDiskParse.blank函数来打开网盘链接会触发该函数执行
* 会判断条件,需要满足=>key相同、accessCode不为空、开启自动输入访问码功能、网址中存在该shareCode
* + `参数1`: netDiskInfo: NetDiskAutoFillAccessCodeOption
*/
AutoFillAccessCodeFunction?: string;
/**
* (可选)解析网盘链接函数
* 需要强制返回this
* 入口函数为`init`
* + `参数1`: netDiskIndex: number
* + `参数2`: shareCode: string
* + `参数3`: accessCode: string
* @example
* let that = this;
* this.init = async function(netDiskIndex, shareCode, accessCode){
* console.log(netDiskIndex, shareCode, accessCode);
* }
* return this;
*/
parseFunction?: string;
}
{
"key": "test1", // 这是需要识别的网盘的唯一key,如果和脚本里的key重复的话会覆盖,如果用户自定义中存在相同的key,将会合并,即一个key匹配多种网盘链接
"icon": "", // (可选)用于显示的网盘图标,可以是data:image格式,或者是url图片,如果没有,会是空白图标
"regexp": { // 匹配规则
"link_innerText": "www.test.com/file/\\?surl=([0-9a-zA-Z])+", // 当设置中匹配类型为文本/全部,使用该规则
"link_innerHTML": "www.test.com/file/\\?surl=([0-9a-zA-Z])+", // 当设置中匹配类型为超文本/全部,使用该规则
"shareCode": "www.test.com/file/\\?surl=([0-9a-zA-Z])+", // 用于提取出shareCode
"shareCodeNeedRemoveStr": "^www.test.com/file/\\?surl=", // 用于删除提取出的shareCode前面的域名、路径字符串
"uiLinkShow": "https://www.test.com/file/?surl={#shareCode#}", // 显示出的链接
"blank": "https://www.test.com/file/?surl={#shareCode#}", // 用于超链接打开
"copyUrl": "https://www.test.com/file/?surl={#shareCode#}", // 用于复制到剪贴板
},
"setting": { // 设置
"name": "wangpantest1", // 在设置中显示的网盘名
"enable": true, // 是否启用
"isBlank": true // 是否让识别到的网盘链接改为新标签页打开
}
}
{ // 存在提取码的
"key": "test2", // 这是需要识别的网盘的唯一key,如果和脚本里的key重复的话会覆盖,如果用户自定义中存在相同的key,将会合并,即一个key匹配多种网盘链接
"icon": "https://www.test2.com/favicon.ico", // 用于显示的网盘图标,可以是data:image格式,或者是url图片,如果没有,会是空白图标
"regexp": { // 匹配规则
"link_innerText": "www.test2.com/file/\\?surl=([0-9a-zA-Z])+[\\s\\S]{0,20}(密码|访问码|提取码)[\\s\\S]{0,10}[0-9a-zA-Z]{4}|)", // 当设置中匹配类型为文本/全部,使用该规则
"link_innerHTML": "www.test2.com/file/\\?surl=([0-9a-zA-Z])+[\\s\\S]{0,100}(密码|访问码|提取码)[\\s\\S]{0,15}[0-9a-zA-Z]{4}|)", // 当设置中匹配类型为超文本/全部,使用该规则
"shareCode": "www.test2.com/file/\\?surl=([0-9a-zA-Z])+", // 用于提取出shareCode
"shareCodeNeedRemoveStr": "^www.test2.com/file/\\?surl=", // 用于删除提取出的shareCode前面的域名、路径字符串
"checkAccessCode": "(密码|访问码|提取码)[\\s\\S]+", // 用于判断提取码是否存在
"accessCode": "([0-9a-zA-Z]{4})", // 匹配提取码
"acceesCodeNotMatch": "^(font|div|xxxx)", // 用于排除肯定不是提取码的关键字
"uiLinkShow": "https://www.test2.com/file/?surl={#shareCode#} 提取码:{#accessCode#}", // 显示出的链接
"blank": "https://www.test2.com/file/?surl={#shareCode#}", // 用于超链接打开,提取码会自动复制到剪贴板
"copyUrl": "链接:https://www.test2.com/file/?surl={#shareCode#}\n密码:{#accessCode#}", // 用于复制到剪贴板
},
"setting": { // 设置
"name": "wangpantest2", // 在设置中显示的网盘名
"enable": true, // 是否启用
"isBlank": true // 是否让识别到的网盘链接改为新标签页打开
}
}
{
"key": "feimaoyun",
"icon": "https://www.feimaoyun.com/favicon.ico",
"regexp": [
{
"link_innerText": "feimaoyun.com/s/([0-9a-zA-Z]+)",
"link_innerHTML": "feimaoyun.com/s/([0-9a-zA-Z]+)",
"shareCode": "feimaoyun.com/s/([0-9a-zA-Z]+)",
"shareCodeNeedRemoveStr": "^feimaoyun.com/s/",
"uiLinkShow": "https://www.feimaoyun.com/s/{#shareCode#}",
"blank": "https://www.feimaoyun.com/s/{#shareCode#}",
"copyUrl": "https://www.feimaoyun.com/s/{#shareCode#}"
},
{
"link_innerText": "feimaoyun.com/#/s/([0-9a-zA-Z]+)",
"link_innerHTML": "feimaoyun.com/#/s/([0-9a-zA-Z]+)",
"shareCode": "feimaoyun.com/#/s/([0-9a-zA-Z]+)",
"shareCodeNeedRemoveStr": "^feimaoyun.com/#/s/",
"uiLinkShow": "https://www.feimaoyun.com/s/{#shareCode#}",
"blank": "https://www.feimaoyun.com/s/{#shareCode#}",
"copyUrl": "https://www.feimaoyun.com/s/{#shareCode#}"
}
],
"setting": {
"name": "飞猫盘",
"enable": true,
"isBlank": true,
"openBlankWithCopyAccessCode": true,
},
}
或者单条规则
{
"key": "feimaoyun",
"icon": "https://www.feimaoyun.com/favicon.ico",
"regexp": {
"link_innerText": "feimaoyun.com(/#|)/s/([0-9a-zA-Z]+)",
"link_innerHTML": "feimaoyun.com(/#|)/s/([0-9a-zA-Z]+)",
"shareCode": "feimaoyun.com(/#|)/s/([0-9a-zA-Z]+)",
"shareCodeNeedRemoveStr": "^feimaoyun.com(/#|)/s/",
"uiLinkShow": "https://www.feimaoyun.com/s/{#shareCode#}",
"blank": "https://www.feimaoyun.com/s/{#shareCode#}",
"copyUrl": "https://www.feimaoyun.com/s/{#shareCode#}"
},
"setting": {
"name": "飞猫盘",
"enable": true,
"isBlank": true,
"openBlankWithCopyAccessCode": true,
},
}