Free Yun Keys

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

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

// ==UserScript==
// @name         Free Yun Keys
// @name:zh      免密百度网盘
// @namespace    http://zszen.github.io/
// @version      3.1
// @description  免掉百度网盘写密码的麻烦,包括解析短网址和跳转链接,多链接支持
// @author       Zszen John
// @include     *
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    var label = 'Zszen '
    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>0){
            inputs[0].value = pss[1];
            as[0].click()
        }
    }else{//deal
        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){
        var tags = [...document.getElementsByTagName(tagName)];
        if(conditionFun){
            tags = tags.filter(conditionFun);
        }
        if(dealFun){
            tags.forEach(dealFun);
        }
        return tags;
    }
})();