bilibili直播精简

【可能是你遇到的最好用的Bilibili直播精简脚本】,送礼随心开关,页面清爽无广告!

目前为 2017-01-29 提交的版本。查看 最新版本

// ==UserScript==
// @name         bilibili直播精简
// @namespace    https://coding.net/u/BackRunner/p/GreaseMonkey-JS/git
// @version      2.0
// @description  【可能是你遇到的最好用的Bilibili直播精简脚本】,送礼随心开关,页面清爽无广告!
// @author       BackRunner
// @match        *://live.bilibili.com/*
// @license      MIT
// @grant        unsafeWindow
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_listValues
// @grant        GM_info
// ==/UserScript==

// ==   Tips   ==
// 使用时可以根据自己需要用双斜线注释掉部分代码开启你想要的功能
// 建议临时开启部分功能不要更改下面的代码,请临时禁用这个脚本
// 注释掉部分代码可能会影响整体美观
// == 更新日志 ==
// 2017.01.29 - 2.0
// 添加礼物开关,代码部分重构
// ==============


(function() {
	//变量定义
	var hideGift = false;

	//更新提示
	updateAlert();
	
	//初始化
	initialize();
	
	//主执行
	if (window.location.href == "http://live.bilibili.com/"){
		console.warn('Bilibili直播页面精简脚本 by BackRunner: 目前在主页,不执行脚本');
	} else {
		console.warn('Bilibili直播页面精简脚本 by BackRunner: 脚本运行');
		addCSS();
		//延迟脚本
		setTimeout(function(){
			var interval = setInterval(check,120);
			var n = 0;
			function check(){
				//添加礼物按钮
				addControlButton();
				n++;
				if (n>4){
					clearInterval(interval);
				}
			}
		});
		//惰性脚本
		$(document).ready(function(){
			addControlButton();
		});
	}

	function initialize(){
		hideGift = initialize_var("hideGift",true);
	}

	function initialize_var(name,defaultSet){
		var obj = GM_getValue(name,defaultSet);
		if (obj === undefined){
			obj = defaultSet;
		}
		return obj;
	}

	function saveVar(){
		GM_setValue("hideGift",hideGift);
	}

	function addCSS(){
		//变量定义
		var cssText = "";

		//去广告Banner
		cssText += '.live-ad-full {display:none !important;}';
		//去顶部下载
		cssText += '.download-link {display:none !important;}';
		//去除排行榜
		cssText += '.rank-list-ctnr {display:none !important;}';
		//去除左边栏
		cssText += '#room-left-sidebar {display:none !important;}';
		//背景调整
		cssText += '.bk-img {transform:translate(0,0) !important;-webkit-transform:translate(0,0) !important;}';
		//主体位置调整
		cssText += '.room-main-ctnr {transform:translate(0,0) !important; -webkit-transform:translate(0,0) !important;}';

		if (hideGift){
			//去除礼物面板
			cssText += '.gift-panel.main-section {display:none !important;}';
			//去除聊天框低于1000礼物提示
			cssText += '.gift-msg-1000.p-absolute {display:none !important;}';
			//去除礼物连击
			cssText += '.super-gift-ctnr {display:none !important;}';
			//移除播主信息中的礼物信息
			cssText += '.row-item {display:none !important;}';
			cssText += '.activity-top-panel {display:none !important;}';
			//移除银瓜子宝箱
			cssText += '.treasure-box-ctnr {display:none !important;}';
			//礼物信息
			cssText += '#chat-msg-list .gift-msg {display: none !important;} #chat-list-ctnr > .super-gift-ctnr, #gift-msg-1000 {display: none !important;} #chat-list-ctnr > #chat-msg-list {height: 100% !important;}';
		}

		//聊天面板css调整
		cssText += '#chat-ctrl-panel {padding:20px 10px 23px 10px !important;}';
		//弹幕字数限制提示css调整
		cssText += '.danmu-length-count {top:22px !important;}';
		//聊天发送框css调整
		cssText += '.danmu-textbox.float-left {height:65px !important;}';
		cssText += '.danmu-send-btn {height:85px !important;}';
		//移除我要直播
		cssText += '.live-action-btn-ctnr {display:none !important;}';
		//移除整个footer
		cssText += '.live-footer.p-relative {display:none !important;}';	
		//聊天发送框下排3个按钮
		cssText += '.profile-ctrl {display:none !important;}';

		//去聊天框内用户等级信息、VIP标志、等级信息等等
		//红叶祭活动标志
		cssText += '#chat-msg-list a[href="/hd/aki2016"] {display: none !important;}';
		//用户vip标志
		cssText += '#chat-msg-list a[href="/i#to-vip"] {display: none !important;}';
		//奖牌标志
		cssText += '#chat-msg-list .medal-icon {display: none !important;}';
		//用户等级标志
		cssText += '#chat-msg-list .user-level-icon {display: none !important;}';
		//称号标志
		cssText += '#chat-msg-list a[href="/i/myTitle#list"] {display: none !important;}';
		//星域通知
		cssText += '.universe-notice {display:none !important;}';
		//Guard
		cssText += '.guard-icon-small {display:none !important}';
		cssText += '.guard-msg {display:none !important};';

		//聊天框内的各种公告(系统公告、小电视抽奖)
		cssText += '.announcement-container {display:none !important;}';
		//聊天框内的系统公告(xxx进入了直播间)
		cssText += '.system-msg {display:none !important;}';

		//顶部css调整(如果错位请注释掉下面这个部分)
		cssText += '.search-bar-ctnr {padding-right:80px; !important}';
		cssText += '.user-avatar {padding-right:40px; !important}';
		try{
			$('#top-nav-msg-hinter').css('right','60px');
		}catch(e){
			console.error(e);
		}

		//礼物开关对应的css调整
		cssText += '.chiyo-22 {display:none !important;}';
		cssText += '.attention-btn-ctrl {margin-top:10px !important;margin-bottom:10px !important;}';

		var modStyle = document.querySelector('#modCSS');
		if (modStyle === null)
		{
			modStyle = document.createElement('style');
			modStyle.id = 'modCSS';
			document.body.appendChild(modStyle);
		}   
		modStyle.innerHTML = cssText;
	}

	function addControlButton(){
		//按钮添加
		if (document.querySelector('#backrunner-giftCtrl')===null){
			var before = document.getElementsByClassName('live-status-switcher')[0];
			//按钮层
			var ctrlDiv=document.createElement("div");
			ctrlDiv.setAttribute("id","backrunner-giftCtrl");
			if(hideGift){
				ctrlDiv.innerHTML='<button class="live-btn default float-right" id="backrunner-giftCtrl-btn">开启礼物</button>';
			}else{
				ctrlDiv.innerHTML='<button class="live-btn default float-right" id="backrunner-giftCtrl-btn">关闭礼物</button>';
			}
			before.parentNode.appendChild(ctrlDiv);
		}			
		//添加事件监听
		addControlButtonEventListener();
	}

	function addControlButtonEventListener(){
		var btn = document.getElementById("backrunner-giftCtrl-btn");
		btn.addEventListener('click',giftBtnClick);
	}

	function giftBtnClick(){
		var btn = document.getElementById("backrunner-giftCtrl-btn");
		//修改变量
		if (hideGift){
			btn.innerHTML="关闭礼物";
			hideGift = false;
		} else {
			btn.innerHTML="开启礼物";
			hideGift = true;
		}
		//重添加CSS
		try{
			$('#modCSS').remove();
			addCSS();
		} catch(e){
			console.error(e);
		}
		//保存
		saveVar();
	}
	
	//更新提醒
	function updateAlert(){        
		var s_update = "Bilibili直播页面精简 by BackRunner:\n检测到脚本版本更改\n\n";
		var version = GM_getValue("version");
		if (version !== GM_info.script.version){
			console.warn("Bilibili直播页面精简 by BackRunner:检测到脚本版本更改:" + version + " → " + GM_info.script.version);
			if (version === undefined){
				version = "未知";
			}
			switch (version){
				default:
					s_update += "版本已从 " + version + " 更新为 " + GM_info.script.version + "\n\n" + GM_info.script.version + "版本的更新内容为:\n全新的脚本\n";
					break;                    
				case "未知":
					s_update += "欢迎使用Bilibili直播页面精简脚本 by BackRunner\n您当前的脚本版本为: " + version + "\n您可以通过页面上的按钮开关礼物面板\n";
					break;             
				case "2.0":
					s_update += "版本已从 " + version + " 降级为 " + GM_info.script.version + "\n\n" + "建议使用最新版本的脚本以获得最佳体验\n降级会造成您的设置丢失,请检查您的设置\n";   
					break;
			}
			s_update += "\n遇到任何问题请立刻到GreasyFork反馈\n或者发送邮件至[email protected]\n如果您觉得本脚本好用可使用支付宝扫描GreasyFork中的二维码或底部赞助链接中的二维码赞助我\n收到您的赞助后我会将您的id加入到感谢名单\n感谢名单显示在这里和脚本描述内";
			window.alert(s_update);
			GM_setValue("version",GM_info.script.version);
		} else {
			console.warn("贴吧页面精简 by BackRunner:未检测到脚本版本更改");
		}
	}

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址