360,百度网盘链接

360,百度网盘链接自动添加访问密码

As of 2015-10-13. See the latest version.

// ==UserScript==
// @name        360,百度网盘链接
// @author      林岑影
// @description 360,百度网盘链接自动添加访问密码
// @namespace   
// @icon        http://disk.yun.uc.cn/favicon.ico
// @license     GPL version 3
// @encoding    utf-8
// @date        18/07/2015
// @modified    09/10/2015
// @include     *
// @exclude     http://pan.baidu.com/*
// @exclude     http://yunpan.360.cn/*
// @exclude     http://yunpan.cn/*
// @grant       unsafeWindow
// @grant       GM_setClipboard
// @run-at      document-end
// @version     2.0.2
// ==/UserScript==

(function(window){
    var autoHash = function(){

    };
    autoHash.prototype = {
        init: function(){
            var toolbar = document.querySelector("body");
            toolbar.addEventListener("click", hash.delegate(hash.buttonsFilter, hash.buttonHandler));
        },
        delegate: function(criteria, listener) {
            return function (e) {
                var el = e.target;
                if (criteria(el)) {
                    e.delegateTarget = el;
                    listener.apply(this, arguments);
                }
                return;
            };
        },
        buttonsFilter: function(elem) {
            var href = elem.getAttribute("href");
            return href && (href.indexOf("pan.baidu.com/s/") > 0 || href.indexOf("yunpan.cn") > 0);
        },
        buttonHandler: function(e) {
            var a    = e.delegateTarget,
                link = a.getAttribute("href");
            if (link.indexOf("#")>-1) return true;
            var text = a.parentNode.innerText,
                re = /(码)[\s|:|:]*([a-zA-Z0-9]{4,4})([\s]+|$)/g,
                r = re.exec(text);
            if (r && r[2]) {
                a.setAttribute("href", link+"#"+r[2]);
            }
        }
    };
    var hash = new autoHash();
    hash.init();
}(window));