Sleazy Fork is available in English.

Create Download Links for HACG (https)

琉璃神社、灵梦御所、纯爱计划神秘代码转换成下载链接(https版)

Ajankohdalta 19.9.2016. Katso uusin versio.

// ==UserScript==
// @name        Create Download Links for HACG (https)
// @namespace   hoothin
// @description 琉璃神社、灵梦御所、纯爱计划神秘代码转换成下载链接(https版)
// @author      天涯倦客
// @supportURL http://t.qq.com/HeartBlade
// @include     http*://www.hacg.*/wordpress/*
// @include     http*://hacg.*/wordpress/*
// @include     http*://www.hacg.*/wp/*
// @include     http*://hacg.*/wp/*
// @include     http*://blog.reimu.net/*
// @include     http*://pan.baidu.com/share/*
// @include     http*://pan.baidu.com/s/*
// @include     http*://sexacg.com/*
// @version     3.16
// @grant       none
// @run-at      document-end
// ==/UserScript==
(function(){
    //度盘填充提取码
    if(/baidu/.test(location.href)){
        if(location.hash.slice(1)){
            document.querySelector("#accessCode").value=location.hash.slice(1);
            document.querySelector('#submitBtn').click();
        }
        return;
    }

    if (location.href.indexOf(".reimu.") != -1){
        document.querySelector("#main").bind('DOMNodeInserted', function(e) {
            var pre = document.querySelector("pre");
            if (pre.length>0 && document.querySelector("#blockBtn").length===0) {
                var blockBtn=document.createElement("button");
                blockBtn.id="blockBtn";
                blockBtn.type="button";
                blockBtn.textContent="好孩子看不到";
                blockBtn.style="padding:4px 0;position: relative;width:120px;";
                pre.before(blockBtn);

                var oldDriver = document.querySelector(".entry-content")[0];
                var txt=oldDriver.innerHTML.toString();
                if(regObj.btih.test(txt)){
                    var magH=txt.match(regObj.btih);
                    for (j=0;j<magH.length;j++){
                        linkArr.btih=hashFunc(magH[j])[3]+'<a href="magnet:?xt=urn:btih:'+hashFunc(magH[j])[2]+'" >磁力链接 </a>';
                        linkArr.btih+=' →<a href="http://www.torrent.org.cn/Home/Convert/magnet2torrent.html?hash='+hashFunc(magH[j])[2]+'" target="_blank" title="需要先注册登陆">【下载种子】</a>';
                        linkArr.btih+=' <a href="http://www.btaia.com/torrent/detail/hash/'+hashFunc(magH[j])[2]+'" target="_blank" title="支持Base32,可查看种子内容,需要验证码,长期Invalid CAPTCHA token">【种子详情】</a>';

                        txt=txt.replace(magH[j],linkArr.btih);
                    }
                }
                //度娘
                txt=txt.replace(regObj.bdshare,linkArr.baidu);
                //好盘
                txt=txt.replace(regObj.howfile,linkArr.howf);
                //短链接
                txt=txt.replace(regObj.tcn,linkArr.tcn);
                //115
                txt=txt.replace(regObj.yyw,linkArr.yyw);
                //mega
                txt=txt.replace(regObj.mega,linkArr.mega);
                oldDriver.innerHTML=txt;

                var link;
                if (document.querySelectorAll) {
                    link = document.querySelectorAll('a');
                } else {
                    link = document.getElementsByTagName('a');
                }
                for (var i = 0, k = link.length; i < k; i++) {
                    var target=link[i];
                    if(/baidu.com/i.test(target.href)&&!/(?:eyun|tieba)\.baidu\.com/i.test(target.href)&&!/#/i.test(target.href)){	//正则校验匹配的网盘,豁免 百度企业云盘
                        if(codeRule.test(target.textContent)){
                            target.href+='#'+extCode(target);
                        } else if(target.nextSibling&&codeRule.test(target.nextSibling.textContent)){
                            if(!/#\S+/i.test(target.href)){
                                target.href+=/#/i.test(target.href)?extCode(target.nextSibling):('#'+extCode(target.nextSibling));
                            }
                        } else if(codeRule.test(target.parentNode.textContent)){
                            if(!/#\S+/i.test(target.href)) target.href+=/#/i.test(target.href)?extCode(target.nextSibling):('#'+extCode(target.nextSibling));
                        } else {
                            var j = 0,
                                maxParent = 5,	//向上遍历的层级
                                parent = target;
                            while(j<maxParent) {
                                j++;									//遍历计数
                                parent = parent.parentNode;			//取得父对象
                                if(parent.tagName=="TR") {				//如果父对象是表格,则从表格中提取密码
                                    if(codeRule.test(parent.nextElementSibling.textContent)) {
                                        parent=parent.nextElementSibling;
                                        target.href+='#'+extCode(parent);
                                        break;
                                    }
                                } else if(codeRule.test(parent.textContent)) {		//否则按照常规方式提取密码
                                    target.href+='#'+extCode(parent);
                                    break;
                                }
                                if(parent==document.body) break;		//如果已经遍历到最顶部,停止遍历
                            }
                        }
                    }
                }


                document.querySelector("#blockBtn").click(function(){
                    if(this.nextSibling.style.display == 'block'){
                        this.nextSibling.style.display = '';
                    }else{
                        this.nextSibling.style.display = 'block';
                    }
                });
            }


        });
        var pre = document.querySelector("pre");
        if (pre.length>0 && document.querySelector("#blockBtn").length===0) {
            var blockBtn=document.createElement("button");
            blockBtn.id="blockBtn";
            blockBtn.type="button";
            blockBtn.textContent="好孩子看不到";
            blockBtn.style="padding:4px 0;position: relative;width:120px;";
            pre.before(blockBtn);
        }
    }

    var i;
    //防爆补丁
    var feiZao=document.getElementsByTagName("p1");
    var fZLength=feiZao.length;
    if (!!fZLength){
        for (i=0;i<fZLength;i++){
            feiZao[0].parentNode.removeChild(feiZao[0]);
        }
    }
    //老司机
    var oldDriver = document.getElementsByClassName('toggle-box')[0];
    oldDriver = oldDriver?oldDriver:document.getElementsByClassName('entry-content')[0];
    if(location.href.indexOf("sexacg.") != -1)oldDriver=document.getElementsByTagName('p')[4];
    var regObj={	//用于匹配的正则
        btih:/(?:[^\/=\|])([a-fA-F0-9]{40})/g,
        bdshare:/b?\/s\/(\w{8})(?:\s+(\w{4}))?(?![\">])/g,	//度娘 类型:/s/1i31aCbb  b/s/1i31aCbb  >>>其后非?!xxx
        howfile:/@?(?:HF|howfile)\/file\/(\w{4,10})\/(\w{8,})\/?/gi, //好盘 类型I:@HF/file/61dbeea7/0c7f2f56/  @howfile/file/61dbeea7/0c7f2f56/
        tcn:/\bt\/(\w{7})/g, //t.cn短链接 类型I:t/RZEWYLu
        yyw:/(\/lb\/)?(5lb[a-zA-Z0-9]{8,12})/g,  //115礼包:/lb/5lbeo3p8eh02
        mega:/(?:\.co)?(\.nz\/(#[\w!-]{22,}))/g      //.co.nz/#!AZcSmbJA!Q5ZbtIDoQecZc_3Cmc2v_vMaLFJRO6Ctd7uaWdWKqK0
        //.nz/#F!Cw9HSQCR!GgOIg9e9FNQGSplRDNxWDw
    };
    var linkArr=[]; //用于替换的链接
    //linkArr.btih='<a href="magnet:?xt=urn:btih:$1$2">磁链:$1$2</a>';
    linkArr.btih='';//未定义
    linkArr.baidu="<a href='http://pan.baidu.com/s/$1#$2' target='_blank'>度娘:$1</a> $2";
    linkArr.howf="<a href='http://howfile.com/file/$1/$2/' target='_blank'>好盘:howfile.com/file/$1/$2</a>";
    linkArr.tcn="<a href='http://t.cn/$1' target='_blank'>短链:t.cn/$1</a>";
    linkArr.yyw="<a href='http://115.com/lb/$2' target='_blank'>115礼包:$2</a> ";
    linkArr.mega="<a href='https://mega.co$1' target='_blank'>MEGA网盘:$2</a>";
    var txt=oldDriver.innerHTML;
    //磁链
    function hashFunc(hash){  //hash操作
        hashWord=hash.match(/^\W*/g)[0];
        hash=hash.replace(/[\s\W]*/g, "").toUpperCase();
        hashStart=hash.slice(0,2);
        hashEnd=hash.slice(-2);
        return [hashStart,hashEnd,hash,hashWord];
    }

    if(regObj.btih.test(txt)){
        var magH=txt.match(regObj.btih);
        for (j=0;j<magH.length;j++){
            linkArr.btih=hashFunc(magH[j])[3]+'<a href="magnet:?xt=urn:btih:'+hashFunc(magH[j])[2]+'" >磁力链接 </a>';
            linkArr.btih+=' →<a href="http://www.torrent.org.cn/Home/Convert/magnet2torrent.html?hash='+hashFunc(magH[j])[2]+'" target="_blank" title="需要先注册登陆">【下载种子】</a>';
            linkArr.btih+=' <a href="http://www.btaia.com/torrent/detail/hash/'+hashFunc(magH[j])[2]+'" target="_blank" title="支持Base32,可查看种子内容,需要验证码,长期Invalid CAPTCHA token">【种子详情】</a>';

            txt=txt.replace(magH[j],linkArr.btih);
        }
    }

    //度娘
    txt=txt.replace(regObj.bdshare,linkArr.baidu);
    //好盘
    txt=txt.replace(regObj.howfile,linkArr.howf);
    //短链接
    txt=txt.replace(regObj.tcn,linkArr.tcn);
    //115
    txt=txt.replace(regObj.yyw,linkArr.yyw);
    //mega
    txt=txt.replace(regObj.mega,linkArr.mega);
    oldDriver.innerHTML=txt;

    var codeRule = /(?:提取|访问|密|艾)[码碼]?\s*[:: ]?\s*([a-z\d]{4}|\S*)/i;
    function extCode(obj){
        text=obj.textContent.trim();
        var rule=new RegExp('(?:提取|访问)[码碼]?\s*[:: ]?\\s*([a-z\\d]{4})','i');
        return rule.test(text)?text.match(rule)[1]:text.match(codeRule)[1];	//首先尝试使用 提取码|访问码 作为密码匹配的关键字,无效时则使用更完整的匹配规则
    }

    var link;
    if (document.querySelectorAll) {
        link = document.querySelectorAll('a');
    } else {
        link = document.getElementsByTagName('a');
    }
    for (var i = 0, k = link.length; i < k; i++) {
        if (/.*http:.*\.hacg\./i.test(link[i].outerHTML)) {
            link[i].href = link[i].outerHTML.match(/(?<=href=").*?(?=")/i)[0].replace(/http/, 'https');
        }
        var target=link[i];
        if(/baidu.com/i.test(target.href)&&!/(?:eyun|tieba)\.baidu\.com/i.test(target.href)&&!/#/i.test(target.href)){	//正则校验匹配的网盘,豁免 百度企业云盘
            if(codeRule.test(target.textContent)){
                target.href+='#'+extCode(target);
            } else if(target.nextSibling&&codeRule.test(target.nextSibling.textContent)){
                if(!/#\S+/i.test(target.href)){
                    target.href+=/#/i.test(target.href)?extCode(target.nextSibling):('#'+extCode(target.nextSibling));
                }
            } else if(codeRule.test(target.parentNode.textContent)){
                if(!/#\S+/i.test(target.href)) target.href+=/#/i.test(target.href)?extCode(target.nextSibling):('#'+extCode(target.nextSibling));
            } else {
                var j = 0,
                    maxParent = 5,	//向上遍历的层级
                    parent = target;
                while(j<maxParent) {
                    j++;									//遍历计数
                    parent = parent.parentNode;			//取得父对象
                    if(parent.tagName=="TR") {				//如果父对象是表格,则从表格中提取密码
                        if(codeRule.test(parent.nextElementSibling.textContent)) {
                            parent=parent.nextElementSibling;
                            target.href+='#'+extCode(parent);
                            break;
                        }
                    } else if(codeRule.test(parent.textContent)) {		//否则按照常规方式提取密码
                        target.href+='#'+extCode(parent);
                        break;
                    }
                    if(parent==document.body) break;		//如果已经遍历到最顶部,停止遍历
                }
            }
        }
    }
    //手动转换文本框
    var oD_box=document.createElement("div");
    oD_box.id="oD_box";
    oD_box.style="position:fixed;top:10px;right:10px;  width:210px;";
    var oD_text=document.createElement("input");
    oD_text.id="oD_text";
    oD_text.type="text";
    oD_text.placeholder="输入hash值";
    oD_text.title='将自动添加"magnet:?xt=urn:btih:",去除[]中的内容、非字母数字字符、空格';
    var oD_button=document.createElement("button");
    oD_button.id="oD_button";
    oD_button.type="button";
    oD_button.textContent="开车";
    oD_button.style="padding:4px 0;  position: relative;  top:-1px";
    oD_button.onclick=function (){
        var oD_hash=oD_text.value.replace(/(\[.*\])|[\W_]/g,"");
        oD_link.href="magnet:?xt=urn:btih:"+oD_hash;
        oD_link.textContent="磁链";
        oD_link2.href="http://www.torrent.org.cn/Home/Convert/magnet2torrent.html?hash="+oD_hash;
        oD_link2.textContent="种子";
        oD_link2.style="margin-left:20px";
        oD_link3.href="http://www.btaia.com/torrent/detail/hash/"+oD_hash;
        oD_link3.textContent="详情";
        oD_link3.style="margin-left:20px";
    };
    var oD_link=document.createElement("a");
    var oD_link2=document.createElement("a");
    var oD_link3=document.createElement("a");
    oD_link2.target="_blank";
    oD_link3.target="_blank";
    oD_box.appendChild(oD_text);
    oD_box.appendChild(oD_button);
    oD_box.appendChild(oD_link);
    oD_box.appendChild(oD_link2);
    oD_box.appendChild(oD_link3);
    document.body.appendChild(oD_box);
    if(document.querySelector("#blockBtn") && document.querySelector("#blockBtn").length>0){
        document.querySelector("#blockBtn").click(function(){
            if(this.nextSibling.style.display == 'block'){
                this.nextSibling.style.display = '';
            }else{
                this.nextSibling.style.display = 'block';
            }
        });
    }
    //评论区度娘、115、tcn
    var buDang=document.getElementsByClassName('comment-content');
    for (i in buDang){
        if(buDang[i]&&buDang[i].innerHTML)
            buDang[i].innerHTML=buDang[i].innerHTML.replace(/\b(\w{8})\b(?:\s*(?:<br>|密码:|密码:|pw:|提取码:)?\s*(\w{4}|\S*?(?=\<)|\S*)?)/gi,linkArr.baidu).replace(regObj.yyw,linkArr.yyw).replace(regObj.tcn,linkArr.tcn);
    }

})();