免登录(不可用)=>更改虎牙弹幕大小,屏蔽弹幕,精简,自动切换最高清晰度。 作者拿来看武林外传用的,用来专心看直播
// ==UserScript==
// @name 虎牙直播插件合集
// @namespace http://tampermonkey.net/
// @version 0.634
// @description 免登录(不可用)=>更改虎牙弹幕大小,屏蔽弹幕,精简,自动切换最高清晰度。 作者拿来看武林外传用的,用来专心看直播
// @author 饺子
// @include https://www.huya.com/*
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_addStyle
// @grant GM_listValues
// @require https://code.jquery.com/jquery-3.5.1.min.js
// ==/UserScript==
(function () {
"use strict";
//------初始数据------
let keywords = GM_getValue("keywords") || ["♥", "/{", "msstatic"];
let danmuSize = GM_getValue("danmuSize") || 50;
//------结束初始------
//-------开关合集------
// let isTipsOrChart = GM_getValue("isTipsOrChart") || true;
// let isChatHostPic = GM_getValue("isChatHostPic") || true;
//------结束开关合集-------
//------虎牙精简 来自:G-uang------
let css = "{display:none !important;height:0 !important}";
css += "#J_roomWeeklyRankList{display:none !important;}";
css += "#wrap-income > iframe{display:none !important;}";
css += "#chatRoom{height:50% !important;}";
css += "#chatRoom > div{height:100% !important;}";
css += ".room-footer{display:none !important;}";
css += "#J-room-chat-color{display:none !important;}";
css += "#share-entrance{display:none !important;}";
css += "#J_hySide{display:none !important;}";
css += "#hy-nav-download{display:none !important;}";
// css += "#player-gift-wrap{display:none !important;}";
css += ".gift-info-wrap{display:none !important;}";
css += "#wrap-notice{display:none !important;}";
css += "#J_roomGgTop{display:none !important;}";
css += "#J_adCategory{display:none !important;}";
css += "#avatar-img{display:none !important;}";
css += "#banner-ab{display:none !important;}";
css +=
"#huya-ab > div.banner-ab-warp > div.ab-close-btn:last-child{display:none !important;}";
css +=
"#chat-room__list > li.J_msg:first-child > p{display:none !important;}";
css +=
"#duya-header > div.duya-header-wrap.clearfix > div.duya-header-bd.clearfix > div.duya-header-ad:last-child > a.duya-header-ad-link.j_duya-header-ad > img.duya-header-ad-img{display:none !important;}";
css +=
"#main_col > div.room-backToTop.j_room-backToTop:last-child{display:none !important;}";
css +=
"#J_playerMain > div.room-player-gift-placeholder:first-child{display:none !important;}";
css +=
"#J_roomHeader > div.room-hd-r:last-child > div.host-control.J_roomHdCtrl > div.jump-to-phone:nth-child(4){display:none !important;}";
css += "#matchMain > div.diy-comps-wrap{display:none !important;}";
css += "#J_spbg{display:none !important;}";
css += "#chatRoom > div.room-gg-chat:last-child{display:none !important;}";
css += "#player-resource-wrap{display:none !important;}";
css += "#J_mainRoom > div.box-crumb:first-child{display:none !important;}";
css +=
"#wrap-ext > div.popup-44f9e031 > section > iframe{display:none !important;}";
css +=
"#J_roomHeader > div.room-hd-r:last-child > div.host-control.J_roomHdCtrl > div.room-business-game:last-child > a.game--3vukE-yU-mjmYLSnLDfHYm{display:none !important;}";
css +=
"#player-ext-wrap > div.popup-44f9e031 > section > iframe{display:none !important;}";
css +=
"#player-ctrl-wrap > div.player-app-qrcode:nth-child(4){display:none !important;}";
css += "#gift-show-btn{display:none !important;}";
// if (!isTipsOrChart)
// css +=
// "#tipsOrchat > div.chat-room__ft > div.chat-room__ft__chat:last-child{display:none !important;}"; //弹幕文字输入框
// if (!isChatHostPic) css += "#chatHostPic{display:none !important;}"; //粉丝徽章
loadStyle(css);
function loadStyle(css) {
var style = document.createElement("style");
style.type = "text/css";
style.rel = "stylesheet";
style.appendChild(document.createTextNode(css));
var head = document.getElementsByTagName("head")[0];
head.appendChild(style);
}
// //m开关弹幕
// var selector = {
// "www.huya.com": {
// on: "div[class='danmu-show-btn'][title='关闭弹幕']",
// off: "div[class='danmu-show-btn danmu-hide-btn'][title='开启弹幕']",
// },
// };
// var live_site = document.domain;
// function danmaku_switcher(player) {
// if (document.querySelector(player.on) != null) {
// document.querySelector(player.on).click();
// } else if (document.querySelector(player.off) != null) {
// document.querySelector(player.off).click();
// }
// }
// $(document).keypress(function (key) {
// if (key.which === 77 || key.which === 109) {
// danmaku_switcher(selector[live_site]);
// }
// });
//自动切换最高画质(原作者CosilC,如有疑问联系我删除)
$(function () {
var t1 = setInterval(function () {
console.log("自动切换最高画质检查器在运行");
if (
$(".player-videotype-cur").html() !=
$(".player-videotype-list li:first").html()
) {
$(".player-videotype-list li:first").click();
var watch = setInterval(function () {
if ($("#player-btn")[0].title === "开始观看") {
$("#player-btn").click();
$("#player-community-contaier").remove();
clearInterval(watch);
}
}, 1000);
} else {
clearInterval(t1);
}
}, 2000);
});
//---精简所有remove---
var giftWrap = setInterval(function () {
if ($("#player-gift-wrap").children().length >= 1){
$("#player-gift-wrap").children().hide(); //隐藏礼品栏里所有的子item
$("#player-gift-wrap").css(
"background-color",
$("body").css("background-color")
);
clearInterval(giftWrap)
}
},1000);
//---结束精简所有remove---
//------结束虎牙精简------
//------CSS 控制区------
GM_addStyle(`
.nav_btn {
position: absolute;
top: 0;
right: 8rem;
}
.nav-expand-list ul > li:hover {
background-color: grey;
}
.nav-expand-list ul > li > a {
display: inline-block;
width: 100%;
text-decoration: none;
line-height: 3rem;
color: black;
}
#mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, .3);
display: none;
z-index: 2147483647;
color: #010101;
}
#mask a:hover {
text-decoration: underline;
}
#dialog {
position: absolute;
width: 35rem;
min-height: 15rem;
background-color: #ffffff;
border-radius: 10px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
padding: 5rem;
box-sizing: border-box;
user-select: none;
display:flex;
flex-direction: column;
justify-content: center;
}
.words {
display: inline-block;
padding: .2rem;
border: 2px solid #999;
margin: 0 0 1rem 1rem;
border-radius: 3px;
}
.words > svg {
width: 1rem;
height: 1rem;
margin-left: 1.5rem;
}
.ex_input {
outline: none;
margin: 5% 0;
height: 1.7rem;
width: 70%;
font-size: 1.3rem;
border: none;
border-radius: 4px;
border-bottom: 1px solid grey;
}
.ex_button {
margin: auto; /*will be center*/
background: none;
color: #b06530;
border: 2px solid;
border-radius:4px;
height: 1.7rem;
width: 25%;
font-size: 1em;
}
.remove {
cursor: pointer;
}
#exist {
margin: 2rem 0;
}
#exist > div {
margin: 1rem 0 0 5%;
width: 80%;
border: 1px solid #666;
border-radius: 3px;
padding: 1rem;
}
#blacklistL {
margin: 2rem 0;
}
#blacklistL > div {
margin: 1rem 0 0 5%;
width: 80%;
border: 1px solid #666;
border-radius: 3px;
padding: 1rem;
}
.controlSwitch {
position: relative;
display: inline-block;
width: 60px;
height: 34px;
}
.controlSwitch input {display:none;}
.controlSlider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
border-radius: 34px;
-webkit-transition: .4s;
transition: .4s;
}
.controlSlider:before {
position: absolute;
content: "";
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
background-color: white;
border-radius: 50%;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .controlSlider {
background-color: #2196F3;
}
input:focus + .controlSlider {
box-shadow: 0 0 1px #2196F3;
}
input:checked + .controlSlider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
`);
//------结束CSS 控制区------
//------监听区域------
// 弹幕监听放大器
let observer = new MutationObserver(() => {
$("#danmudiv > .danmu-item").css("font-size", `${danmuSize}px`);
$("#danmudiv > .danmu-item").css("line-height", `${danmuSize + 25}px`);
let danmus = document.querySelectorAll(".danmu-item");
for (let item of danmus) {
for (let word of keywords) {
if (item.querySelector("span").innerHTML.indexOf(word) !== -1) {
console.log(
"!!!已过滤一条弹幕,内容是: ",
item.querySelector("span").innerHTML
);
item.remove();
break;
}
}
}
});
// 快捷键监听
$(document).keydown(function (key) {
if (key.altKey && key.which === 82) {
// alt+r 刷新视频不刷新网页
$(".player-refresh-btn").click();
}
});
//------监听区域结束------
//------前端区域------
setTimeout(() => {
createElement();
// const plbtn = document.getElementById("player-btn");
// if (plbtn.title === "开始观看") plbtn.click();
let $edit = $("#edit");
let danmudiv = document.querySelector("#danmudiv");
let $mask = $("#mask");
let $exist = $("#exist > div");
//初始化pannel里的屏蔽词
for (let index = 0; index < keywords.length; index++) {
insertToExist(keywords[index], index, $exist);
}
$edit.click(() => {
$mask.css("display", "block");
});
//点击dialog以外的地方关闭窗口
$(document).mouseup(function (e) {
var _con = $("#dialog"); // 设置目标区域
if (!_con.is(e.target) && _con.has(e.target).length === 0) {
$("#mask").css("display", "none");
}
});
$("#exist > #clear").click(() => {
if (confirm("确定要移除所有的屏蔽词吗?")) {
$exist.empty();
keywords.length = 0;
GM_setValue("keywords", keywords);
}
});
//点击移除keywords
$exist.on("click", ".words", function () {
$(this).remove();
keywords.splice(parseInt($(this).attr("data-index")), 1);
GM_setValue("keywords", keywords);
});
//保存屏蔽词
$("#save > button").click(() => {
let val = $("#save > input").val();
if (val.trim() === "") {
return alert("请输入有效的屏蔽词");
} else if (keywords.some((item) => item === val)) {
return alert("已存在,请勿重复添加");
}
insertToExist(val, keywords.length, $exist);
keywords.push(val);
$("#save > input").val("");
GM_setValue("keywords", keywords);
});
//保存弹幕大小
$("#danmuSize > button").click(() => {
danmuSize = parseInt($("#danmuSize > input").val());
GM_setValue("danmuSize", danmuSize);
});
//---开关---
// $("#isTipsOrChart").click(() => {
// isTipsOrChart = clickSwitch("#isTipsOrChart");
// GM_setValue("isTipsOrChart", isTipsOrChart);
// });
// var clickSwitch = function (item) {
// if ($(item).is(":checked")) {
// return true;
// } else {
// return false;
// }
// };
//---结束开关---
observer.observe(danmudiv, { childList: true });
}, 3000);
//------结束dom区------
//------html 显示区------
function createElement() {
$(".duya-header-wrap").append(`
<div class="hy-nav-right nav_btn">
<a class="hy-nav-title" href="javascript:;">
<span class="title" id="keywords">屏蔽词</span>
</a>
<div class="nav-expand-list">
<i class="arrow"style="margin-left: -1.5rem;"></i>
<div style="padding: 1rem;">
<ul>
<li><a href="javascript:;" id="edit">编辑器</a></li>
</ul>
</div>
</div>`);
$("body").append(`
<div id="mask">
<div id="dialog">
<div id="save">
<input class="ex_input" type="text" placeholder="请输入屏蔽关键词">
<button class="ex_button">添加</button>
</div>
<div id="danmuSize">
<input class="ex_input" type="number" value="${danmuSize}">
<button class="ex_button">更改文字大小</button>
</div>
<div id="exist">
<span style="font-size: 14px;">已添加的屏蔽词</span>
<a href="javascript:;" style="color: deepskyblue;font-size: 14px;float: right; border: 2px solid; border-radius:4px;text-align: right" id="clear">清除所有</a>
<div>
</div>
</div>
</div>
</div>
`);
}
//------结束html显示区------
function insertToExist(val, index, $parent) {
let $item = `<span class="words" data-index="${index}">${val}</span>`;
$parent.append($item);
}
})();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址