你正在訪問的內容是外部程式的映像位址,僅用於使用者加速訪問,本站無法保證其可靠性。當前的連結位址(單點即可複製)為 https://greasyfork.org.cn/zh-CN/scripts/445489-%E7%BD%91%E7%9B%98%E9%93%BE%E6%8E%A5%E8%AF%86%E5%88%AB,源站連結 點此以跳轉

网盘链接识别

识别网页中显示的网盘链接,目前包括百度网盘、蓝奏云、天翼云、##移动云盘(原:和彩云)、阿里云、文叔叔、奶牛快传、123盘、#讯微云、迅雷网盘、115网盘、夸克网盘、城通网盘(部分)、坚果云、UC网盘、BT磁力,支持蓝奏云、天翼云(需登录)、123盘、奶牛、UC网盘(需登录)、坚果云(需登录)和阿里云盘(需登录,且限制在网盘页面解析)直链获取下载,页面动态监控加载的链接,可自定义规则来识别小众网盘/网赚网盘或其它自定义的链接。

当前为 2024-03-22 提交的版本,查看 最新版本



點此查看下載連結位址https://update.greasyfork.org.cn/scripts/445489/1347235/%E7%BD%91%E7%9B%98%E9%93%BE%E6%8E%A5%E8%AF%86%E5%88%AB.user.js

安装此脚本?
访问作者的支持站点提供反馈或发表评价,或举报此脚本
作者
WhiteSevs
评分
0 0 0
版本
2024.3.22
创建于
2022-05-24
更新于
2024-03-22
大小
507.1 KB
许可证
GPL-3.0-only
适用于
所有网站

🏆声明

本脚本没有百度网盘夸克城通直链解析功能,主体是识别链接,其中百度网盘只有跳转第三方解析百度网盘链接,第三方网站需自行填写!此功能只为方便跳转而已!

本脚本名称是 网盘链接识别,不是解析!!! 本脚本名称是 网盘链接识别,不是解析!!! 本脚本名称是 网盘链接识别,不是解析!!!

🎁演示GIF

网盘链接识别演示.gif

🌈 使用方式

识别出链接时,页面侧边栏会出现一个悬浮按钮。

功能 设备 操作 备注
显示链接界面 PC 点击
手机 点击
显示设置界面 PC 双击/右击后点击设置
手机 双击
显示历史匹配记录 PC 油猴菜单中打开/悬浮按钮右击菜单中选择打开
手机 油猴菜单中打开
显示访问码规则 PC 油猴菜单中打开/悬浮按钮右击菜单中选择打开
手机 油猴菜单中打开
显示自定义规则 PC 油猴菜单中打开/悬浮按钮右击菜单中选择打开
手机 油猴菜单中打开
显示主动识别文本 PC 油猴菜单中打开/悬浮按钮右击菜单中选择打开
手机 油猴菜单中打开
复制链接 PC 链接界面/历史匹配记录界面右击链接
手机 链接界面/历史匹配记录界面长按链接
访问链接 PC 链接界面/历史匹配记录界面右击链接
手机 链接界面/历史匹配记录界面长按链接
修改访问码 PC 链接界面/历史匹配记录界面右击链接 修改后的访问码不会被新匹配到的访问码所替换
手机 链接界面/历史匹配记录界面长按链接

🌍 介绍

📢 总设置

弹窗

文件弹窗

小图标导航

悬浮按钮

Toast

小窗模式

匹配记录

功能

分享码相关

快捷键

网盘 新标签页打开 单文件解析 多文件解析 Scheme转发直链 提取码间隔前(Text/HTML) 提取码间隔后(Text/HTML) 其它功能
https://favicon.yandex.net/favicon/v2/https://pan.baidu.com/?size=16 百度网盘 20/300 10/15 自行配置第三方网站解析
https://favicon.yandex.net/favicon/v2/https://www.lanzoux.com/?size=16 蓝奏云 20/300 10/15
https://favicon.yandex.net/favicon/v2/https://www.ilanzou.com/?size=16 蓝奏云优享 20/300 10/15
https://favicon.yandex.net/favicon/v2/https://cloud.189.cn/?size=16 天翼云 √(需登录) √(需登录) 20/300 10/15
https://favicon.yandex.net/favicon/v2/https://yun.139.com/?size=16 ##移动云盘(原:和彩云) 20/300 10/15
https://favicon.yandex.net/favicon/v2/https://www.aliyundrive.com/?size=16 阿里云 √(需登录,限制在网盘页面解析) √(需登录,限制在网盘页面解析) 20/300 10/15
https://favicon.yandex.net/favicon/v2/https://www.wenshushu.cn/?size=16 文叔叔 20/300 10/15
https://favicon.yandex.net/favicon/v2/https://cowtransfer.com/?size=16 奶牛快传 20/300 10/15
https://favicon.yandex.net/favicon/v2/https://www.123pan.com/?size=16 123云盘 √(文件>100MB则需登录) √(文件>100MB则需登录) 20/300 10/15
https://favicon.yandex.net/favicon/v2/https://www.weiyun.com/?size=16 #讯微云 20/300 10/15
https://favicon.yandex.net/favicon/v2/https://pan.xunlei.com/?size=16 迅雷网盘 20/300 10/15
https://favicon.yandex.net/favicon/v2/http://www.115.com/?size=16 115网盘 20/300 10/15
https://favicon.yandex.net/favicon/v2/https://www.ctfile.com/?size=16 城通网盘 20/300 10/15
https://favicon.yandex.net/favicon/v2/https://pan.quark.cn/?size=16 夸克网盘 20/300 10/15
🚖BT磁力 支持Scheme转发
https://favicon.yandex.net/favicon/v2/https://www.jianguoyun.com/?size=16 坚果云(需登录) 20/300 10/15
https://favicon.yandex.net/favicon/v2/https://onedrive.live.com/?size=16 OneDrive 20/300 10/15
https://favicon.yandex.net/favicon/v2/https://drive.uc.cn/?size=16 UC网盘 √(需登录) √(需登录) 20/300 10/15

🔧 帮助

1. 百度网盘配置

百度网盘链接解析的配置,主要是使用了开源项目https://github.com/yuantuo666/baiduwp-php的网站

参数
网址 网站的 url,末尾带/,如:https://www.example.com/
表单参数 POST请求的表单参数,例如:surl={#shareCode#}&pwd={#accessCode#}&Password=xxxxx,其中参数中存在{#shareCode#}或者{#accessCode#}时,会自动把它们转换成提取码分享码

1710656878147.png

2. Scheme 调用方式

首先开启该设置后,需要在手机上装特定的 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=

3. 什么是提取码文本匹配Text/HTML-间隔前

网盘链接分为两块,分享码提取码,其中,由于网站的网盘链接的多样性,分享码提取码关键字之间可能存在很长的干扰的字符串,比如:👇

https://pan.baidu.com/s/xxxxxxxxxx
这个是干扰字符串
提取码:
本贴的隐藏内容
abcd

那么这个这个是干扰字符串中文就是干扰的字符串,设置间隔长度即为设置分享码提取码关键字之间的最大的干扰字符串长度。 例如这个就需要设置值>8才能匹配到访问码

Text是对应匹配类型普通文本 HTML是对应匹配类型超文本

4. 什么是提取码文本匹配Text/HTML-间隔后

当匹配提取码关键字时,如密码提取码访问码时,它们后面的字母就是访问码,但是有些时候存在干扰字符串,比如:👇

https://pan.baidu.com/s/xxxxxxxxxx
这个是干扰字符串
提取码:
本贴的隐藏内容
abcd

那么这个:\n本贴隐藏内容中文就是干扰的字符串,设置间隔长度即为设置提取码关键字提取码之间的最大干扰字符串长度。 例如这个就需要设置值>9才能匹配到访问码

Text是对应匹配类型普通文本 HTML是对应匹配类型超文本

5. 为什么在设置中开启读取剪贴板且剪贴板中存在网盘链接,但是并没有成功识别?

浏览器Api兼容性查看: https://caniuse.com/mdn-api_permissions_permission_clipboard-read https://caniuse.com/mdn-api_clipboard_readtext

6. 如何配置自定义规则

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;
    /**
     * (可选)用于验证链接有效性
     */
    checkLinkValidity?: boolean;
}
declare interface NetDiskUserCustomRuleSetting {
    name?: string;
    isBlank?: boolean;
}
declare interface NetDiskUserCustomRuleContext {
    /**
     * 当前的规则
     */
    rule: NetDiskUserCustomRule;
    /**
     * 网络请求js文件
     */
    NetDiskRequire: {
        file(path: any, options: any): Promise<boolean>;
    };
    /**
     * 加密使用
     */
    CryptoJS: object;
    /**
     * 网络请求
     */
    httpx: UtilsHttpxConstrustor;
    /**
     * 工具类
     */
    utils: Utils;
    /**
     * 元素工具类
     */
    DOMUtils: DOMUtils;
    /**
     * 上下文的window,在油猴中是被Proxy的window
     */
    window: Window & typeof globalThis;
    /**
     * 页面的window
     */
    unsafeWindow: Window & typeof globalThis;
    /**
     * 用于返回校验状态
     */
    NetDiskCheckLinkValidity: object;
    /**
     * 日志输出
     */
    log: UtilsLogConstructor;
    /**
     * Toast吐司
     */
    Qmsg: object;
    /**
     * 弹窗
     */
    pops: object;
    /**
     * 本规则的数据存储
     */
    setValue(key: string, value: any): void;
    /**
     * 本规则的数据获取
     */
    getValue(key: string): any;
    /**
     * 本规则的数据删除
     */
    deleteValue(key: string): void;
}
declare interface NetDiskUserCustomRule {
    /**
     * 这是需要识别的网盘的唯一key,如果和脚本里的key重复的话会覆盖,如果用户自定义中存在相同的key,将会合并,即一个key匹配多种网盘链接
     */
    key: string;
    /**
     * 用于显示的网盘图标,可以是data:image格式,或者是url图片,如果没有,会是空白图标
     */
    icon: string;
    /**
     * 匹配规则
     */
    regexp: 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前面的域名、路径字符串
            "acceesCodeNotMatch": "^(font|div|xxxx)", // 用于排除肯定不是提取码的关键字
            "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", // 在设置中显示的网盘名
            "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", // 在设置中显示的网盘名
            "isBlank": true // 是否让识别到的网盘链接改为新标签页打开
        }
    },
    ...
]