Raw Source
qip / Autofill access code for pan.baidu.com from ccba.me

// ==UserScript==
// @name         Autofill access code for pan.baidu.com from ccba.me
// @version      0.3
// @updateURL    https://openuserjs.org/meta/qip/My_Script.meta.js
// @description  自动尝试将出处吧的百度盘提取码加入URL,并在百度盘提取页自动填充并提交提取码
// @author       ._.
// @match        *://pan.baidu.com/s*
// @match        *://ccba.me/*
// @run-at		 document-end
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    if (location.href.indexOf('://pan.baidu.com/s') > -1) {
        var accessCode = location.hash.replace('#', '');
        if (accessCode.length == 4) {
            document.getElementById('accessCode').value = accessCode;
            document.getElementById('submitBtn').click();
        }
    } else if (location.href.indexOf('://ccba.me/') > -1) {
        $('div.sc-box').each(function (i, e) {
            e.innerHTML = e.innerHTML.replace(/[^">]http[s]?:\/\/pan.baidu.com\/s[\w\/]*/g, function (i) {return '<a href="' + i + '">' + i + '</a>';});
        });
        var reg = [], accessCodeRegex = /(?:a>.*?[\s::])([\w\d]{4})/g, output = location.href + '\n';
        $('a').each(function (i, e) {
            if (e.href.indexOf('pan.baidu.com/s/') > -1 && e.href.indexOf('#') == -1) {
                var accessCode = [], result;
                while((result = accessCodeRegex.exec($(e).parents('div.sc-box').html())) !== null) {
                    accessCode.push(result[1]);
                }
                if (accessCode) {
                    if (accessCode.length > 1) {
                        if (reg.indexOf(accessCode[accessCode.length - 1]) == -1) {
                            reg = accessCode;
                        }
                        e.href += '#' + reg.shift();
                        output += e.href + '\n';
                    } else {
                        e.href += '#' + accessCode[0];
                        output += e.href + '\n';
                    }
                }
            }
        });
        console.log(output);
    }
})();