// ==UserScript== // @name douyu.com night pure mode // @name:zh-CN 斗鱼网页夜间纯净模式 // @name:zh-TW 斗魚網頁夜間純淨模式 // @namespace https://greasyfork.org/users/282572 // @homepageURL https://github.com/yaozeye/javascript // @version 1.0.3 // @description Make background black on douyu.com // @description:zh-CN 网页端斗鱼(douyu.com)黑色背景-纯净模式 // @description:zh-TW 網頁端斗魚(douyu.com)黑色背景-純淨模式 // @author yaozeye // @copyright 2019, yaozeye // @match *://douyu.com/* // @match *://*.douyu.com/* // @require https://cdn.staticfile.org/jquery/1.12.4/jquery.min.js // @require https://cdn.staticfile.org/moment.js/2.22.2/moment.min.js // @require https://cdn.staticfile.org/feather-icons/4.9.0/feather.min.js // @grant none // @run-at document-end // @license MIT https://opensource.org/licenses/MIT // @downloadURL https://update.greasyfork.icu/scripts/389298/douyucom%20night%20pure%20mode.user.js // @updateURL https://update.greasyfork.icu/scripts/389298/douyucom%20night%20pure%20mode.meta.js // ==/UserScript== (function() { 'use strict'; document.body.style.background="#000"; document.body.style.color="#fff"; })(); (function() { 'use strict'; window.$$jq = jQuery.noConflict(true); var time = 0; var binded = false; var chatcache = { _count_: 0, _total_: 0 }; window.chats = chatcache; var HULALA_HIDE = new Array( ".room-ad-video-down", ".valentine1807", ".adsRoot_7c5z4", ".chat-ad", "#js-annual1809", ".Annual1809", ".room-ad-bottom", "#js-chat-notice", ".column.rec", "#js-recommand", ".recommendAD-824567", ".recommendApp-cbeff7", ".broadcastDiv-343e1a", ".PaladinPop", ".no-login", "#js-annual1809", ".Annual1809-gifttip", ".giftbatter-noble-enter", ".Bottom", ".vote-tips-pop", "[data-component-id=view]", "[data-component-id=ladderNav]" ); var HULALA_DEL = new Array( "#js-annual1809", "#js-room-activity", ".ACT110913", ".giftbatter-box", ".Bottom", ".ToolbarActivityArea", ".Title-columnTag", ".PlayerToolbar-Task", "#js-background-holder", ".layout-TopButton--diy", ); var removeAD = function(){ var gifts = $$jq("#listId").parent().parent(); var chat = $$jq(".PlayerCaseSub-Main.is-unlogin"); for (var i = 0;i= 15 && timer) { window.clearInterval(timer); timer = null; } }, 3000); var chatHandler = function(e){ var node = e.target; if (node.tagName === 'LI') { var user = $$jq(node); user.find(".Barrage-icon,.Motor,.UserLevel").hide(); user.find(".chat-icon-pad, .motorcade-icon").hide(); if (user.hasClass("status-low-enter") || user.find(".Barrage-userEnter").length > 0) { user.hide(); } var username = user.find(".Barrage-nickName").attr("title") || user.find(".js-nick").data("nn") || user.find(".js-nick").text().trim(); var userid = user.find(".Barrage-nickName").data("uid") || user.find(".js-nick").attr("rel"); var usersay = user.find(".Barrage-content").text().trim() || user.find("[chatid]").text().trim(); var timestamp = new Date().getTime(); if (!usersay) { user.hide(); } if (node.innerText.indexOf('欢迎来到本直播间') !== -1) { if(!chatcache[userid]) { chatcache[userid] = { name: String(username), chats: [], time: moment(timestamp).format("YYYY-MM-DD HH:mm:ss"), timestamp: timestamp }; chatcache._count_ ++; } } if(!chatcache[userid]) { chatcache[userid] = { name: String(username), chats: [], time: moment(timestamp).format("YYYY-MM-DD HH:mm:ss"), timestamp: timestamp }; chatcache._count_ ++; } var tc = chatcache._count_; if(chatcache._count_ > 999) { tc = "999+"; } $$jq("#chatman").text(tc).attr("title", `共${chatcache._count_}人`); if (usersay) { chatcache[userid].chats.push({ say: usersay, time: moment(timestamp).format("YYYY-MM-DD HH:mm:ss"), timestamp: timestamp }); chatcache._total_ ++; var tt = chatcache._total_; if(chatcache._total_ > 999) { tt = "999+"; } $$jq("#chattotal").text(tt).attr("title", `共${chatcache._total_}条弹幕`); } } } var removeWelcome = function(){ if(binded){ return; } var chatlist = $$jq('.layout-Player-aside'); chatlist.on("DOMNodeInserted", "#js-barrage-list",chatHandler); var spelist = $$jq(".PlayerCaseSub-Main"); spelist.on("DOMNodeInserted",'[data-type="chat-list"]',chatHandler); binded = true; } var closeChat = function(){ $$jq("[class^=comment]").css("visibility","hidden"); } var rightChat = function(){ $$jq("#js-player-barrage").css("top","0px"); $$jq(".Barrage-toolbar").css("marginTop","0px"); $$jq(".layout-Player-rankAll,.layout-Player-rank,#js-floatingbarrage-container").remove(); if($$jq(".Barrage").find("#chattitle").length <= 0) { $$jq(".Barrage").prepend( `
聊天窗口 0人/0条弹幕
` ); } $$jq("#js-barrage-list").parent().css("top","38px"); $$jq(".Barrage-toolbar").css({ "right": "-46px", "top": "10px", "left": "auto", "display": "block" }); $$jq(".Barrage-toolbarLock,.Barrage-toolbarClear").css({ "border": "0px", "padding": "0px 4px", "margin": "0px" }); $$jq("#js-fans-rank").remove(); $$jq("#js-chat-cont").css("top","0px"); } var layoutMainMarginLeft = "0px"; var roomBackground = "none"; var createTool = function() { var body = $$jq("body"); if($$jq("#js-hulala-tool").length > 0) { return ; } body.append( `
开启纯净模式 关闭纯净模式
` ); feather.replace(); layoutMainMarginLeft = $$jq(".layout-Main").css("marginLeft"); roomBackground = $$jq("[data-component-id=room]").css("background"); $$jq("#js-hulala-tool").on("click", function(e){ var node = $$jq(e.currentTarget); var status = node.data("status") || "false"; node.data("status", status === "true" ? "false" : "true"); status = node.data("status"); if(status === "true") { node.find('[data-trigger="close"]').show(); node.find('[data-trigger="open"]').hide(); node.css({ background: "#000", color: "#fff" }); openMini(); } else { node.find('[data-trigger="open"]').show(); node.find('[data-trigger="close"]').hide(); node.css({ background: "#000", color: "#fff" }); closeMini(); } }); } var miniMap = [ "#js-player-title", "#js-player-toolbar", "#js-header", ".layout-Aside", "#js-stats-and-actions", "#anchor-info", ".lol-activity", "[data-component-id=header]" ]; var openMini = function() { for(var i = 0; i < miniMap.length; i++) { $$jq(miniMap[i]).hide(); } $$jq("body, html").css("background", "#000"); $$jq(".layout-Main").css("margin", "0px auto"); var video = $$jq("#js-room-video"); if($$jq("#room-html5-player").length > 0) { video = $$jq("#room-html5-player"); } var width = video.width(); var height = video.height() - $$jq("[class^=controlbar]").height(); $$jq("[id^=__video], [class^=screenshot]").css("width", width); $$jq("[id^=__video], [class^=screenshot]").css("height", height); $$jq("[class^=controlbar]").css("width",width); $$jq(".layout-Container").css("background","none"); $$jq("[data-component-id=room]").css("background", "none"); if($$jq("[data-component-id=room]").length > 0) { $$jq("[data-component-id=room]").css("marginTop", "100px"); } } var closeMini = function() { for(var i = 0; i < miniMap.length; i++) { $$jq(miniMap[i]).show(); } $$jq("body, html").css("background", "#fff"); $$jq(".layout-Main").css("marginLeft",layoutMainMarginLeft); var video = $$jq("#js-room-video"); if($$jq("#room-html5-player").length > 0) { video = $$jq("#room-html5-player"); } var width = video.width(); var height = video.height() - $$jq("[class^=controlbar]").height(); $$jq("[id^=__video], [class^=screenshot]").css("width", width); $$jq("[id^=__video], [class^=screenshot]").css("height", height); $$jq("[class^=controlbar]").css("width",width); $$jq("[data-component-id=room]").css("background", roomBackground); $$jq("[data-component-id=room]").css("marginTop", "0px"); } window.setInterval(function(){ removeWelcome(); //closeChat(); rightChat(); createTool(); }, 1000); })();