咕咕镇剩余价值收割机

剥削者的小助手

目前為 2020-08-19 提交的版本,檢視 最新版本

// ==UserScript==
// @name         咕咕镇剩余价值收割机
// @namespace    https://greasyfork.org/zh-CN/users/453092
// @version      1.5
// @description  剥削者的小助手
// @author       ikarosf
// @match        https://www.guguzhen.com/fyg_pk.php
// @grant        GM_xmlhttpRequest
// ==/UserScript==

(function() {
    'use strict';
    var autogox=false;
    var maxap=999;
    var maxrank=999;


    var audio = new Audio("https://cdnringhlt.shoujiduoduo.com/ringres/user/a24/564/9246564.aac");
    audio.load();

    var Num = 0;
    var goxNum = 0;
    var sum0=0;
    var sum1=0;
    var time = 10;
    var myrank = -100;
    var myap=-100;
    var changeLog = [];
    let autoconfig = document.createElement('div');

    let autoconfigranklabel = document.createElement('i');
    autoconfigranklabel.innerText = "进度高于:";
    autoconfig.appendChild(autoconfigranklabel);

    let autoconfigrank = document.createElement('input');
    autoconfigrank.setAttribute('type','text');
    autoconfigrank.setAttribute('oninput',"value=value.replace(/[^\\d]/g,'')");
    autoconfigrank.setAttribute('style',"width: 40px;margin-right:15px;");
    autoconfigrank.value = maxrank;
    autoconfigrank.onchange = function(){
        maxrank = autoconfigrank.value;
    };
    autoconfig.appendChild(autoconfigrank);


    let autoconfigaplabel = document.createElement('i');
    autoconfigaplabel.innerText = "体力高于:";
    autoconfig.appendChild(autoconfigaplabel);

    let autoconfigap = document.createElement('input');
    autoconfigap.setAttribute('type','text');
    autoconfigap.setAttribute('oninput',"value=value.replace(/[^\\d]/g,'')");
    autoconfigap.setAttribute('style',"width: 40px;margin-right:15px;");
    autoconfigap.value=maxap;
    autoconfigap.onchange = function(){
        maxap = autoconfigap.value;
    };
    autoconfig.appendChild(autoconfigap);

    let autoconfigcheckbox = document.createElement('input');
    autoconfigcheckbox.setAttribute('type','checkbox');
    autoconfig.appendChild(autoconfigcheckbox);
    console.log(autoconfigcheckbox.checked)

    let autoconfigcheckboxtext = document.createElement('i');
    autoconfigcheckboxtext.innerText = "自动搜刮";
    autoconfig.appendChild(autoconfigcheckboxtext);

    document.getElementsByClassName('panel panel-primary')[1].appendChild(autoconfig);

    let progresschange = document.createElement('div');
    progresschange.setAttribute('id','progresschange');
    progresschange.setAttribute('class','panel-body');
    document.getElementsByClassName('panel panel-primary')[1].appendChild(progresschange);


    function getPostData(p1,p2){
        let data = -1;
        for(let s of document.getElementsByTagName('script')){
            let func = s.innerText.match(p1)
            if(func!=null){
                data = func[0].match(p2)[0];
                break;
            }
        }
        return data
    }

    function postRequest(){
        GM_xmlhttpRequest({
            method: 'POST',
            url: `https://www.guguzhen.com/fyg_read.php`,
            headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
            data: 'f=12',
            onload: response => {
                Num++;
                let newrank = parseInt(response.responseText.match(/class="fyg_colpz02" style="font-size:32px;font-weight:900;">[0-9]+%</)[0].match(/[0-9]+%/)[0]);
                let newap = parseInt(response.responseText.match(/class="fyg_colpz03" style="font-size:32px;font-weight:900;">[0-9]+</)[0].match(/>[0-9]+</)[0].slice(1,-1));
                if(myrank == -100){
                    myrank = newrank;
                }
                else if(newrank != myrank){
                    document.getElementsByClassName('fyg_colpz02')[0].innerText = newrank;
                    myrank = newrank;
                    var date=new Date();
                    var datetext = date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
                    changeLog.push(datetext+"  "+newrank + "%")
                    audio.play();
                    /*var my_url = location.href;
                    var newwin = window.open(my_url, '进度变动', 'resizable=no')*/
                    }
                if(myap == -100){
                    myap = newap;
                }
                else if(newap != myap){
                    document.getElementsByClassName('fyg_colpz03')[0].innerText = newap;
                    myap = newap;
                }
                if(autoconfigcheckbox.checked&&newap>=10&&newrank>=1&&newap>=maxap&&newrank>=maxrank){
                    goxNum++;
                    let gox_data = getPostData(/gox\(\)\{[\s\S]*\}/m,/data: ".*"/).slice(7,-1);
                    GM_xmlhttpRequest({
                        method: 'POST',
                        url: `https://www.guguzhen.com/fyg_click.php`,
                        headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
                        data: gox_data,
                        onload: response => {
                            if(response.responseText.slice(0,2)=='获得'){
                                let info = response.responseText.slice(0,response.responseText.indexOf('<'));
                                let div_info = document.createElement('div');
                                div_info.innerText = info;
                                document.getElementsByClassName('btn-outline-secondary')[0].parentNode.appendChild(div_info);
                                if(info.indexOf('贝壳')!=-1){
                                    sum0+=1;
                                }
                                else if(info.indexOf('经验')!=-1){
                                    sum1+=1;
                                }
                            }
                            else{
                                let div_info = document.createElement('div');
                                div_info.innerText = '段位进度不足';
                                document.getElementsByClassName('btn-outline-secondary')[0].parentNode.appendChild(div_info);
                            }
                        }
                    });
                }
                progresschange.innerText = getChangeLogText();
                /* else{
                    document.getElementsByClassName('fyg_colpz02')[0].innerText = newrank;
                }*/
            }
        });
    }
    function read_rank(){
        if(--time!=0){
            document.getElementsByClassName('panel-heading')[0].innerText = "刷新进度倒计时 "+time;
        }else{
            document.getElementsByClassName('panel-heading')[0].innerText = "刷新进度倒计时 "+0;
            time = 10;
            postRequest();
        }
    }

    function getChangeLogText(){
        let LogText = "";
        LogText += "刷新次数: " +Num + "\n";
        LogText += "[搜刮次数: " +goxNum +"] [贝壳:"+sum0+"] [经验:"+sum1+ "\\n";
        if(changeLog.length == 0){
            LogText += "未出现进度变动"
        }
        else{
            for(var i = 0;i<changeLog.length;i++){
                LogText += changeLog[i] + "\n"
            }
        }
        return LogText;
    }
    postRequest();
    setInterval(read_rank,"1000");
    // Your code here...
})();