// ==UserScript== // @name Live Danmaku Controller // @name:en-US Live Danmaku Controller // @name:zh-CN 直播弹幕控制 // @description Auto turn off live danmaku. // @description:en-US Auto turn off live danmaku. // @description:zh-CN 自动关闭直播弹幕. // @namespace live-danmaku-controller // @version 2020.07.27.1 // @author Akatsuki // @license MIT License // @grant GM_info // @run-at document-idle // @match *://live.bilibili.com/* // @match *://www.douyu.com/* // @match *://www.huya.com/* // @match *://www.yy.com/* // @downloadURL none // ==/UserScript== 'use strict' var selector = { 'live.bilibili.com': { 'on': "i[class='live-icon-danmaku-on']", 'off': "i[class='live-icon-danmaku-off']" }, 'www.douyu.com': { 'on': "div[class^='showdanmu-']:not([class*='removed-'])", 'off': "div[class^='hidedanmu-']:not([class*='removed-'])" }, 'www.huya.com': { 'on': "div[class='danmu-show-btn'][title='关闭弹幕']", 'off': "div[class='danmu-show-btn danmu-hide-btn'][title='开启弹幕']" }, 'www.yy.com': { 'on': "div[class~='yc__bullet-comments-btn'][title='关闭弹幕']", 'off': "div[class~='yc__bullet-comments-btn'][title='打开弹幕']" } } var delay_site = [ 'www.yy.com' ] var live_site = document.location.hostname // Danmaku disabler. function disable_danmaku() { var button_on = document.querySelector(selector[live_site].on) if (button_on !== null) { button_on.click() } setTimeout(() => { if (document.querySelector(selector[live_site].off) === null) { disable_danmaku() } }, 500) } // Delay danmaku disabler for some sites. (delay 10s) // To fix the button showing as OFF, but danmaku still appear. if (delay_site.includes(live_site)) { setTimeout(disable_danmaku, 10000) } else ( disable_danmaku() )