// ==UserScript==
// @name 我自用斗鱼插件
// @namespace Unmht
// @match *://*.douyu.com/*
// @exclude *://*.douyu.com/
// @description 我自己用的,用于屏蔽斗鱼网页上的不想见的东西
// @author unmht
// @run-at document-end
// @grant unsafeWindow
// @grant GM_setClipboard
// @require https://code.jquery.com/jquery-3.4.0.min.js
// @homepage https://greasyfork.org/zh-CN/scripts/373765
// @version 0.0.7
// ==/UserScript==
function AC_addStyle(css, className, addToTarget, isReload) { // 添加CSS代码,不考虑文本载入时间,带有className
var tout = setInterval(function() {
var addImmediately = false;
var addTo = (document.head || document.body || document.documentElement || document);
if (typeof(addToTarget) == "undefined") addImmediately = true;
else addToTarget = addToTarget;
isReload = isReload || false; // 默认是非加载型
if (addImmediately || document.querySelector(addToTarget) !== null) {
clearInterval(tout);
// 如果true 强行覆盖,不管有没有--先删除
// 如果false,不覆盖,但是如果有的话,要退出,不存在则新增--无需删除
if (isReload === true) {
safeRemove("." + className);
} else if (isReload === false && document.querySelector("." + className) !== null) {
// 节点存在 && 不准备覆盖
return;
}
var cssNode = document.createElement("style");
if (className !== null) cssNode.className = className;
cssNode.setAttribute("type", "text/css")
cssNode.innerHTML = css;
try {
if (addImmediately === true) {
addTo.appendChild(cssNode);
} else {
document.querySelector(addToTarget).appendChild(cssNode);
}
} catch (e) {
console.log(e.message);
}
}
}, 20);
}
function change_css(css, stylename) {
try {
AC_addStyle(css, stylename);
} catch (e) {};
}
function hidecss(codelist, stylename) {
var cs = codelist.join(",")
cs = cs + '{height:0px!important;width:0px!important;display:none!important;z-index:-1!important;}';
change_css(cs, stylename);
};
function delayremove(codelist, dl) {
var cs = codelist.join(',');
try {
setTimeout(function() {
var rc = $(cs);
rc.css("cssText", 'width:0 !important;height:0 !important;display:none !important;');
rc.remove();
var _pss = $('div[class^=video-container]');
if (_pss != null & _pss.parentElement != null) {
for (var i in _pss.parentElement.children) {
if (i == _pss) {
console.log('find video-container');
console.log(_pss);
console.log(_pss.parentNode);
}
}
} else {
console.log(_pss);
console.log(_pss.parent().children().not('div[class^=vidoe-container]').css("cssText", 'width:0 !important;height:0 !important;display:none !important;'));
console.log('cont find video-container');
}
}, dl);
} catch (e) {
console.warn('error', e, 'delayremove');
} finally {
if (dl < 10000) {
setTimeout(function() {
delayremove(codelist, dl * 2);
}, dl * 2);
}
}
}
function adj(dl) {
console.log('adj');
var s = $('div.forground');
if (s == null || s.length == 0) {
s = document.createElement('div');
s.className = 'forground';
window.document.body.appendChild(s);
s.style.position = "fixed";
s.style.zIndex = "200";
s.style.backgroundColor = "#000000";
s.style.width = "100%";
s.style.height = "100%";
s.style.top = "60px";
s.style.left = "0px";
s.style.verticalAlign = 'center';
}
var kid = document.body.getElementsByClassName('layout-Main');
console.log("adjaaaa", kid.length);
try {
if (kid.length != 0) {
kid = kid[0];
if (kid.nodeName == 'DIV') {
kid.style.position = "fixed";
kid.style.zIndex = "201";
var wh = parseInt(window.innerHeight / 2);
var ww = parseInt(window.innerWidth / 2);
var kh = parseInt(kid.offsetHeight / 2);
var kw = parseInt(kid.offsetWidth / 2);
var rate = parseFloat((ww - 20) / kw);
console.log(wh, ww, kh, kw, rate);
kid.style.left = (ww - kw).toString() + "px";
kid.style.top = parseInt((wh - kh + 100) * rate).toString() + "px";
kid.style.transform = 'scale(' + rate + ',' + rate + ')';
console.log(kid.style.left, kid.style.top, kid.style.transform, kid.offsetHeight, kid.offsetWidth);
}
if (kid.nodeName == 'MAIN') {
kid.style.position = "fixed";
kid.style.zIndex = "201";
kid.style.paddingLeft = "5px";
kid.style.paddingRight = "5px";
// var wh = parseInt(window.innerHeight / 2);
// var ww = parseInt(window.innerWidth / 2);
// var kh = parseInt(kid.offsetHeight / 2);
// var kw = parseInt(kid.offsetWidth / 2);
// var rateW = parseFloat((ww) / kw);
// var rateH = parseFloat((wh) / kh);
// var rate = parseFloat(rateW > rateH ? rateH : rateW).toString();
// console.log(wh, ww, kh, kw, rate);
// kid.style.left = (ww - kw).toString() + "px";
// kid.style.top = (wh - kh + 60).toString() + "px";
// kid.style.transform = 'scale(' + rate + ',' + rate + ')';
// console.log(kid.style.left, kid.style.top, kid.style.transform,kid.offsetHeight,kid.offsetWidth );
}
} else {
// setTimeout(function() { adj(dl); }, dl);
}
} catch (error) {
console.log("adj", error, $('.layout-Main'));
setTimeout(function() { adj(dl); }, dl);
}
}
function mainFun() {
try {
AC_addStyle('body{background-color:#033;width:100%!important}' +
'.Header-wrap,.Header-wrap:after,.Header-wrap:before,#mainbody{background-image:none!important;background-color:#73e7777f!important;}' +
'.layout-Player-barrage{top:0px!important;}' +
'#js-player-toolbar{height:0px!important;}',
'style1');
} catch (e) {
console.warn(e);
}
var clist = [
'.UserLevel',
'.user-level',
'.FansMedal',
'.Motor',
'.Barrage-nobleImg',
'.RoomLevel',
'.Barrage-noble',
'.ChatAchievement',
'.FollowGuide',
'.Barrage-honor',
'.ChatBarrageCollect',
'.fans-rank',
'.chat-icon-pad',
'.status-low-enter',
'.motorcade-icon',
'.lol-activity',
'.view-child',
'#js-room-activity',
'#js-background-holder',
'#js-player-title',
'.layout-Player-rankAll',
'.layout-Player-rank',
'.layout-Aside',
'.layout-Bottom',
'.BarrageBanner',
'.TreasureWrap',
'.Barrage-userEnter',
'.Medal',
'.Header-menu-icon4',
'.Header-menu-icon3',
'.Header-menu-icon2',
'.Header-menu-icon1',
'.DropPane-ad,.DropMenuList-ad',
'.Promotion,.Task,.Game,.Header-download-wrap,.Header-broadcast-wrap',
'.btn-group',
'.vote-tips-pop',
'.project-vote-wrap',
'div.room-mes,div.layout-Player-rankAll,div.layout-Player-rank,div.layout-Player-asideAdvert',
'div.Barrage-topFloater,div#lifter',
'div#bc2,div#bc4,div#bc5,div#bc6,div#bc7,div#bc8,div#bc9,div#bc10,div#bc11,div#bc12,div#bc13,div#bc14,div#bc15,div#bc20,div#bc288',
'div#js-room-activity,div.PlayerToolbar,div#js-player-guessgame,div.SignBarrage',
'div.wm-h5-view,div.PaladinWeek-toast,div.ZoomTip',
];
hidecss(clist, 'style2');
$(function f1() {
$("div.chat-cont").parent().children().not(".chat-cont,.chat-speak").remove();
$("div.chat-cont").css("cssText", 'top:0 !important');
$("#mainbody,.layout-Main").css("cssText", 'margin-left:0 !important;margin-right:0 !important;width:100% !important;height: 100%important;');
});
$("body").ready(function() {
adj(3000);
// var clist = ["div[data-component-id='view']",
// "div.vote-tips-pop",
// "div.project-vote-wrap",
// "div[class^='multiBitRate']",
// "div[class^='comment']",
// "div[class^='broadcastDiv']",
// "div.room-mes,div.layout-Player-rankAll,div.layout-Player-rank,div.layout-Player-asideAdvert",
// "div.Barrage-topFloater,div#lifter",
// "div.layout-Player-asideToggle"
// ];
// delayremove(clist, 3000);
});
hidecss([
'div.layout-Player-videoProxy',
'div.UPlayerLotteryEnter',
'div.UPlayerLotteryEnter-close',
'div.is-hidden',
'div.CompetitionVictoryCarnivalCallPanel',
'div.layout-Player-videoAbove',
'div#player_h5_adDom',
'div[class^=comment]',
'div.MatchSystemTeamMedal',
'div.layout-Player-announce',
], 'style3');
}
mainFun();