// ==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.4 // @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() }