Greasy Fork is available in English.
斗鱼(douyu.com)纯净版,只保留直播和弹幕
当前为
// ==UserScript==
// @name 纯净版斗鱼(douyu)
// @namespace https://github.com/ljezio
// @version 1.4
// @description 斗鱼(douyu.com)纯净版,只保留直播和弹幕
// @homepage https://github.com/ljezio/pure-douyu
// @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;
dbClick(player);
removeNude(root, player);
clearPayer(player);
/**
* 双击全屏
*/
function dbClick(player) {
player.ondblclick = () => {
if (!document.fullscreenElement) {
document.querySelector('div[title="全屏"]')?.click();
} else {
document.exitFullscreen().then();
}
}
}
/**
* 隐藏无用元素
*/
function removeNude(root, player) {
root.style.padding = '0';
root.appendChild(player);
for (let node of root.children) {
if (!node.isSameNode(player)) {
setDisplayNone(node);
}
}
}
/**
* 播放器隐藏无用元素
*/
function clearPayer(player) {
setDisplayNone(document.querySelector('#js-player-title'));
setDisplayNone(document.querySelector('.layout-Player .layout-Player-aside'));
document.querySelector('#js-player-toolbar')?.remove();
const interval = setInterval(() => {
const element = document.querySelector('div[class^="controlbar-"]');
if (!element) return;
element.style.width = '100%';
setDisplayNone(document.querySelector('div[class^="bacpCommonKeFu"]'));
setDisplayNone(document.querySelector('div[title="主播精彩时刻"]'));
setDisplayNone(document.querySelector('div[title="问题反馈"]'));
setDisplayNone(document.querySelector('div[title="多路观看"]'));
setDisplayNone(document.querySelector('div[title="网页全屏"]'));
setDisplayNone(document.querySelector('div[title="退出网页全屏"]'));
clearInterval(interval)
}, 500)
resizePlayer(player);
}
/**
* 播放器自适应宽高
*/
function resizePlayer(player) {
const windowHeight = innerHeight - 10;
const height = player.offsetHeight;
if (height > windowHeight) {
player.style.width = innerWidth * (windowHeight / height) + 'px'
}
player.style.margin = '0 auto';
}
/**
* 隐藏元素
*/
function setDisplayNone(node) {
if (!node) return;
node.style.display = "none";
}
})();