🏠 Home 

Live Danmaku Controller

Automatically turn off the live streaming danmaku

// ==UserScript==
// @name                Live Danmaku Controller
// @name:en-US          Live Danmaku Controller
// @name:zh-CN          直播弹幕控制
// @name:zh-TW          直播彈幕控制
// @description         Automatically turn off the live streaming danmaku
// @description:en-US   Automatically turn off the live streaming danmaku
// @description:zh-CN   自动关闭直播弹幕
// @description:zh-TW   自動關閉直播彈幕
// @namespace           live-danmaku-controller
// @version             2021.10.06
// @author              Akatsuki Rui
// @license             MIT License
// @grant               GM_info
// @compatible          chrome Since Chrome 49.x
// @compatible          firefox Since Firefox 44.x
// @compatible          opera Since 17.x
// @run-at              document-idle
// @match               *://www.douyu.com/*
// @match               *://www.huya.com/*
// @match               *://www.yy.com/*
// ==/UserScript==
"use strict";
const SELECTOR = {
"www.douyu.com": {
on: "div[class^='showdanmu-']:not([class*='removed-'])",
off: "div[class^='hidedanmu-']:not([class*='removed-'])",
},
"www.huya.com": {
on: "div[id='player-danmu-btn'][title='关闭弹幕']",
off: "div[id='player-danmu-btn'][title='开启弹幕']",
},
"www.yy.com": {
on: "div[class~='yc__bullet-comments-btn'][title='关闭弹幕']",
off: "div[class~='yc__bullet-comments-btn'][title='打开弹幕']",
},
};
// Delay danmaku disabler for some sites (Default 10s)
const DELAY_TIME = 10000;
const DELAY_SITE = ["www.yy.com"];
const LIVE_SITE = document.location.hostname;
// Danmaku disabler
function disableDanmaku() {
let button = document.querySelector(SELECTOR[LIVE_SITE].on);
if (button) {
button.click();
}
setTimeout(() => {
if (document.querySelector(SELECTOR[LIVE_SITE].off) === null) {
disableDanmaku();
}
}, 500);
}
// To fix the button is showing as OFF, but danmaku still appear
DELAY_SITE.includes(LIVE_SITE)
? setTimeout(disableDanmaku, DELAY_TIME)
: disableDanmaku();