Greasy Fork is available in English.

注册邀请码抢码工具

自动遍历论坛注册邀请码得出正确结果

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==UserScript==
// @name         注册邀请码抢码工具
// @name:en      Tool for register with invite code
// @name:zh-TW   注冊邀請碼搶碼工具
// @namespace    hoothin
// @version      0.6
// @description  自动遍历论坛注册邀请码得出正确结果
// @description:en  Just a tool for register with invite code
// @description:zh-TW  自動遍歷論壇注冊邀請碼得出正確結果
// @author       hoothin
// @include      *
// @exclude      http*://*.baidu.*
// @exclude      http*://*.bing.*
// @exclude      http*://*.google.*
// @grant        GM_registerMenuCommand
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_deleteValue
// @grant        unsafeWindow
// @license      MIT License
// @compatible        chrome
// @compatible        firefox
// ==/UserScript==

(function() {
    'use strict';
    var is1024=document.title.indexOf('\u8349\u69b4') != -1;
    var firefox=navigator.userAgent.toLowerCase().indexOf('firefox')!=-1;
    var invitecode=document.querySelector((is1024?"#invcode":"#invitecode")),
        chkInvitecode=document.querySelector((is1024?"#check_info_invcode":"#chk_invitecode")),
        codeChar=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],checkFun,checkinvite,preTxt="",codeArr;
    String.prototype.pmatch = function(reg){
        if(!(reg instanceof RegExp))return 0;
        var a=[];
        if(!reg.global){
            a = this.match(reg);
            return a? [a.slice(1,a.length)] : 0;
        }
        var b=reg.exec(this);
        while(b){
            b.shift();
            a.push(b[0]);
            b=reg.exec(this);
        }
        return a.length>0?a:0;
    };
    function checkCode(){
        if(checkFun)clearInterval(checkFun);
        var checkNext=function(){
            if(codeArr.length===0){
                clearInterval(checkFun);
                if(checkinvite)clearInterval(checkinvite);
                alert("没有找到正确的邀请码!");
                return;
            }
            invitecode.value=codeArr.shift();
            if(is1024){
                unsafeWindow.invcodecheck();
            }else{
                unsafeWindow.checkinvite();
            }
        };
        var checkBtn=invitecode.parentNode.querySelector(".btn");
        checkFun = setInterval(function() {
            if(preTxt!=chkInvitecode.innerHTML){
                preTxt=chkInvitecode.innerHTML;
                if(chkInvitecode.innerHTML){
                    if(is1024){
                        if(chkInvitecode.innerHTML.indexOf("green")!=-1){
                            if(checkinvite)clearInterval(checkinvite);
                            clearInterval(checkFun);
                            alert("已匹配到正确的邀请码!");
                        }else if(chkInvitecode.innerHTML.indexOf("red")!=-1){
                            if(checkinvite)clearInterval(checkinvite);
                            checkinvite=setInterval(function() {checkBtn.click();},2000);
                            checkNext();
                        }
                    }else{
                        if(chkInvitecode.innerHTML.indexOf("邀请码错误")==-1){
                            clearInterval(checkFun);
                            alert("已匹配到正确的邀请码!");
                        }else{
                            checkNext();
                        }
                    }
                }
            }
        },100);
        checkNext();
    }
    function geneCodeArr(){
        var tempCode=[];
        codeArr.forEach(function(item){
            if(item.indexOf("*")!=-1){
                for(var char of codeChar){
                    var tempItem=item.replace(/\*/,char);
                    if(tempCode.toString().indexOf(tempItem)==-1){
                        tempCode.push(tempItem);
                    }
                }
            }else if(tempCode.toString().indexOf(item)==-1){
                tempCode.push(item);
            }
        });
        codeArr=[];
        while(tempCode.length>0){
            var random=Math.floor(Math.random()*tempCode.length);
            var curCode=tempCode[random];
            codeArr.push(curCode);
            tempCode.splice(random,1);
        }
    }
    if(invitecode){
        var copiedCode=GM_getValue("copiedCode");
        if(copiedCode){
            GM_deleteValue("copiedCode");
            codeArr=copiedCode;
            checkCode();
        }
        GM_registerMenuCommand("开始筛选邀请码", function(){
            var codeStr=prompt("输入邀请码:","");
            if(!codeStr)return;
            codeArr=codeStr.pmatch((is1024?/\b([0-9a-z\*]{16})\b/gi:/(?:^|c=|[^=\.\/])\b([0-9a-z]{6})(?:\s|$)/gi));
            if(codeArr===0)return;
            geneCodeArr();
            checkCode();
        });
    }else{
        if(is1024){
            codeArr=(firefox?document.body.textContent:document.body.innerText).pmatch(/(?:^|[::\s])\b([0-9a-z\*]{16})\b/gi);
            if(codeArr!==0){
                if(window.confirm("检测到邀请码,是否立即前往注册?")){
                    geneCodeArr();
                    GM_setValue("copiedCode",codeArr);
                    location.href="/register.php";
                }
            }
        }
    }
})();