// ==UserScript== // @name 斗鱼清爽版【整合功能】 // @author sam // @namespace Douyu.tv // @version 1.0.1 // @description douyu整合优化斗鱼功能脚本(斗鱼精简、斗鱼真实人数显示、斗鱼默认最高画质) // @note 斗鱼精简 https://greasyfork.org/zh-CN/scripts/386642-%E6%96%97%E9%B1%BC%E7%B2%BE%E7%AE%80 // @note 斗鱼真实人数显示 https://greasyfork.org/zh-CN/scripts/388941-%E6%96%97%E9%B1%BC%E7%9C%9F%E5%AE%9E%E4%BA%BA%E6%95%B0%E6%98%BE%E7%A4%BA // @note 斗鱼默认最高画质 https://greasyfork.org/zh-CN/scripts/384173-%E6%96%97%E9%B1%BC%E9%BB%98%E8%AE%A4%E6%9C%80%E9%AB%98%E7%94%BB%E8%B4%A8 // @match http*://www.douyu.com/* // @icon https://www.douyu.com/favicon.ico // @run-at document-end // @downloadURL none // ==/UserScript== (function() { window.onload = function(){ var curent_url = window.location.href; console.log('[Neat Douyu Stream] url --> '+curent_url) loadStyle(css);//精简界面 autoClick();//窗口化全屏,切换最高画质 setTimeout(getRealViewer,3000);//真实人数 setInterval(getRealViewer,10000); }; })(); var css = '{display:none !important;height:0 !important}'; css += '.layout-Player-rank{display:none !important}'; css += '.layout-Player-barrage{top:0px !important;}'; css += '.layout-Player-video{bottom:0px !important}'; css += '.layout-Player-toolbar{visibility:hidden !important;}'; css += '.layout-Bottom{display:none !important;}'; css += '.guessGameContainer.is-normalRoom{display:none !important;}'; css += '.DropPane-ad{display:none !important}'; css += '.SignBaseComponent-sign-ad{display:none !important}'; //css += '.AnchorAnnounce{display:none !important;}'; //斗鱼真实人数显示 css += '.FansMedalPanel-enter{display:none !important;}'; css += '.layout-Aside{display:none !important;}'; css += '.Header-download-wrap{display:none !important;}'; css += '.Header-broadcast-wrap{display:none !important;}'; css += '#js-header > div > div > div.Header-left > div > ul > li:nth-child(5){display:none !important;}'; css += '.ChatNobleBarrage{display:none !important;}'; css += '.ChatFansBarrage{display:none !important;}'; css += '.Horn4Category{display:none !important;}'; css += '.FirePower{display:none !important;}'; css += '.TreasureDetail{display:none !important;}'; css += '.SignChatAd-chat-ad-cls{display:none !important;}'; css += '.Promotion-nobleRights{display:none !important;}'; css += '.Task{display:none !important;}'; css += '.UPlayerLotteryEnter.is-active{display:none !important;}'; css += '.LotteryContainer{display:none !important;}'; css += '.layout-Module-head.FollowList-head.is-fixed{display:none !important;}'; css += '.layout-Banner-item{display:none !important;}'; css += '.layout-Module-extra{display:none !important;}'; css += '.Title-anchorPic{display:none !important;}'; css += '.Title-roomOtherBottom{display:none !important;}'; css += '.Act129684Bar-view1{display:none !important;}'; css += '.Act129684Bar-content{display:none !important;}'; css += '.Act129684-logo{display:none !important;}'; css += '.ActBase-switch{display:none !important;}'; css += '.HeaderNav{display:none !important;}'; css += '.HeaderGif-left{display:none !important;}'; css += '.HeaderGif-right{display:none !important;}'; css += '.Prompt-container{display:none !important;}'; css += '.SysSign-Ad{display:none !important;}'; css += '.ActDayPay-toast{display:none !important;}'; css += '.code_box-5cdf5a{display:none !important;}'; css += '.normalDiv-8b686d{display:none !important;}'; css += '.closeBg-998534{display:none !important;}'; css += '.bg-d4758b{display:none !important;}'; css += '.fireOpenRanking react-draggable react-draggable-dragged{display:none !important;}'; css += '.vsFestival1908{display:none !important;}'; css += '.ActSuperFansGroup-component.ActSuperFansGroupBar-normalBody{display:none !important;}'; css += '.ActSuperFansGroup-component.ActSuperFansGroupBar-miniBody{display:none !important;}'; css += '.ActSuperFansGroup-component.ActSuperFansGroupBar-plusBody{display:none !important;}'; css += '.ActSuperFansGroup-logo{display:none !important;}'; css += '.ActSuperFansGroup-switch{display:none !important;}'; css += '.TitleSuperFansIcon{display:none !important;}'; css += '.Act156581Bar{display:none !important;}'; css += '.Act159742Bar-main--pre{display:none !important;}'; css += '.Act159742-logo{display:none !important;}'; css += '.Act159742Bar-wrap{display:none !important;}'; css += '.Title-columnTag{display:none !important;}'; css += '.Title-impress.clearFix{display:none !important;}'; function loadStyle(css) { var style = document.createElement('style'); style.type = 'text/css'; style.rel = 'stylesheet'; style.appendChild(document.createTextNode(css)); var head = document.getElementsByTagName('head')[0]; head.appendChild(style); console.log('[Neat Douyu Stream]已完成:页面精简') }; function getRealViewer() { let viewIcon = '' let hotIcon = '' let a = { view: "", showtime: "", hot: "" } let url = document.getElementsByTagName('html')[0].innerHTML; let urlLen = ("$ROOM.room_id =").length; let ridPos = url.indexOf('$ROOM.room_id ='); let rid = url.substring(ridPos+urlLen,url.indexOf(';',ridPos+urlLen)); rid = rid.trim(); if(document.querySelector(".MatchSystemChatRoomEntry") != null){ document.querySelector(".MatchSystemChatRoomEntry").style.display = "none"; } $.get("https://www.douyu.com/swf_api/h5room/" + rid,function(retData){ a.view = retData.data.online; a.view = '' + a.view + "" a.view = "
" + viewIcon + a.view + "
" a.hot = document.querySelector(".Title-anchorText").innerHTML; a.hot = '' + a.hot + "" a.showtime = timeStampTurnTime(retData.data.show_time); a.hot = "
" + hotIcon + a.hot + "
" document.querySelector(".AnchorAnnounce").innerHTML = a.view + " " + a.hot + '' + "开播时间:" + a.showtime + ""; console.log('[Neat Douyu Stream]真实人数 --> 观看:'+a.view+' 热度:'+a.hot); }); }; function timeStampTurnTime(timeStamp){ if(timeStamp > 0){ let date = new Date(); date.setTime(timeStamp * 1000); let y = date.getFullYear(); let m = date.getMonth() + 1; m = m < 10 ? ('0' + m) : m; let d = date.getDate(); d = d < 10 ? ('0' + d) : d; let h = date.getHours(); h = h < 10 ? ('0' + h) : h; let minute = date.getMinutes(); let second = date.getSeconds(); minute = minute < 10 ? ('0' + minute) : minute; second = second < 10 ? ('0' + second) : second; return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second; }else{ return ""; } }; function autoClick(){ const startTime = new Date().getTime() let count = 1 let dom = Array.from(document.querySelectorAll('input')).find((item,index)=>{return item.value.includes('画质')}); let window_fullscreen = document.querySelector("#__h5player > div:nth-child(10) > div > div > div.right-e7ea5d > div.wfs-2a8e83"); if(dom && window_fullscreen){ window_fullscreen.click() const ul_dom = Array.from(dom.parentNode.childNodes).find((item)=>item.tagName=='UL') const li_dom = Array.from(ul_dom.childNodes) let seleteIndex = 0 li_dom.forEach((item,index)=>{ if(item.className!=''){ seleteIndex = index } }) if(seleteIndex==0){ const endTime = new Date().getTime() console.log('默认为最高画质,无需切换') console.log(`脚本结束,耗时:${(endTime-startTime)/1000}秒`) }else{ const endTime = new Date().getTime() const old_quality = li_dom[seleteIndex].innerText const new_quelity = li_dom[0].innerText li_dom[0].click() console.log(`已从${old_quality}切换到${new_quelity}`) console.log(`脚本结束,耗时:${(endTime-startTime)/1000}秒`) console.log('[Neat Douyu Stream]已完成:自动点击'); } }else{ if(count++<20){ setTimeout(()=>{ autoClick() },1000) }else{ console.log('脚本结束,可能此网站不是直播间') } } };