Free Yun Keys

免掉百度网盘写密码的麻烦,包括解析短网址和跳转链接,多链接支持

目前為 2020-07-24 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Free Yun Keys
// @name:zh      免密百度网盘
// @namespace    http://zszen.github.io/
// @version      4.0
// @description  免掉百度网盘写密码的麻烦,包括解析短网址和跳转链接,多链接支持
// @author       Zszen John
// @include     *
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.deleteValue
// @grant GM_getValue
// @grant GM_setValue
// @note        2020.07-24 v4.0 支持自动下载,可按钮切换
// @note        2020.07-23 v3.0 修复错误, 去掉jquery
// @note        2020.07-21 v1.0 初步支持自动跳转,自动解析链接
// ==/UserScript==

(function() {
    'use strict';
    var label = 'Zszen '
    var isAutoDownload = true;
    var regexp_codeback = /#([a-zA-Z0-9]{4})/
    var regexp_code = /(码|问)[\s|:|:]*([a-zA-Z0-9]{4})/
    var regexp_url = /(https:\/\/pan.baidu.com\/.*?\/(\d|\w|-)+)/
    var url = window.location.href;
    var res = /\/\/(.+?\..*?)(\/|\?)/.exec(url);
    var site = res[1];
    if(site=="pan.baidu.com"){//parse
        var pss = regexp_codeback.exec(url);
        var inputs = ELs('input');
        var as = ELs('a', el=>el.textContent.indexOf('提取文件')>=0);
        if(pss!=null && pss.length>1 && inputs.length>0 && as.length>0){
            console.log(label,'pan get');
            inputs[0].value = pss[1];
            as[0].click()
        }else{
            console.log(label,'pan download');
            //<a class="g-button" data-button-id="b7" data-button-index="4" href="javascript:;" title="举报"><span class="g-button-right"><span class="text" style="width: auto;">举报</span></span></a>
            //ELs('a',el=>{return el.title=='举报'}, el=>el.style.display = 'none');
            var check_simbols = ['x','v']
            ELs('a',el=>{return el.title.indexOf('保存到手机')>=0}, el=>{
                var bl = GM_getValue("auto_download")
                var a = document.createElement('a');
                a.className = 'g-button autodownload'
                a.href="javascript:;"
                a.title="["+check_simbols[bl?1:0]+"]自动下载";
                var span = document.createElement('span')
                span.className = 'g-button-right'
                a.appendChild(span)
                var span2 = document.createElement('span')
                span2.className = 'text'
                span2.style.width = 'auto'
                span.appendChild(span2);
                span2.textContent = a.title
                el.parentElement.insertBefore(a, el.nextElementSibling)
                //
                a.addEventListener('click',()=>{
                    var bl = GM_getValue("auto_download")
                    if(bl==null)bl=false;
                    bl = !bl;
                    GM_setValue("auto_download", bl)
                    a.title="["+check_simbols[bl?1:0]+"]自动下载";
                    span2.textContent = a.title
                });
            })
            setTimeout(()=>{
                var bl = GM_getValue("auto_download")
                if(bl!=true){

                    return;
                }
                var ads = ELs('a', el=>{return el.title=='下载'});
                if(ads.length>0){
                    var sels = ELs('span', el=>el.className == 'EOGexf');
                    for(var i=0; i<sels.length; i++){
                        sels[i].click();
                    }
                    ads[0].click();
                }else{
                    ELs('a', el=>{return el.title.indexOf('下载')>=0})[0].click();
                }
            }, 1000);
        }
    }else{//deal
        console.log(label,'pan find');
        ELs('a',
            (el)=>regexp_code.test(el.parentElement.textContent) && regexp_url.test(el.href),
            el=>{
               var ps = regexp_code.exec(el.parentElement.textContent)
               el.href=el.href+'#'+ps[2]
           }
        );
    }

    function ELs(tagName, conditionFun, dealFun, parent){
        if(parent==null) parent = document;
        var tags = [...parent.getElementsByTagName(tagName)];
        if(conditionFun){
            tags = tags.filter(conditionFun);
        }
        if(dealFun){
            tags.forEach(dealFun);
        }
        return tags;
    }
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址