Greasy Fork

Greasy Fork is available in English.

pure-douyu

only watch live

目前为 2025-04-25 提交的版本,查看 最新版本

// ==UserScript==
// @name         pure-douyu
// @namespace    https://github.com/ljezio
// @version      1.0
// @description  only watch live
// @author       ljezio
// @license      MIT
// @match        https://www.douyu.com/*
// @icon         https://www.douyu.com/favicon.ico
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    const player = document.querySelector('.layout-Player');
    const root = document.querySelector('#root') ||
        document.querySelector('section[class="layout-Container"]');
    if (!root || !player) return;
    removeNude(root);
    // 先把播放器设置为root子节点,再处理播放器
    root.appendChild(player);
    clearPayer(player)
    resize(player);

    /**
     * 移除无用元素
     */
    function removeNude(root) {
        root.style.padding = '0';
        const header = document.querySelector('#js-header');
        if (header) {
            header.style.display = 'none';
        }
        root.innerHTML = '';
        root.appendChild(header);
    }

    /**
     * 清空播放器无用元素
     */
    function clearPayer() {
        document.querySelector('#js-player-title')?.remove();
        document.querySelector('#js-player-toolbar')?.remove();
        document.querySelector('.layout-Player .layout-Player-aside')?.remove();
        const interval = setInterval(() => {
            const element = document.querySelector('div[class^="controlbar-"]');
            if (!element) return;
            element.style.width = '100%';
            document.querySelector('div[title="主播精彩时刻"]')?.remove();
            document.querySelector('div[title="问题反馈"]')?.remove();
            document.querySelector('div[title="显示字幕"]')?.remove();
            document.querySelector('div[title="多路观看"]')?.remove();
            document.querySelector('div[title="网页全屏"]')?.remove();
            clearInterval(interval)
        }, 1000)
    }

    /**
     * 播放器自适应宽高
     */
    function resize(player) {
        const windowHeight = innerHeight - 10;
        const height = player.offsetHeight;
        if (height > windowHeight) {
            player.style.width = innerWidth * (windowHeight / height) + 'px'
        }
        player.style.margin = '0 auto';
    }
})();