Greasy Fork

Greasy Fork is available in English.

直播平台自动网页全屏/关闭弹幕

直播平台进入直播间后自动网页全屏和关闭弹幕

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         直播平台自动网页全屏/关闭弹幕
// @namespace    http://tampermonkey.net/
// @homeurl      https://github.com/xiandanin/LardMonkeyScripts
// @homeurl      http://greasyfork.icu/zh-CN/scripts/377547
// @version      1.1
// @description  直播平台进入直播间后自动网页全屏和关闭弹幕
// @author       xiandanin
// @match        https://www.douyu.com/*
// @match        https://www.panda.tv/*
// @match        https://www.huya.com/*
// @match        https://cc.163.com/*
// @grant        none
// ==/UserScript==

(function () {
    let time = 0

    /**
     * 需要的节点加载完成的检测
     */
    function lazyLoadingDetection (selectors, callback) {
        const intervalTime = 300
        let interval = setInterval(function () {
            //检测节点已经加载完成或者超过最大检测时间 都停止
            if (document.querySelector(selectors)) {
                console.log('%dms,检测节点加载完成,可以执行操作', time)
                clearInterval(interval);
                callback()
            } else if (time >= 8000) {
                console.log('%dms,计时器超时', time)
                clearInterval(interval);
            }
            time += intervalTime;
        }, intervalTime);
    }

    function checkAndClickSwitch (delayClickTime, checkFunc, ...clickSelectors) {
        lazyLoadingDetection(clickSelectors[0], function () {
            for (let i = 0; i < clickSelectors.length; i++) {
                const clickElement = document.querySelector(clickSelectors[i]);
                // 检查当前状态是否需要点击
                if (checkFunc(clickElement)) {
                    setTimeout(function () {
                        clickElement.click()
                    }, delayClickTime)
                }
            }
        })
    }

    const host = window.location.host
    if (host.indexOf("douyu.com") !== -1) {
        //斗鱼
        checkAndClickSwitch(0, clickElement => {
            // 检测是开关状态
            return !clickElement.classList.contains("removed-9d4c42")
            //网页全屏 弹幕
        }, ".wfs-2a8e83", '.showdanmu-42b0ac')
        // 自动选择最高清的
        const quality = document.querySelector('.tip-e3420a > ul').children
        quality[0].click()
    } else if (host.indexOf("huya.com") !== -1) {
        //虎牙
        checkAndClickSwitch(0, clickElement => {
            return clickElement.className === 'player-fullpage-btn' || clickElement.className === 'danmu-show-btn'
        }, "#player-fullpage-btn", '#player-danmu-btn')
    } else if (host.indexOf("cc.163.com") !== -1) {
        //cc 点击事件延迟1秒
        checkAndClickSwitch(1000, clickElement => {
            return !clickElement.classList.contains("theater") || !clickElement.classList.contains("on") || !clickElement.classList.contains("selected")
            //CC需要先检测其它开关
        }, '.ban-effect-list > li:nth-child(3)', '.ban-effect-list > li:nth-child(4)', '.ban-effect-list > li:nth-child(5)', ".video-player-theater-control", '.video-player-comment')
    }


})();