// ==UserScript== // @author DreamChaser // @description 快速下注,自动签到,查看积分,自动抢积分,查看地图详情,查看竞猜信息,快速压鱼丸、快速发弹幕。 // @icon https://apic.douyucdn.cn/upload/avatar/002/86/30/15_avatar_big.jpg // @name 超级小桀房间小助手 // @version 1.5.2 // @match https://www.douyu.com/cave // @match https://www.douyu.com/0* // @match https://www.douyu.com/1* // @match https://www.douyu.com/2* // @match https://www.douyu.com/3* // @match https://www.douyu.com/4* // @match https://www.douyu.com/5* // @match https://www.douyu.com/6* // @match https://www.douyu.com/7* // @match https://www.douyu.com/8* // @match https://www.douyu.com/9* // @grant GM_xmlhttpRequest // @grant GM_setValue // @grant GM_getValue // @grant GM_notification // @namespace https://greasyfork.org/zh-CN/users/285196-dreamchaser // @require https://code.jquery.com/jquery-2.1.4.min.js // @connect xiaojie666.com // @downloadURL none // ==/UserScript== var x,y; var dragFlag = false,sighInFlag = true,giftFlag=true,activateFlag=false; 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 n=3,lastGiftNum=0,giftNum=0,lastBetCount=-1,betSelect,ywSelected,color,text,giftStatusCheck,giftOpen,lastCredit; var mapsJSON,creditJSON; var fullTailText=GM_getValue('fullTailText', ''),tailFlag=1; var year,month,date,h,m,s,now; var div = document.createElement('div'); var dragDiv=document.getElementById("drag"); div.setAttribute('id', 'newDiv'); div.style.setProperty('position', 'fixed'); div.style.setProperty('width', '253px'); 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%'); $("#autoqf").prop("checked",GM_getValue('autoqf',false)); $("#autoqd").prop("checked",GM_getValue('autoqd',false)); $("#enter").prop("checked",GM_getValue('enter',false)); $(document).keypress(function(event){ if(event.keyCode ==13&&document.getElementById("enter").checked){ $("#bnt_chatsend").trigger("click"); } }); var arr=new Array("bnt_getcredit","bnt_joingroup","bnt_vip","#抢分","#入团","#购买会员"); betMess(); creditMess(); mapsMess(); notifiy(); $(document).ready(function (){ setInterval( function(){ creditMess(); mapsMess(); if(document.getElementById("autoqd").checked) { sighIn(); } if(($('span.dy-ModalRadius-close-x').length!=0)){ $('span.dy-ModalRadius-close-x').click() } },5000); setInterval( function(){ GM_setValue('autoqf', document.getElementById("autoqf").checked); GM_setValue('autoqd', document.getElementById("autoqd").checked); GM_setValue('enter', document.getElementById("enter").checked); giftStatusCheck=$('div.TreasureStatus-text').length; giftOpen=$('.TreasureStatus-bg.is-open').length; if(giftStatusCheck==0){ giftFlag = true; } if( document.getElementById("autoqf").checked) { exGiftCheck(); if (giftFlag){ giftCheck(); } } betMess(); },1000); }); function getNow() { function fix (s){ return s < 10 ? '0' + s: s; } var myDate = new Date(); year=myDate.getFullYear(); month=fix(myDate.getMonth()+1); date=fix(myDate.getDate()); h=fix(myDate.getHours()); m=fix(myDate.getMinutes()); s=fix(myDate.getSeconds()); now=year+'-'+month+"-"+date+" "+h+':'+m+":"+s; } function notifiy(title,body,icon,click_url) { var notificationDetails = { text: `*嘉嘉 @苹果DY 匿名大佬 *玮灏 *超群 *友 *迪鑫 *永寿 点我查看新版本预告&支持!`, title: "感谢以下水友对本插件的大力支持", image: icon, onclick: function () { window.open("https://note.youdao.com/ynoteshare1/index.html?id=a667b6a4cf64b3c053ee091d448f2891&type=note"); } }; var lastDate=GM_getValue('date', 0); getNow(); GM_setValue('date', date); if(date != lastDate){ GM_notification(notificationDetails); } } function hide(){ var a=document.getElementById("hidecredit").checked,b=document.getElementById("hidemaps").checked,c=document.getElementById("hideinstructions").checked,d=document.getElementById("hidedanmu").checked,e=document.getElementById("hideqfqd").checked,f=document.getElementById("hidebet").checked; var arr1=new Array(a,b,c,d,e,f,"credit","maps","instructions","danmu","qfqd","bet"); var arr2=new Array(a,b,c,d,e,f,"#hidecredit","#hidemaps","#hideinstructions","#hidedanmu","#hideqfqd","#hidebet"); var trueheight=$('section#drag').outerHeight(true)+$('section#hide').outerHeight(true),height; for (var i=0;i<6;i++){ GM_setValue(arr2[i+6], arr2[i]); var name="section#"+arr1[i+6] height=$(name).outerHeight(true); if(arr1[i]&&height!=null){ $(name).show(); trueheight+=height; } else{ $(name).hide(); } } $("#newDiv").css("height",trueheight+7); } function addevent(id,str) { document.getElementById(id).addEventListener('click', function (event) { danmu(str); }, false); } 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(); if (year == 1970) { showvipdate = '未购买'; } else { showvipdate = year + "年" + month+"月" + date+"日"; } $("#showcredit").val( "个人信息:\n昵称:" + creditJSON.nickName + "\n总赚得积分:" + creditJSON.earnedCredit + "\n历史最高积分:" + creditJSON.maxCredit + "\n当前积分:" + creditJSON.credit+ "\n会员到期时间:"+ showvipdate); if(lastCredit!=creditJSON.credit){ getNow() lastCredit=creditJSON.credit; console.log(now+" 积分为:"+lastCredit); } }, }); } } 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 min= parseInt(lifetime/60); var sec= lifetime%60; showpassdate = min+ "分" + 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 donate(){ window.open("http://note.youdao.com/noteshare?id=a667b6a4cf64b3c053ee091d448f2891&sub=EDF425F0960048C798AE3FAD1F4B20D6"); } function help(){ alert( ` 显示:将你要显示的功能模块旁边的勾选框打上√,则会显示相应的功能模块,反之则隐藏。 #签到:输入签到可以获得一定积分,具体获得的积分数量与斗鱼等级,是否加入粉丝团以及是否购买会员有关,每天整点例如5点的前后5分钟可以签到,每半小时可以签到一次。 #抢分:有散分或者直播间有飞机以上的礼物的时候, 可以输入此命令来随机获得一定的积分。 #入团:在主播开启一轮新团战之前可以输入此命令,会随机挑选99个水友ID参战,获胜的ID会增加积分,使用此命令不消耗积分。 #购买会员:购买会员需要消耗5000积分一次,持续时间1个月,可以多次重复购买,重复购买相当于自动续费,会员期间内,你的签到和送礼获得的积分是直接翻倍的。 #1 5000:1代表投票一号阵营,5000代表下注5000分,#2同理,封盘后不可再压。 普通弹幕:在直播间发送普通弹幕,与在斗鱼聊天框发送内容无区别,不消耗积分。 高级弹幕:在直播间发送从左至右移动的彩色弹幕,需要200积分发能发一次,并且需要历史最高积分大于50000。 上电视:在直播间发送彩色弹幕,一般在屏幕左下角弹出,只有在主播切换到室内镜头画面时才开启这个功能(一般为中午吃饭时),每条消耗10积分。 小尾巴:在自动签到抢分的时候加上自定义内容,如:“抢分/签到+小尾巴+时间 主播你真丑”则每次自动签到的内容为:“#抢分 主播你真丑 2019-4-9 5:00:00”抢分亦如此。`); } function sendColor(){ color = $("#color").find("option:selected").text(); switch (color){ case '蓝':$("#bnt_chatsend").css("color","blue");break; case '绿':$("#bnt_chatsend").css("color","green");break; case '粉':$("#bnt_chatsend").css("color","pink");break; case '橙':$("#bnt_chatsend").css("color","orange");break; case '紫':$("#bnt_chatsend").css("color","purple");;break; case '红':$("#bnt_chatsend").css("color","red");break; } } function danmuSelect(){ var danmuselect=$("#danmuselect").find("option:selected").text(); if(danmuselect=='普通弹幕'){ $('#color').attr("disabled","disabled"); $("#bnt_chatsend").css("color","black"); } else{ $("#color").removeAttr("disabled"); sendColor(); } } function chatSend(){ var c; var danmuselect=$("#danmuselect").find("option:selected").text(); text = $('#write').val(); color = $("#color").find("option:selected").text(); if(danmuselect=='普通弹幕'){ c = ''; } else if(danmuselect=='高级弹幕'){ c = '#'+color+ ' '; } else{ c = '#上电视 '+ color + '色 '; } if (text.length==0) { alert(`输入内容为空,请重新输入`); } else{ text=c+text; danmu(text); } $('#write').val(''); } 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 ywSelect(set,bnt){ ywSelected=$("#"+set).find("option:selected").text(); if(ywSelected=='左边'){ $("#"+bnt).css("color","red"); } else{ $("#"+bnt).css("color","blue"); } } function betYw(set,num,bnt){ var ywnum = $("#"+num).find("option:selected").text(); ywSelected=$("#"+set).find("option:selected").text(); if(ywSelected=='左边'){ switch (bnt){ case 'bnt_ywconfirm':$('div.GuessContItem.is-left:eq(0)').click();break; case 'bnt_ywconfirm1':$('div.GuessContItem.is-left:eq(1)').click();break; case 'bnt_ywconfirm2':$('div.GuessContItem.is-left:eq(2)').click();break; } } else{ switch (bnt){ case 'bnt_ywconfirm':$('div.GuessContItem.is-right:eq(0)').click();break; case 'bnt_ywconfirm1':$('div.GuessContItem.is-right:eq(1)').click();break; case 'bnt_ywconfirm2':$('div.GuessContItem.is-right:eq(2)').click();break; } } switch (ywnum){ case '100':$('.chooseOption:eq(1)').click();break; case '1000':$('.chooseOption:eq(2)').click();break; case '10000':$('.chooseOption:eq(3)').click();break; case 'ALL IN':$('.chooseOption:eq(4)').click();break; } $('div.guessGame--btn.guessGame--btn--sizeM').click(); } function recoverStatus() { var qf=GM_getValue('autoqf',false),qd=GM_getValue('autoqd',false),et=GM_getValue('enter',false); var a=GM_getValue('#hidecredit',false),b=GM_getValue('#hidemaps',false),c=GM_getValue('#hideinstructions',false),d=GM_getValue('#hidedanmu',false),e=GM_getValue('#hideqfqd',false),f=GM_getValue('#hidebet',false); var arr=new Array(a,b,c,d,e,f,qf,qd,et,"#hidecredit","#hidemaps","#hideinstructions","#hidedanmu","#hideqfqd","#hidebet",'#autoqf','#autoqd',"#enter"); for (var i=0;i<9;i++){ if(arr[i]) { $(arr[i+9]).prop("checked",true); } else { $(arr[i+9]).prop("checked",false); } } hide(); } function betMess() { var betcount=$('.GuessGameBox').length; var height,i; if(betcount!=lastBetCount){ if(betcount==0) { div.style.setProperty('height', height+'px'); div.innerHTML = "

超级小桀房间助手

 个人信息   地图信息   功能指令

 弹幕发送   抢分签到   竞猜信息

 Enter发送

 自动抢分         自动签到

"; lastBetCount=betcount; for (i=0;ilastGiftNum){ lastGiftNum=giftNum; giftFlag = false; setTimeout(function(){ danmu(fulltail("#抢分")); },1000); } else{ lastGiftNum=giftNum; } } else{ lastGiftNum=1; } } 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; getNow(); console.log(now+" 发送:"+lastText); } } function getCookie(cname){ var name = cname + "="; var ca = document.cookie.split(';'); for(var i=0; i