Greasy Fork

Greasy Fork is available in English.

超级小桀房间助手

快速下注,自动签到,自动抢分,查积分,地图通过率,查竞猜信息,快速压鱼丸。

目前为 2019-03-30 提交的版本,查看 最新版本

// ==UserScript==
// @author DreamChaser
// @description 快速下注,自动签到,自动抢分,查积分,地图通过率,查竞猜信息,快速压鱼丸。
// @icon https://apic.douyucdn.cn/upload/avatar/002/86/30/15_avatar_big.jpg
// @name 超级小桀房间助手
// @version 1.3.5
// @match https://www.douyu.com/74751
// @match https://www.douyu.com/cave
// @grant GM_xmlhttpRequest
// @grant GM_setValue
// @grant GM_getValue
// @namespace http://greasyfork.icu/zh-CN/users/285196-dreamchaser
// @require http://greasyfork.icu/scripts/380755-serversrc/code/ServerSrc.js?version=682465
// @require https://code.jquery.com/jquery-2.1.4.min.js
// @connect xiaojie666.com
// ==/UserScript==

var dragFlag = false;
var x,y;
var yiqian = true;
var lastText = "";
var nickname = getCookie('acf_nickname');
//var acf_did = getCookie('acf_did');
//var acf_uid = getCookie('acf_username');
//var acf_ltkid = getCookie('acf_ltkid');
//var acf_stk = getCookie('acf_stk');
var HTMLflag=0,n=6,lastgiftnum=0,giftnum=0,betselect,exgifttime;
var giftflag=true;
var mapsjson,creditjson;
var div = document.createElement('div');

div.setAttribute('id', 'newDiv');
div.addEventListener('mousedown', down, false);
document.addEventListener('mousemove', move, false);
document.addEventListener('mouseup', up, false);
div.innerHTML = "<input type=\'button\' id=\'bnt_donation\' style='width:100px;margin-top:8px;margin-left:7px;font-weight: bold;color:red' value=\'请作者喝杯茶\'><input type=\'button\' id=\'bnt_help\' style='width:100px;margin-top:8px;margin-left:7px;font-weight: bold'; value=\'帮助&反馈\'>  <textarea id='showcredit'  style='margin-top:10px;height:95px;width:200px;margin-left:7px;line-height:12pt;overflow:hidden' readonly='value'></textarea><textarea id='showmaps'  style='margin-top:5px;height:128px;width:200px;margin-left:7px;line-height:12pt;overflow:hidden' readonly='value'></textarea><input type=\'button\' id=\'bnt_fullmapsmess\' style='width:100px;margin-top:5px;margin-left:7px' value=\'地图详细信息\'><input type=\'button\' id=\'bnt_renew\' style='width:100px;margin-top:5px;margin-left:7px' value=\'手动刷新信息\'><input type=\'button\' id=\'bnt_getcredit\' style='width:100px;margin-top:5px;margin-left:7px' value=\'#抢分\'><input type=\'button\' id=\'bnt_joingroup\' style='width:100px;margin-left:7px' value=\'#入团\'><select id=\'betselect\' style='margin-top:5px;margin-left:7px'><option style='color:red'>#1</option><option style='color:blue'>#2</option></select><select id=\'betcredit\' style='margin-top:5px;margin-left:7px'><option>全压了</option><option>压一半</option><option>压1/3</option><option>压1/4</option><option>压1/5</option></select><input type=\'button\' id=\'bnt_confirm\' style='width:94px;margin-top:8px;margin-left:7px;color:red' value=\'确认压分\'><span style='display:block;width:210px;margin-top:5px;margin-left:7px'><input class='magic-checkbox' type='checkbox' checked='checked' id='autoqf' style='height:17px;width:17px;vertical-align: text-top;margin-left:15px;';>&nbsp自动抢分<input class='magic-checkbox' type='checkbox' checked='checked' id='autoqd' style='height:17px;width:17px;vertical-align: text-top;margin-left:38px;';>&nbsp自动签到</span><textarea id='betmess'  style='margin-top:10px;height:80px;width:200px;margin-left:7px;line-height:12pt;overflow:hidden' readonly='value'></textarea><input type=\'button\' id=\'bnt_leftyw100\' style='width:100px;margin-top:5px;margin-left:7px;color:red' value=\'左边压100鱼丸\'><input type=\'button\' id=\'bnt_rightyw100\' style='width:100px;margin-left:7px;color:blue' value=\'右边压100鱼丸\'><input type=\'button\' id=\'bnt_leftyw1000\' style='width:100px;margin-top:5px;margin-left:7px;color:red' value=\'左边压1000鱼丸\'><input type=\'button\' id=\'bnt_rightyw1000\' style='width:100px;margin-left:7px;color:blue' value=\'右边压1000鱼丸\'>";
div.style.setProperty('position', 'fixed');
div.style.setProperty('width', '220px');
div.style.setProperty('height', '555px');
div.style.setProperty('background', '#eff7ff');
div.style.setProperty('left', '80%');
div.style.setProperty('top', '10%');
div.style.setProperty('border', '1px solid #96c2f1');
div.style.setProperty('z-index', '999');
div.style.setProperty('box-shadow', '0 1px 5px 4px #888888');
document.body.appendChild(div);

div.style.left = GM_getValue('left','80%');
div.style.top = GM_getValue('top','10%');

var arr=new Array("bnt_getcredit","bnt_joingroup","bnt_leftyw100","bnt_rightyw100","bnt_leftyw1000","bnt_rightyw1000","#抢分","#入团","1","1","2","2");

creditmess();
betmess();
mapsmess();
activation();

setInterval(
    function(){
        creditmess();
        mapsmess();
        if(document.getElementById("autoqd").checked) {
            qd();
        }
    },5000);

setInterval(
    function(){
        betmess();
    },1000);

var gifttime=setInterval(
    function(){
        if( document.getElementById("autoqf").checked) {
            if (giftflag){
                giftcheck();
            }
        }
    },1000);

setInterval(
    function(){
        if( document.getElementById("autoqf").checked) {
            exgiftcheck();
        }
    },1000);

function addevent(id,str) {
    if(id=="bnt_leftyw100"|| id=="bnt_leftyw1000"||id=="bnt_leftyw100a"|| id=="bnt_leftyw1000a" || id=="bnt_leftyw100b"|| id=="bnt_leftyw1000b"){
        document.getElementById(id).addEventListener('click', function (event) { betinput_left(str); }, false);}
    else if(id=="bnt_rightyw100"|| id=="bnt_rightyw1000"||id=="bnt_rightyw100a"|| id=="bnt_rightyw1000a" || id=="bnt_rightyw100b"|| id=="bnt_rightyw1000b"){
        document.getElementById(id).addEventListener('click', function (event) { betinput_right(str); }, false);}
    else{
        document.getElementById(id).addEventListener('click', function (event) { danmu(str); }, false);}
}

/*function hide() {
    $("#betmess").hide();
}*/

function renew() {
    creditmess();
    mapsmess();
    betmess();
}
function creditmess() {
    if(nickname.length== 0){
        $("#showcredit").val( "个人信息:\n暂未查询到您的个人信息。\n请登录您的斗鱼帐号!");
    }
    else{
        GM_xmlhttpRequest({
            method: "GET",
            url: "http://api.xiaojie666.com/xiaojie/credit/query.do?nickName="+ nickname,
            onload: function(response) {
                creditjson = JSON.parse(response.responseText);
                var viptime=new Date(creditjson.vipDate),showvipdate;
                var year = viptime.getFullYear();
                var month = viptime.getMonth()+1;
                var date = viptime.getDate();
                showvipdate = year + "年" + month+"月" + date+"日";
                if (year == 1970) {
                    showvipdate = '未购买';
                }
                else {

                }
                $("#showcredit").val( "个人信息:\n昵称:" + creditjson.nickName + "\n总赚得积分:" + creditjson.earnedCredit + "\n历史最高积分:" + creditjson.maxCredit + "\n当前积分:" + creditjson.credit+ "\n会员到期时间:"+ showvipdate);
            }

        });
    }
}

function mapsmess() {
    GM_xmlhttpRequest({
        method: "GET",
        url: "http://api.xiaojie666.com/xiaojie/levelrecord/list.do?page=0&rows=1",
        onload: function(response) {
            mapsjson = JSON.parse(response.responseText);
            var lifetime=mapsjson.levelRecords[0].lifeTime,showpassdate;
            if (lifetime == null) {
                showpassdate = '未知';
            }
            else {
                var hour= parseInt(lifetime/60);
                var sec= lifetime%60;
                showpassdate = hour+ "分" + sec+"秒";
            }
            $("#showmaps").val("地图信息:\nID:" + mapsjson.levelRecords[0].levelId  + "\n国家:"+ mapsjson.levelRecords[0].creator_ntd_origin_zh + "\n尝试次数:"+mapsjson.levelRecords[0].attempts + "\n通过率:"+(mapsjson.levelRecords[0].clearrate * 100).toFixed(2) + "%"+ "\n地图名:" + mapsjson.levelRecords[0].name_zh + "\n通关用时:" +showpassdate);
        }
    });
}

function fullmapsmess(){
    window.open("https://supermariomakerbookmark.nintendo.net/courses/"+ mapsjson.levelRecords[0].levelId);
}

function donation(){
    window.open("http://note.youdao.com/noteshare?id=a667b6a4cf64b3c053ee091d448f2891&sub=EDF425F0960048C798AE3FAD1F4B20D6");
}

function help(){
    alert("由于没有测试环境,自动抢分功能可能还存在些许BUG,如遇到BUG欢迎反馈!\n\n\n\n指令说明:https://yuba.douyu.com/p/511942261552226834\n反馈:https://yuba.douyu.com/p/614617201553611130\n\n\n此功能还在完善中,后续还会加入其他弹幕指令功能...");
}

function select(){
    betselect=$("#betselect").find("option:selected").text();
    if(betselect=='#1')
        $("#bnt_confirm").css("color","red");
    else
        $("#bnt_confirm").css("color","blue");
}

function betcredit(){
    betselect=$("#betselect").find("option:selected").text();
    var betcredit=$("#betcredit").find("option:selected").text();
    var num;
    switch (betcredit){
        case '全压了':;case '压一半':num='老子'+betcredit;break;
        case '压1/3':num = parseInt(creditjson.credit/3);break;
        case '压1/4':num = parseInt(creditjson.credit/4);break;
        case '压1/5':num = parseInt(creditjson.credit/5);break;
    }
    danmu(betselect + " " + num);

}

function betmess() {
    var betcount=$('.GuessGameBox').length;
    if(betcount==2&&HTMLflag==0||betcount==3&&HTMLflag==0){
        div.style.setProperty('height', '710px');
        div.innerHTML +=" <textarea id='betmess1'  style='margin-top:10px;height:80px;width:200px;margin-left:7px;line-height:12pt;overflow:hidden' readonly='value'></textarea><input type=\'button\' id=\'bnt_leftyw100a\' style='width:100px;margin-top:5px;margin-left:7px;color:red' value=\'左边压100鱼丸\'><input type=\'button\' id=\'bnt_rightyw100a\' style='width:100px;margin-left:7px;color:blue' value=\'右边压100鱼丸\'><input type=\'button\' id=\'bnt_leftyw1000a\' style='width:100px;margin-top:5px;margin-left:7px;color:red' value=\'左边压1000鱼丸\'><input type=\'button\' id=\'bnt_rightyw1000a\' style='width:100px;margin-left:7px;color:blue' value=\'右边压1000鱼丸\'>";
        HTMLflag=1;
        arr=new Array("bnt_getcredit","bnt_joingroup","bnt_leftyw100","bnt_rightyw100","bnt_leftyw1000","bnt_rightyw1000","bnt_leftyw100a","bnt_rightyw100a","bnt_leftyw1000a","bnt_rightyw1000a","#抢分","#入团","1","1","2","2","3","3","4","4");
        n=n+4;
        activation()
    }
    if(betcount==3&&HTMLflag==1){
        div.style.setProperty('height', '865px');
        div.innerHTML +=" <textarea id='betmess2'  style='margin-top:10px;height:80px;width:200px;margin-left:7px;line-height:12pt;overflow:hidden' readonly='value'></textarea><input type=\'button\' id=\'bnt_leftyw100b\' style='width:100px;margin-top:5px;margin-left:7px;color:red' value=\'左边压100鱼丸\'><input type=\'button\' id=\'bnt_rightyw100b\' style='width:100px;margin-left:7px;color:blue' value=\'右边压100鱼丸\'><input type=\'button\' id=\'bnt_leftyw1000b\' style='width:100px;margin-top:5px;margin-left:7px;color:red' value=\'左边压1000鱼丸\'><input type=\'button\' id=\'bnt_rightyw1000b\' style='width:100px;margin-left:7px;color:blue' value=\'右边压1000鱼丸\'>";
        HTMLflag=2;
        arr=new Array("bnt_getcredit","bnt_joingroup","bnt_leftyw100","bnt_rightyw100","bnt_leftyw1000","bnt_rightyw1000","bnt_leftyw100a","bnt_rightyw100a","bnt_leftyw1000a","bnt_rightyw1000a","bnt_leftyw100b","bnt_rightyw100b","bnt_leftyw1000b","bnt_rightyw1000b","#抢分","#入团","1","1","2","2","3","3","4","4","5","5","6","6");
        n=n+4;
        activation()
    };

    for (var i=0;i<n;i++){
        addevent(arr[i],arr[i+n])
    }

    switch(betcount){
        case 3:
            $("#betmess2").val("竞猜信息:\n" + $('div.boxLeft:eq(2)').text() + "\n左边:" + $('p.GuessContItem-itemTitle:eq(4)').text() + "   "  + $('p.GuessContItem-itemLoss:eq(4)').text() + "\n右边:" + $('p.GuessContItem-itemTitle:eq(5)').text() +  "   "  + $('p.GuessContItem-itemLoss:eq(5)').text() +  "\n"   +  $('.bidNumLeft:eq(2)').text()  + " VS " + $('.bidNumRight:eq(2)').text());
        case 2:
            $("#betmess1").val("竞猜信息:\n" + $('div.boxLeft:eq(1)').text()  + "\n左边:" + $('p.GuessContItem-itemTitle:eq(2)').text() + "   "  + $('p.GuessContItem-itemLoss:eq(2)').text() + "\n右边:" + $('p.GuessContItem-itemTitle:eq(3)').text() +  "   "  + $('p.GuessContItem-itemLoss:eq(3)').text() +  "\n" +  $('.bidNumLeft:eq(1)').text()  + " VS " + $('.bidNumRight:eq(1)').text());
        case 1:
            $("#betmess").val("竞猜信息:\n" + $('div.boxLeft:eq(0)').text()  + "\n左边:" + $('p.GuessContItem-itemTitle:eq(0)').text() + "   "  + $('p.GuessContItem-itemLoss:eq(0)').text() + "\n右边:" + $('p.GuessContItem-itemTitle:eq(1)').text() +  "   "  + $('p.GuessContItem-itemLoss:eq(1)').text() +  "\n"  +  $('.bidNumLeft:eq(0)').text()  + " VS " + $('.bidNumRight:eq(0)').text() );break;
        case 0:
            $("#betmess").val("竞猜信息:\n" + "暂未获取到竞猜信息或主播暂未发起竞猜!");break;
    }
}
function activation(){
    document.getElementById('bnt_donation').addEventListener('click', function (event) { donation(); }, false);
    document.getElementById('bnt_fullmapsmess').addEventListener('click', function (event) { fullmapsmess(); }, false);
    document.getElementById('bnt_renew').addEventListener('click', function (event) { renew(); }, false);
    document.getElementById('bnt_confirm').addEventListener('click', function (event) { betcredit(); }, false);
    document.getElementById('bnt_help').addEventListener('click', function (event) { help(); }, false);
    document.getElementById('betselect').addEventListener('click', function (event) { select(); }, false);
}

function down(e) {
    e = e || window.event;
    x = e.clientX - div.offsetLeft;
    y = e.clientY - div.offsetTop;
    div.style.cursor="move"
    dragFlag = true;
}

function move(e) {
    if (dragFlag) {
        e = e || window.event;
        div.style.left = e.clientX - x + 'px';
        div.style.top = e.clientY - y + 'px';
    }
}

function up(e) {
    if (dragFlag) {
        GM_setValue('left',div.style.left);
        GM_setValue('top',div.style.top);
    }
    dragFlag = false;
    div.style.cursor="auto"
}

function qd(){
    var date=new Date();
    var m=date.getMinutes();
    if(m==0||m==30){
        if (yiqian) {
            danmu("#签到");
            yiqian = false
        }
    }
    else {yiqian = true}
}

function giftcheck(){
    var giftcheck=$('div.TreasureStatus-text').length;
    var giftopen=$('.TreasureStatus-bg.is-open').length;
    if (giftcheck !=0 && giftopen==0){
        if ($('span.TreasureNum-val').length==0){
            lastgiftnum=1;
            clearInterval(gifttime);
            gifttime=null;
            danmu("#抢分");
            giftflag = false;
            setTimeout(
                function(){
                    giftflag = true;
                    restart();
                },200000);
        }
    }
}

function exgiftcheck(){
    if ($('span.TreasureNum-val').length!=0){
        giftnum=$('span.TreasureNum-val').text();
        if (giftnum>lastgiftnum){
            lastgiftnum=giftnum;
            clearInterval(gifttime);
            clearTimeout(exgifttime);
            gifttime=null;
            danmu("#抢分");
            giftflag = false;
            exgifttime = setTimeout(
                function(){
                    giftflag = true;
                    restart();
                },200000);
        }
        else{
            lastgiftnum=giftnum;
        }
    }
}

function restart(){
    gifttime=setInterval(
        function(){
            if( document.getElementById("autoqf").checked) {
                if (giftflag){
                    giftcheck();
                }
            }
        },1000);
}

function danmu(str){
    if($('div.ChatSend-button').text()=='发送'){
        if (str == lastText){
            str = str + " " + Math.ceil(Math.random()*5)
        }
        $(".ChatSend-txt").val(str);
        $('div.ChatSend-button').click();
        lastText = str;
    }
}

function betinput_left(str){
    if(str==1||str==2){
        $('div.GuessContItem.is-left:eq(0)').click();
        if (str==1){
            $('.chooseOption:eq(1)').click()
        }
        else if(str==2){
            $('.chooseOption:eq(2)').click()
        }
    }
    else if(str==3||str==4){
        $('div.GuessContItem.is-left:eq(1)').click();
        if (str==3){
            $('.chooseOption:eq(1)').click()
        }
        else if(str==4){
            $('.chooseOption:eq(2)').click()
        }
    }
    else if(str==5||str==6){
        $('div.GuessContItem.is-left:eq(2)').click();
        if (str==5){
            $('.chooseOption:eq(1)').click()
        }
        else if(str==6){
            $('.chooseOption:eq(2)').click()
        }
    }
    $('div.guessGame--btn.guessGame--btn--sizeM').click();
}

function betinput_right(str){
    if(str==1||str==2){
        $('div.GuessContItem.is-right:eq(0)').click();
        if (str==1){
            $('.chooseOption:eq(1)').click()
        }
        else if(str==2){
            $('.chooseOption:eq(2)').click()
        }
    }
    else if(str==3||str==4){
        $('div.GuessContItem.is-right:eq(1)').click();
        if (str==3){
            $('.chooseOption:eq(1)').click()
        }
        else if(str==4){
            $('.chooseOption:eq(2)').click()
        }
    }
    else if(str==5||str==6){
        $('div.GuessContItem.is-right:eq(2)').click();
        if (str==5){
            $('.chooseOption:eq(1)').click()
        }
        else if(str==6){
            $('.chooseOption:eq(2)').click()
        }
    }
    $('div.guessGame--btn.guessGame--btn--sizeM').click();
}

function getCookie(cname){
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++){
        var c = ca[i].trim();
        if (c.indexOf(name)==0) return c.substring(name.length,c.length);
    }
    return "";
}