';html+='';html+='';html+='';a.innerHTML=html;let b=document.getElementsByClassName("layout-Player-chat")[0];b.insertBefore(a,b.childNodes[0]);}
function BarrageLoop_insertIcon(){let a=document.createElement("div");a.className="bloop-icon";a.innerHTML='';let b=document.getElementsByClassName("ex-panel__wrap")[0];b.insertBefore(a,b.childNodes[0]);}
function getBarrageColorArr(){barrageColorArr.length=0;barrageColorLength=0;let a=document.getElementsByClassName("FansBarrageColor-item");if(a.length==0){isMatch=true;let b=document.getElementsByClassName("MatchSystemFansBarrageSwitcher")[0];if(b!=undefined){b.click();a=document.getElementsByClassName("MatchSystemFansBarrageColor-item");}else{isMatch=false;}}else{isMatch=false;}
for(let i=0;ibarrageColorLength){barrageColorOffset=0;}}
sendBarrage(barrageArr[barrageOffset]);barrageOffset++;if(barrageOffset>barrageLength){barrageOffset=0;}
bloopTimer=setTimeout(doLoopBarrage,getSpeed());}
function initPkg_BarrageLoop_Func(){document.getElementsByClassName("bloop-icon")[0].addEventListener("click",function(){let a=document.getElementsByClassName("bloop")[0];if(a.style.display!="block"){a.style.display="block";if(document.getElementsByClassName("extool")[0].style.display=="block"){document.getElementsByClassName("extool")[0].style.display="none";}}else{a.style.display="none";}});document.getElementById("bloop__checkbox_changeColor").addEventListener("click",function(){isChangeColor=document.getElementById("bloop__checkbox_changeColor").checked;});document.getElementById("bloop__checkbox_startSend").addEventListener("click",function(){let ischecked=document.getElementById("bloop__checkbox_startSend").checked;if(ischecked==true){barrageOffset=0;barrageColorOffset=0;getBarrageArr();getBarrageColorArr();saveData_BarrageLoop();bloopTimer=setTimeout(doLoopBarrage,getSpeed());bloopStopTimer=setTimeout(()=>{document.getElementById("bloop__checkbox_startSend").checked=false;clearTimeout(bloopTimer);},getStopTime());}else{clearTimeout(bloopTimer);clearTimeout(bloopStopTimer);}});}
function initPkg_BarrageLoop_Dom(){BarrageLoop_insertModal();BarrageLoop_insertIcon();}
function initPkg_BarrageLoop_Set(){let ret=localStorage.getItem("ExSave_BarrageLoop");if(ret!=null){let retJson=JSON.parse(ret);if(retJson.speed1==undefined){retJson.speed1=2000;}
if(retJson.speed2==undefined){retJson.speed2=3000;}
if(retJson.stopTime==undefined){retJson.stopTime=5;}
document.getElementById("bloop__textarea").value=retJson.text;document.getElementById("bloop__checkbox_changeColor").checked=retJson.isChangeColor;document.getElementById("bloop__text_speed1").value=retJson.speed1;document.getElementById("bloop__text_speed2").value=retJson.speed2;document.getElementById("bloop__text_stoptime").value=retJson.stopTime;}}
function initPkg_ExIcon(){pkg_ExIcon_insertDom();pkg_ExIcon_initFunc();}
function pkg_ExIcon_insertDom(){let a=document.createElement("div");a.className="ex-icon";a.innerHTML='';let b=document.getElementsByClassName("PlayerToolbar-Wealth")[0];b.insertBefore(a,b.childNodes[0]);}
function pkg_ExIcon_initFunc(){document.getElementsByClassName("ex-icon")[0].addEventListener("click",showExPanel);}
function ExIcon_showTip(a){let d=document.getElementById("ex-icon__tip");if(a==true){d.style.display="block";}else{d.style.display="none";}}
function initPkg_ExpandTool(){initPkg_ExpandTool_Dom();initPkg_ExpandTool_Func();initPkg_ExpandTool_SendGift();initPkg_ExpandTool_BarrageSize();}
function initPkg_ExpandTool_Dom(){ExpandTool_insertModal();ExpandTool_insertIcon();}
function ExpandTool_insertModal(){let a=document.createElement("div");a.className="extool";let b=document.getElementsByClassName("layout-Player-chat")[0];b.insertBefore(a,b.childNodes[0]);}
function ExpandTool_insertIcon(){let a=document.createElement("div");a.className="extool-icon";a.innerHTML='';let b=document.getElementsByClassName("ex-panel__wrap")[0];b.insertBefore(a,b.childNodes[0]);}
function initPkg_ExpandTool_Func(){document.getElementsByClassName("extool-icon")[0].addEventListener("click",function(){let a=document.getElementsByClassName("extool")[0];if(a.style.display!="block"){a.style.display="block";if(document.getElementsByClassName("bloop")[0].style.display=="block"){document.getElementsByClassName("bloop")[0].style.display="none";}}else{a.style.display="none";}});}
var sheetIndex=0;function initPkg_ExpandTool_BarrageSize(){sheetIndex=getAvailableSheet();if(sheetIndex!=-1){document.styleSheets[sheetIndex].addRule(".danmuItem-31f924","");}
ExpandTool_BarrageSize_insertDom();ExpandTool_BarrageSize_insertFunc();initPkg_ExpandTool_BarrageSize_Set();setBarrageSize(getBarrageSize());}
function ExpandTool_BarrageSize_insertDom(){let a=document.createElement("div");a.className="extool__bsize";a.innerHTML='';let b=document.getElementsByClassName("extool")[0];b.insertBefore(a,b.childNodes[0]);}
function setBarrageSize(s){let l=document.styleSheets[sheetIndex].rules.length;document.styleSheets[sheetIndex].removeRule(l-1);document.styleSheets[sheetIndex].addRule(".danmuItem-31f924","font-size:"+s+"px !important;");}
function getAvailableSheet(){let ret=-1;for(let i=0;i送礼:[用于打榜,例如送出999个飞机]礼物id示例 ';html+='';html+='';html+='';let a=document.createElement("div");a.className="extool__sendgift";a.innerHTML=html;let b=document.getElementsByClassName("extool")[0];b.insertBefore(a,b.childNodes[0]);}
function ExpandTool_SendGift_insertFunc(){document.getElementById("extool__sendgift_btn").addEventListener("click",function(){let gid=document.getElementById("extool__sendgift_id").value;let gcnt=document.getElementById("extool__sendgift_cnt").value;sendGift_any(gid,gcnt,rid).then(ret=>{if(ret.data!=null){showMessage("【送礼】"+ret.msg+" "+ret.data.gid+"送出"+ret.data.num+"个 贡献值"+ret.data.priceType,"success");}else{showMessage("【送礼】"+ret.msg,"error");}}).catch(err=>{console.log("请求失败!",err);})});}
function sendGift_any(gid,count,rid){return fetch("https://www.douyu.com/japi/gift/donate/mainsite/v1",{method:'POST',mode:'no-cors',credentials:'include',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:'giftId='+gid+'&giftCount='+count+'&roomId='+rid+'&bizExt=%7B%22yzxq%22%3A%7B%7D%7D'}).then(res=>{return res.json();})}
function initPkg_ExPanel(){pkg_ExPanel_insertDom();}
function pkg_ExPanel_insertDom(){let a=document.createElement("div");a.className="ex-panel";a.innerHTML='';let b=document.getElementsByClassName("PlayerToolbar-Wealth")[0];b.insertBefore(a,b.childNodes[0]);}
function initPkg_FansContinue(){initPkg_FansContinue_Dom();initPkg_FansContinue_Func();}
function initPkg_FansContinue_Dom(){FansContinue_insertIcon();}
function FansContinue_insertIcon(){let a=document.createElement("div");a.className="fans-continue";a.innerHTML='';let b=document.getElementsByClassName("ex-panel__wrap")[0];b.insertBefore(a,b.childNodes[0]);}
function initPkg_FansContinue_Func(){document.getElementsByClassName("fans-continue")[0].addEventListener("click",function(){fetch('https://www.douyu.com/member/cp/getFansBadgeList',{method:'GET',mode:'no-cors',cache:'default',credentials:'include',}).then(res=>{return res.text();}).then(async(doc)=>{doc=(new DOMParser()).parseFromString(doc,'text/html');let a=doc.getElementsByClassName("fans-badge-list")[0].lastElementChild;let n=a.children.length;for(let i=0;i{sendGift_bag(268,1,rid).then(data=>{if(data.msg=="success"){showMessage("【续牌】"+rid+"赠送一根荧光棒成功","success");}else{showMessage("【续牌】"+rid+"赠送失败 "+data.msg,"error");console.log(rid,data);}}).catch(err=>{showMessage("【续牌】"+rid+"赠送失败","error");console.log(rid,err);})});}}).catch(err=>{console.log("请求失败!",err);})});}
function sendGift_bag(gid,count,rid){return fetch("https://www.douyu.com/japi/prop/donate/mainsite/v1",{method:'POST',mode:'no-cors',credentials:'include',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:'propId='+gid+'&propCount='+count+'&roomId='+rid+'&bizExt=%7B%22yzxq%22%3A%7B%7D%7D'}).then(res=>{return res.json();})}
function initPkg_FishFood(){initPkg_FishFood_Dom();initPkg_FishFood_Func();}
function initPkg_FishFood_Dom(){FishFood_insertIcon();}
function FishFood_insertIcon(){let a=document.createElement("div");a.className="fish-food";a.innerHTML='';let b=document.getElementsByClassName("ex-panel__wrap")[0];b.insertBefore(a,b.childNodes[0]);}
function initPkg_FishFood_Func(){document.getElementsByClassName("fish-food")[0].addEventListener("click",function(){fetch("https://www.douyu.com/japi/activepointnc/api/getActivePointInfo",{method:'POST',mode:'no-cors',credentials:'include',headers:{'Content-Type':'application/x-www-form-urlencoded'}}).then(res=>{return res.json();}).then(async(ret)=>{let cnt=Number(ret.data.dailyMaxLotteryTimes)-Number(ret.data.usedLotteryCount);if(cnt==0){showMessage("【寻宝】"+"今日寻宝次数已到达上限","warning");return;}
for(let i=0;i{fetch("https://www.douyu.com/japi/activepointnc/api/dolottery",{method:'POST',mode:'no-cors',credentials:'include',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:'rid='+rid}).then(res=>{return res.json();}).then(ret=>{if(ret.data!=null){if(Object.keys(ret.data).length!=0){showMessage("【寻宝】"+ret.data.msg,"success");}}else{showMessage("【寻宝】"+ret.msg,"warning");}}).catch(err=>{console.log("请求失败!",err);})})}})})}
function initPkg_FishPond(){initPkg_FishPond_Dom();initPkg_FishPond_Func();}
function initPkg_FishPond_Timer(){initPkg_FishPond_Bubble_Timer();initPkg_FishPond_Box_Timer();initPkg_FishPond_Task_Timer();}
function initPkg_FishPond_Func(){document.getElementsByClassName("fish-pond")[0].addEventListener("click",function(){initPkg_FishPond_Bubble();initPkg_FishPond_Box();initPkg_FishPond_Task();})}
function initPkg_FishPond_Dom(){FishPond_insertIcon();}
function FishPond_insertIcon(){let a=document.createElement("div");a.className="fish-pond";a.innerHTML='';let b=document.getElementsByClassName("ex-panel__wrap")[0];b.insertBefore(a,b.childNodes[0]);}
function FishPond_showTip(a){let d=document.getElementById("fish-pond__tip");if(a==true){if(d.style.display!="block"){showMessage("【鱼粮】有鱼粮可以领取啦!","info");d.style.display="block";}}else{d.style.display="none";}}
var boxList=[];function initPkg_FishPond_Box(){getFishPond_Box();}
function initPkg_FishPond_Box_Timer(){getFishPond_BoxList();}
function getFishPond_Box(){if(boxList.length==0){showMessage("【鱼塘宝箱】暂无可领取的鱼粮","info");return;}
let arr=boxList.concat();for(let i=0;i{return res.json();}).then(ret=>{let result="";for(let i=0;i{console.log("请求失败!",err);})}
function getFishPond_BubbleList(){fetch('https://www.douyu.com/japi/tasksys/ytxb/bubble',{method:'GET',mode:'no-cors',credentials:'include'}).then(res=>{return res.json();}).then(ret=>{bubbleList.length=0;for(let i=0;i{console.log("请求失败!",err);})}
var taskList=[];function initPkg_FishPond_Task(){getFishPond_Task();}
function initPkg_FishPond_Task_Timer(){getFishPond_TaskList();}
function getFishPond_Task(){if(taskList.length==0){showMessage("【鱼塘任务】暂无可领取的鱼粮","info");return;}
let arr=taskList.concat();for(let i=0;i{return res.json();}).then(ret=>{showMessage("【鱼塘任务】领取结果:"+ret.data.msg,"success");}).catch(err=>{console.log("请求失败!",err);})}
taskList.length=0;FishPond_showTip(false);}
function getFishPond_TaskList(){taskList.length=0;getFishPond_TaskList_Day();getFishPond_TaskList_Week();getFishPond_TaskList_Ytzb();}
function getFishPond_TaskList_Day(){fetch('https://www.douyu.com/japi/tasksys/ytxb/userStatusV2?cycleType=1&roomId='+rid,{method:'GET',mode:'no-cors',credentials:'include'}).then(res=>{return res.json();}).then(ret=>{for(let i=0;i{console.log("请求失败!",err);})}
function getFishPond_TaskList_Week(){fetch('https://www.douyu.com/japi/tasksys/ytxb/userStatusV2?cycleType=2&roomId='+rid,{method:'GET',mode:'no-cors',credentials:'include'}).then(res=>{return res.json();}).then(ret=>{for(let i=0;i{console.log("请求失败!",err);})}
function getFishPond_TaskList_Ytzb(){fetch('https://www.douyu.com/japi/tasksys/ytxb/userStatusV2?cycleType=25&roomId='+rid,{method:'GET',mode:'no-cors',credentials:'include'}).then(res=>{return res.json();}).then(ret=>{for(let i=0;i{console.log("请求失败!",err);})}
let videoPlayerArr=[];function initPkg_PopupPlayer(){initPkg_PopupPlayer_Dom();initPkg_PopupPlayer_Func();}
function initPkg_PopupPlayer_Dom(){PopupPlayer_insertIcon();}
function PopupPlayer_insertIcon(){let a=document.createElement("div");a.className="popup-player";a.innerHTML='';let b=document.getElementsByClassName("ex-panel__wrap")[0];b.insertBefore(a,b.childNodes[0]);}
function initPkg_PopupPlayer_Func(){document.getElementsByClassName("popup-player")[0].addEventListener("click",function(){let roomUrl=prompt("请输入直播间地址","https://www.douyu.com/5189167");if(roomUrl==null){return;}
if(roomUrl!=""){getRealRid(roomUrl,(rid)=>{createNewVideo(videoPlayerArr.length,rid);})}else{showMessage("请输入地址","error");}});}
function createNewVideo(id,rid){getRealLive(rid,true,"1","1",(lurl)=>{if(lurl!=""||lurl!=null){let a=document.createElement("div");let html="";a.id="videoDiv"+String(id);a.rid=rid;a.className="videoDiv";html+="
";html+="";a.innerHTML=html;let b=document.getElementsByClassName("layout-Main")[0];b.insertBefore(a,b.childNodes[0]);setElementDrag(id);setElementResize(id);setElementFunc(id,rid);setElementVideo(id,lurl);}});}
function setElementFunc(id,rid){let box=document.getElementById("videoDiv"+String(id));let videoPlayer=document.getElementById("videoPlayer"+String(id));let info=document.getElementById("videoInfo"+String(id));let scale=document.getElementById("videoScale"+String(id));videoPlayer.onclick=function(e){e.stopPropagation();e.preventDefault();if(scale.style.display!="block"){scale.style.display="block";info.style.display="block";}else{scale.style.display="none";info.style.display="none";}
for(let i=0;i{videoPlayerArr[id].destroy();setElementVideo(id,lurl);})}
videoCDN.onchange=function(){getRealLive(rid,true,videoClarity.value,videoCDN.value,(lurl)=>{videoPlayerArr[id].destroy();setElementVideo(id,lurl);})}
videoClose.onclick=function(){box.remove();}
let videoRID=document.getElementById("videoRID"+String(id));videoRID.onclick=function(){getRealLive(rid,false,videoClarity.value,videoCDN.value,(lurl)=>{GM_setClipboard(lurl);showMessage("复制成功","success");})}}
function setElementVideo(id,l){if(flvjs.isSupported()){var videoElement=document.getElementById("videoPlayer"+String(id));var flvPlayer=flvjs.createPlayer({type:'flv',url:l});if(id>videoPlayerArr.length-1){videoPlayerArr.push(flvPlayer);}else{videoPlayerArr[id]=flvPlayer;}
flvPlayer.attachMediaElement(videoElement);flvPlayer.load();flvPlayer.play();}}
function setElementResize(id){let box=document.getElementById("videoDiv"+String(id));let scale=document.getElementById("videoScale"+String(id));scale.onmousedown=function(e){e.stopPropagation();e.preventDefault();let pos={'w':box.offsetWidth,'h':box.offsetHeight,'x':e.clientX,'y':e.clientY};let w;let h;document.onmousemove=function(ev){ev.stopPropagation();ev.preventDefault();w=Math.max(300,ev.clientX-pos.x+pos.w)
h=Math.max(150,ev.clientY-pos.y+pos.h)
w=w>=document.offsetWidth-box.offsetLeft?document.offsetWidth-box.offsetLeft:w
h=h>=document.offsetHeight-box.offsetTop?document.offsetHeight-box.offsetTop:h}
document.onmouseup=function(e){e.stopPropagation();e.preventDefault();box.style.width=w+'px';box.style.height=h+'px';document.onmousemove=null;document.onmouseup=null;}}}
function setElementDrag(id){let box=document.getElementById("videoDiv"+String(id));box.onmousedown=function(event){event.stopPropagation();let xx=event.clientX-box.offsetLeft;let yy=event.clientY-box.offsetTop;let mouseX;let mouseY;document.onmousemove=function(event){event.stopPropagation();mouseX=event.clientX-xx;mouseY=event.clientY-yy;}
document.onmouseup=function(event){event.stopPropagation();box.style.left=mouseX+"px";box.style.top=mouseY+"px";document.onmousemove=null;document.onmouseup=null;}}}
let real_viewIcon=''
let real_danmuIcon=''
let real_money_yc=''
let real_info={view:"",showtime:777,danmu_person_count:"",gift_person_count:"",isShow:2,money_yc:0,money_bag:0,money_total:0,}
function initPkg_RealAudience(){initPkg_RealAudience_Dom();initPkg_RealAudience_Func();fetch("https://www.douyu.com/swf_api/h5room/"+rid,{method:'GET',mode:'no-cors',credentials:'include'}).then(res=>{return res.json();}).then(retData=>{real_info.showtime=retData.data.show_time;real_info.isShow=retData.data.show_status;getRealViewer();setInterval(getRealViewer,30000);}).catch(err=>{console.log("请求失败!",err);})}
function initPkg_RealAudience_Dom(){document.querySelector(".AnchorAnnounce > h3").style.display="none";let html="";let a=document.createElement("div");a.className="real-audience";html+="