"use strict";
// ==UserScript==
// @name 斗鱼骆歆直播间插件
// @namespace https://github.com/qianjiachun
// @icon https://s2.ax1x.com/2020/01/12/loQI3V.png
// @version 2020.01.12.01
// @description 弹幕自动变色循环发送 一键续牌 查看真实人数 已播时长 一键签到 一键领取鱼粮 一键寻宝 送出指定数量的礼物 屏蔽广告 调节弹幕大小 自动更新
// @author 小淳
// @match *://*.douyu.com/0*
// @match *://*.douyu.com/1*
// @match *://*.douyu.com/2*
// @match *://*.douyu.com/3*
// @match *://*.douyu.com/4*
// @match *://*.douyu.com/5*
// @match *://*.douyu.com/6*
// @match *://*.douyu.com/7*
// @match *://*.douyu.com/8*
// @match *://*.douyu.com/9*
// @match *://*.douyu.com/topic/*
// @match *://msg.douyu.com/*
// @grant GM_openInTab
// @grant GM_xmlhttpRequest
// @downloadURL none
// ==/UserScript==
function initPkg(){initPkg_ExIcon();initPkg_ExPanel();initPkg_RemoveAD();initPkg_RealAudience();initPkg_Update();initPkg_ExpandTool();initPkg_BarrageLoop();initPkg_FansContinue();initPkg_FishFood();initPkg_FishPond();initPkg_Sign();}
function initPkg_Timer(){initPkg_FishPond_Timer();}
function initTimer(){initPkg_Timer();exTimer=setInterval(initPkg_Timer,20000);}
function initStyles(){let style=document.createElement("style");style.appendChild(document.createTextNode(`
.bloop {
background-color: rgba(255,255,255,0.9);
width: 100%;
height: 200px;
position: relative;
bottom: 200px;
display: none;
}
.bloop__switch {
position: absolute;
right: 0;
bottom: 0;
}
.ex-icon {
display: inline-block;
vertical-align: middle;
margin-right: 8px;
}
.extool {
background-color: rgba(255,255,255,0.9);
width: 100%;
height: 200px;
position: relative;
bottom: 200px;
display: none;
}
.extool__switch {
position: absolute;
right: 0;
bottom: 0;
}
.extool__bsize,.extool__sendgift {
margin-bottom: 5px;
}
.ex-panel {
width: 450px;
height: 50px;
position: absolute;
bottom: 35px;
right: 100px;
background-color: rgba(255,255,255,0.9);
display: none;
border: 2px rgb(234,173,26) solid;
}
.ex-panel__wrap {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
}
.ex-panel__icon {
margin: 0 10px;
display: block;
position: relative;
padding: 5px;
}
.ex-panel__tip {
display:none;
background:#f00;
border-radius:50%;
width:8px;
height:8px;
top:0px;
right:0px;
position:absolute;
}
/*
Notice.css
*/
.noticejs-top{top:0;width:100%!important}.noticejs-top .item{border-radius:0!important;margin:0!important}.noticejs-topRight{top:10px;right:10px}.noticejs-topLeft{top:10px;left:10px}.noticejs-topCenter{top:10px;left:50%;transform:translate(-50%)}.noticejs-middleLeft,.noticejs-middleRight{right:10px;top:50%;transform:translateY(-50%)}.noticejs-middleLeft{left:10px}.noticejs-middleCenter{top:50%;left:50%;transform:translate(-50%,-50%)}.noticejs-bottom{bottom:0;width:100%!important}.noticejs-bottom .item{border-radius:0!important;margin:0!important}.noticejs-bottomRight{bottom:10px;right:10px}.noticejs-bottomLeft{bottom:10px;left:10px}.noticejs-bottomCenter{bottom:10px;left:50%;transform:translate(-50%)}.noticejs{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.noticejs .item{margin:0 0 10px;border-radius:3px;overflow:hidden}.noticejs .item .close{float:right;font-size:18px;font-weight:700;line-height:1;color:#fff;text-shadow:0 1px 0 #fff;opacity:1;margin-right:7px}.noticejs .item .close:hover{opacity:.5;color:#000}.noticejs .item a{color:#fff;border-bottom:1px dashed #fff}.noticejs .item a,.noticejs .item a:hover{text-decoration:none}.noticejs .success{background-color:#64ce83}.noticejs .success .noticejs-heading{background-color:#3da95c;color:#fff;padding:10px}.noticejs .success .noticejs-body{color:#fff;padding:10px}.noticejs .success .noticejs-body:hover{visibility:visible!important}.noticejs .success .noticejs-content{visibility:visible}.noticejs .info{background-color:#3ea2ff}.noticejs .info .noticejs-heading{background-color:#067cea;color:#fff;padding:10px}.noticejs .info .noticejs-body{color:#fff;padding:10px}.noticejs .info .noticejs-body:hover{visibility:visible!important}.noticejs .info .noticejs-content{visibility:visible}.noticejs .warning{background-color:#ff7f48}.noticejs .warning .noticejs-heading{background-color:#f44e06;color:#fff;padding:10px}.noticejs .warning .noticejs-body{color:#fff;padding:10px}.noticejs .warning .noticejs-body:hover{visibility:visible!important}.noticejs .warning .noticejs-content{visibility:visible}.noticejs .error{background-color:#e74c3c}.noticejs .error .noticejs-heading{background-color:#ba2c1d;color:#fff;padding:10px}.noticejs .error .noticejs-body{color:#fff;padding:10px}.noticejs .error .noticejs-body:hover{visibility:visible!important}.noticejs .error .noticejs-content{visibility:visible}.noticejs .progressbar{width:100%}.noticejs .progressbar .bar{width:1%;height:30px;background-color:#4caf50}.noticejs .success .noticejs-progressbar{width:100%;background-color:#64ce83;margin-top:-1px}.noticejs .success .noticejs-progressbar .noticejs-bar{width:100%;height:5px;background:#3da95c}.noticejs .info .noticejs-progressbar{width:100%;background-color:#3ea2ff;margin-top:-1px}.noticejs .info .noticejs-progressbar .noticejs-bar{width:100%;height:5px;background:#067cea}.noticejs .warning .noticejs-progressbar{width:100%;background-color:#ff7f48;margin-top:-1px}.noticejs .warning .noticejs-progressbar .noticejs-bar{width:100%;height:5px;background:#f44e06}.noticejs .error .noticejs-progressbar{width:100%;background-color:#e74c3c;margin-top:-1px}.noticejs .error .noticejs-progressbar .noticejs-bar{width:100%;height:5px;background:#ba2c1d}@keyframes noticejs-fadeOut{0%{opacity:1}to{opacity:0}}.noticejs-fadeOut{animation-name:noticejs-fadeOut}@keyframes noticejs-modal-in{to{opacity:.3}}@keyframes noticejs-modal-out{to{opacity:0}}.noticejs-rtl .noticejs-heading{direction:rtl}.noticejs-rtl .close{float:left!important;margin-left:7px;margin-right:0!important}.noticejs-rtl .noticejs-content{direction:rtl}.noticejs{position:fixed;z-index:10050;width:320px}.noticejs ::-webkit-scrollbar{width:8px}.noticejs ::-webkit-scrollbar-button{width:8px;height:5px}.noticejs ::-webkit-scrollbar-track{border-radius:10px}.noticejs ::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.5);border-radius:10px}.noticejs ::-webkit-scrollbar-thumb:hover{background:#fff}.noticejs-modal{position:fixed;width:100%;height:100%;background-color:#000;z-index:10000;opacity:.3;left:0;top:0}.noticejs-modal-open{opacity:0;animation:noticejs-modal-in .3s ease-out}.noticejs-modal-close{animation:noticejs-modal-out .3s ease-out;animation-fill-mode:forwards}
`));document.head.appendChild(style);}
(function(){if(window.location.host=="msg.douyu.com"){if(getQueryString("exid")=="chun"){signMotorcade_Sign(getQueryString("mid"),getQueryString("total"));}}else{let intID=setInterval(()=>{if(typeof(document.getElementsByClassName("ChatToolBar")[0])!="undefined"){setTimeout(()=>{initStyles();initPkg();initTimer();},1000)
clearInterval(intID);}},1000);}})()
let barrageColorArr=[];let barrageArr=[];let barrageColorLength=0;let barrageLength=0;let bloopTimer;let barrageOffset=0;let barrageColorOffset=0;let isChangeColor=true;let isMatch=false;function initPkg_BarrageLoop(){initPkg_BarrageLoop_Dom();initPkg_BarrageLoop_Func();initPkg_BarrageLoop_Set();}
function BarrageLoop_insertModal(){let html="";let a=document.createElement("div");a.className="bloop";html+='
弹幕(一行一个):
';html+='';html+='速度(ms):
';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;i{if(isChangeColor==true){selectBarrageColor(barrageColorOffset);barrageColorOffset++;if(barrageColorOffset>barrageColorLength){barrageColorOffset=0;}}
sendBarrage(barrageArr[barrageOffset]);barrageOffset++;if(barrageOffset>barrageLength){barrageOffset=0;}},getSpeed());}else{clearInterval(bloopTimer);}});}
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);document.getElementById("bloop__textarea").value=retJson.text;document.getElementById("bloop__checkbox_changeColor").checked=retJson.isChangeColor;document.getElementById("bloop__text_speed").value=retJson.speed;}}
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='弹幕大小(默认24px): ';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+='礼物ID: ';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=>{showMessage("【送礼】"+ret.msg+" "+ret.data.gid+"送出"+ret.data.num+"个 贡献值"+ret.data.priceType,"success");}).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(ret=>{let cnt=Number(ret.data.dailyMaxLotteryTimes)-Number(ret.data.usedLotteryCount);if(cnt==0){showMessage("【寻宝】"+"今日寻宝次数已到达上限","warning");return;}
for(let i=0;i{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");}})}})})}
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);})}
(function webpackUniversalModuleDefinition(root,factory){if(typeof exports==='object'&&typeof module==='object')module.exports=factory();else if(typeof define==='function'&&define.amd)define("NoticeJs",[],factory);else if(typeof exports==='object')exports["NoticeJs"]=factory();else root["NoticeJs"]=factory()})(typeof self!=='undefined'?self:this,function(){return(function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports}var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{configurable:false,enumerable:true,get:getter})}};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module['default']}:function getModuleExports(){return module};__webpack_require__.d(getter,'a',getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p="dist/";return __webpack_require__(__webpack_require__.s=2)})([(function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var noticeJsModalClassName=exports.noticeJsModalClassName='noticejs-modal';var closeAnimation=exports.closeAnimation='noticejs-fadeOut';var Defaults=exports.Defaults={title:'',text:'',type:'success',position:'topRight',timeout:30,progressBar:true,closeWith:['button'],animation:null,modal:false,scroll:{maxHeight:300,showOnHover:true},rtl:false,callbacks:{beforeShow:[],onShow:[],afterShow:[],onClose:[],afterClose:[],onClick:[],onHover:[],onTemplate:[]}}}),(function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.appendNoticeJs=exports.addListener=exports.CloseItem=exports.AddModal=undefined;exports.getCallback=getCallback;var _api=__webpack_require__(0);var API=_interopRequireWildcard(_api);function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))newObj[key]=obj[key]}}newObj.default=obj;return newObj}}var options=API.Defaults;function getCallback(ref,eventName){if(ref.callbacks.hasOwnProperty(eventName)){ref.callbacks[eventName].forEach(function(cb){if(typeof cb==='function'){cb.apply(ref)}})}}var AddModal=exports.AddModal=function AddModal(){if(document.getElementsByClassName(API.noticeJsModalClassName).length<=0){var element=document.createElement('div');element.classList.add(API.noticeJsModalClassName);element.classList.add('noticejs-modal-open');document.body.appendChild(element);setTimeout(function(){element.className=API.noticeJsModalClassName},200)}};var CloseItem=exports.CloseItem=function CloseItem(item){getCallback(options,'onClose');if(options.animation!==null&&options.animation.close!==null){item.className+=' '+options.animation.close}setTimeout(function(){item.remove()},200);if(options.modal===true&&document.querySelectorAll("[noticejs-modal='true']").length>=1){document.querySelector('.noticejs-modal').className+=' noticejs-modal-close';setTimeout(function(){document.querySelector('.noticejs-modal').remove()},500)}var position='.'+item.closest('.noticejs').className.replace('noticejs','').trim();setTimeout(function(){if(document.querySelectorAll(position+' .item').length<=0){let p=document.querySelector(position);if(p!=null){p.remove()}}},500)};var addListener=exports.addListener=function addListener(item){if(options.closeWith.includes('button')){item.querySelector('.close').addEventListener('click',function(){CloseItem(item)})}if(options.closeWith.includes('click')){item.style.cursor='pointer';item.addEventListener('click',function(e){if(e.target.className!=='close'){getCallback(options,'onClick');CloseItem(item)}})}else{item.addEventListener('click',function(e){if(e.target.className!=='close'){getCallback(options,'onClick')}})}item.addEventListener('mouseover',function(){getCallback(options,'onHover')})};var appendNoticeJs=exports.appendNoticeJs=function appendNoticeJs(noticeJsHeader,noticeJsBody,noticeJsProgressBar){var target_class='.noticejs-'+options.position;var noticeJsItem=document.createElement('div');noticeJsItem.classList.add('item');noticeJsItem.classList.add(options.type);if(options.rtl===true){noticeJsItem.classList.add('noticejs-rtl')}if(noticeJsHeader&¬iceJsHeader!==''){noticeJsItem.appendChild(noticeJsHeader)}noticeJsItem.appendChild(noticeJsBody);if(noticeJsProgressBar&¬iceJsProgressBar!==''){noticeJsItem.appendChild(noticeJsProgressBar)}if(['top','bottom'].includes(options.position)){document.querySelector(target_class).innerHTML=''}if(options.animation!==null&&options.animation.open!==null){noticeJsItem.className+=' '+options.animation.open}if(options.modal===true){noticeJsItem.setAttribute('noticejs-modal','true');AddModal()}addListener(noticeJsItem,options.closeWith);getCallback(options,'beforeShow');getCallback(options,'onShow');document.querySelector(target_class).appendChild(noticeJsItem);getCallback(options,'afterShow');return noticeJsItem}}),(function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i0&&arguments[0]!==undefined?arguments[0]:{};_classCallCheck(this,NoticeJs);this.options=Object.assign(API.Defaults,options);this.component=new _components.Components();this.on('beforeShow',this.options.callbacks.beforeShow);this.on('onShow',this.options.callbacks.onShow);this.on('afterShow',this.options.callbacks.afterShow);this.on('onClose',this.options.callbacks.onClose);this.on('afterClose',this.options.callbacks.afterClose);this.on('onClick',this.options.callbacks.onClick);this.on('onHover',this.options.callbacks.onHover);return this}_createClass(NoticeJs,[{key:'show',value:function show(){var container=this.component.createContainer();if(document.querySelector('.noticejs-'+this.options.position)===null){document.body.appendChild(container)}var noticeJsHeader=void 0;var noticeJsBody=void 0;var noticeJsProgressBar=void 0;noticeJsHeader=this.component.createHeader(this.options.title,this.options.closeWith);noticeJsBody=this.component.createBody(this.options.text);if(this.options.progressBar===true){noticeJsProgressBar=this.component.createProgressBar()}var noticeJs=helper.appendNoticeJs(noticeJsHeader,noticeJsBody,noticeJsProgressBar);return noticeJs}},{key:'on',value:function on(eventName){var cb=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(){};if(typeof cb==='function'&&this.options.callbacks.hasOwnProperty(eventName)){this.options.callbacks[eventName].push(cb)}return this}}]);return NoticeJs}();exports.default=NoticeJs;module.exports=exports['default']}),(function(module,exports){}),(function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Components=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i{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 getRealViewer(){if(document.querySelector(".MatchSystemChatRoomEntry")!=null){document.querySelector(".MatchSystemChatRoomEntry").style.display="none";}
fetch("https://bojianger.com/data/api/common/search.do?keyword="+rid,{method:'GET',}).then(res=>{return res.json();}).then(retData=>{real_info.view=retData.data.anchorVo.audience_count;real_info.view=''+real_info.view+" ";real_info.view=""+real_viewIcon+real_info.view+"
";let showedTime=0;if(real_info.isShow==2){showedTime=0;}else{if(real_info.showtime==777){showedTime=0;}else{showedTime=Math.floor(Date.now()/1000)-Number(real_info.showtime);}}
real_info.danmu_person_count=retData.data.anchorVo.danmu_person_count;real_info.gift_person_count=retData.data.anchorVo.gift_person_count;real_info.danmu_person_count=""+real_danmuIcon+real_info.danmu_person_count+"
";real_info.gift_person_count=""+real_giftIcon+real_info.gift_person_count+"
";document.querySelector(".AnchorAnnounce").innerHTML=real_info.view+" "+real_info.danmu_person_count+" "+real_info.gift_person_count+''+" "+"已播:"+formatSeconds(showedTime)+" ";}).catch(err=>{console.log("请求失败!",err);})}
function initPkg_RemoveAD(){let t=setInterval(()=>{let a=document.getElementsByClassName("PlayerToolbar-wealthNum")[0];if(a!=undefined){removeAD();clearInterval(t);}},1000);removeAD();}
function removeAD(){let a;a=document.getElementsByClassName("recommendAD-54569e")[0];if(a!=undefined){a.remove();}
a=document.getElementsByClassName("recommendApp-0e23eb")[0];if(a!=undefined){a.remove();}
a=document.getElementsByClassName("Title-ad")[0];if(a!=undefined){a.remove();}
a=document.getElementsByClassName("Bottom-ad")[0];if(a!=undefined){a.style.display="none";}
a=document.getElementsByClassName("SignBarrage")[0];if(a!=undefined){a.remove();}
a=document.getElementsByClassName("corner-ad-495ade")[0];if(a!=undefined){a.remove();}
a=document.getElementsByClassName("SignBaseComponent-sign-ad");if(a!=undefined){for(let i=0;i ';let b=document.getElementsByClassName("ex-panel__wrap")[0];b.insertBefore(a,b.childNodes[0]);}
function initPkg_Sign_Client(){signClient();}
function signClient(){GM_xmlhttpRequest({method:"POST",url:"https://apiv2.douyucdn.cn/h5nc/sign/sendSign",data:'token='+dyToken,responseType:"json",headers:{'Content-Type':'application/x-www-form-urlencoded'},onload:function(response){let ret=response.response;if(ret.data.length==0){showMessage("【客户端】今日已签到","warning");}else{if(ret.data.sign_pl.length!=0){let recv="";for(let i=0;i{return res;}).then(ret=>{if(Math.floor(ret.status_code/100)==2){console.log("【车队】签到成功")}else{console.log(ret.message);}
closePage();}).catch(err=>{console.log("请求失败!",err)
closePage();})}
function initPkg_Sign_Room(){signAllRoom();}
function signAllRoom(){let pageCount=0;fetch('https://www.douyu.com/wgapi/livenc/liveweb/follow/list?page=777',{method:'GET',mode:'no-cors',cache:'default',credentials:'include',}).then(res=>{return res.json();}).then(ret=>{pageCount=Number(ret.data.pageCount);for(let nowPage=1;nowPage<=pageCount;nowPage++){fetch('https://www.douyu.com/wgapi/livenc/liveweb/follow/list?page='+String(nowPage),{method:'GET',mode:'no-cors',cache:'default',credentials:'include',}).then(res=>{return res.json();}).then(ret=>{let roomCount=Number(ret.data.list.length);for(let i=0;i{console.log("请求失败!",err);})}
showMessage("【房间签到】"+ret.data.total+"个房间正在签到中...","info");}).catch(err=>{console.log("请求失败!",err);})}
function signRoom(r){GM_xmlhttpRequest({method:"POST",url:"https://apiv2.douyucdn.cn/japi/roomuserlevel/apinc/checkIn",data:'rid='+r,responseType:"json",headers:{'Content-Type':'application/x-www-form-urlencoded','token':dyToken,},onload:function(response){}});}
function initPkg_Sign_Yuba(){signYubaList();}
function signYuba(group_id,t){GM_xmlhttpRequest({method:"POST",url:"https://yuba.douyu.com/ybapi/topic/sign",data:'group_id='+group_id,responseType:"json",headers:{"Content-Type":"application/x-www-form-urlencoded","referer":"https://yuba.douyu.com/group/"+group_id,"dy-client":"pc","dy-token":t},onload:function(response){if(response.response.message==""){showMessage("【鱼吧】"+group_id+"签到成功! 连续"+response.response.data.count+"天 获得经验"+response.response.data.exp,"success");}else{showMessage("【鱼吧】"+group_id+response.response.message,"warning");}}});}
function signYubaList(){GM_xmlhttpRequest({method:"GET",url:"https://yuba.douyu.com/wbapi/web/group/myFollow?page=1&limit=999",responseType:"json",headers:{"Content-Type":"application/x-www-form-urlencoded","dy-client":"pc","dy-token":dyToken},onload:function(response){for(let i=0;i ';let b=document.getElementsByClassName("ex-panel__wrap")[0];b.insertBefore(a,b.childNodes[0]);}
function initPkg_Update_Func(){document.getElementsByClassName("ex-update")[0].addEventListener("click",Update_openUpdatePage);}
function Update_checkVersion(){fetch('https://greasyfork.org/zh-CN/scripts/394497',{method:'GET',mode:'cors',cache:'no-store',credentials:'omit',}).then(res=>{return res.text();}).then(txt=>{txt=(new DOMParser()).parseFromString(txt,'text/html');let v=txt.getElementsByClassName("script-show-version")[1];if(v!=undefined){if(v.innerText!=curVersion){Update_showTip(true);}}}).catch(err=>{console.error('请求失败',err);})}
function Update_openUpdatePage(){openPage("https://greasyfork.org/zh-CN/scripts/394497",true);}
function Update_showTip(a){let d=document.getElementById("ex-update__tip");if(a==true){if(d.style.display!="block"){showMessage("【版本更新】插件有新版本,请及时更新~","error");d.style.display="block";}}else{d.style.display="none";}}
var exTimer=0;var url=document.getElementsByTagName('html')[0].innerHTML;var urlLen=("$ROOM.room_id =").length;var ridPos=url.indexOf('$ROOM.room_id =');var rid=url.substring(ridPos+urlLen,url.indexOf(';',ridPos+urlLen));rid=rid.trim();var dyToken=getToken();function showExPanel(){let a=document.getElementsByClassName("ex-panel")[0];if(a.style.display!="block"){a.style.display="block";}else{a.style.display="none";}}
function sleep(time){return new Promise((resolve)=>setTimeout(resolve,time));}
function formatSeconds(value){let secondTime=parseInt(value);let minuteTime=0;let hourTime=0;if(secondTime>60){minuteTime=parseInt(secondTime/60);secondTime=parseInt(secondTime%60);if(minuteTime>60){hourTime=parseInt(minuteTime/60);minuteTime=parseInt(minuteTime%60);}}
var result=""+parseInt(secondTime)+"秒";if(minuteTime>0){result=""+parseInt(minuteTime)+"分"+result;}
if(hourTime>0){result=""+parseInt(hourTime)+"小时"+result;}
return result;}
function getStrMiddle(str,before,after){let m=str.match(new RegExp(before+'(.*?)'+after));return m?m[1]:false;}
function getToken(){let cookie=document.cookie;let ret=getStrMiddle(cookie,"acf_uid=",";")+"_"+getStrMiddle(cookie,"acf_biz=",";")+"_"+getStrMiddle(cookie,"acf_stk=",";")+"_"+getStrMiddle(cookie,"acf_ct=",";")+"_"+getStrMiddle(cookie,"acf_ltkid=",";");return ret;}
function showMessage(msg,type){new NoticeJs({text:msg,type:type,position:'bottomRight',}).show();}
function openPage(url,b){GM_openInTab(url,{active:b});}
function closePage(){if(navigator.userAgent.indexOf("Firefox")!=-1||navigator.userAgent.indexOf("Chrome")!=-1){window.location.href="about:blank";window.close();}else{window.opener=null;window.open("","_self");window.close();}}
function getQueryString(name){let reg=new RegExp("(^|&)"+name+"=([^&]*)(&|$)","i");if(window.location.hash.indexOf("?")<0){return null;}
let r=window.location.hash.split("?")[1].match(reg);if(r!=null)return decodeURIComponent(r[2]);return null;}