// ==UserScript== // @name 网易CC直播净化 // @namespace indefined // @supportURL https://github.com/indefined/UserScripts/issues // @version 0.1.2 // @description 自定义屏蔽CC直播HTML5网页大部分不想看到的东西 // @author indefined // @match *://cc.163.com/* // @grant GM_getValue // @grant GM_setValue // @run-at document-idle // @downloadURL none // ==/UserScript== (function() { 'use strict'; const configList = { noWaterMask:{ title:'去除LOGO水印', style:` /*LOGO水印*/ .video-watermask { display: none; } ` }, miniBorder:{ title:'缩小播放器边距', style:` /*网页标题栏高度*/ div#header { height: 30px !important; } .header-center { height: 30px !important; } .hover-list { top: 30px; } .padding-block .location-item { margin: 0 5px; font-size: 15px; } .padding-block .menu-classification { padding: 0; } .menu-location { height: 30px !important; } div#searchBoss { margin: 0; } .user-do-item { line-height: 30px !important; } .anchor-live { margin: 0 10px; } .header-match-rcm-imgs, .header-match-rcm-imgs .match-rcm-imgs-list .match-rcm-imgs-item, .header-match-rcm-imgs .match-rcm-imgs-list .match-rcm-imgs-item a, .header-match-rcm-imgs .match-rcm-imgs-list .match-rcm-imgs-item img { height: 16px; width: 25px; } .header-match-rcm-imgs .match-rcm-imgs-list .match-rcm-imgs-item img { background-size: cover; } .header-match-rcm-imgswrap .match-arrow-left { margin-top: 6px !important; } /*缩小标题栏高度后增加主框体高度*/ body:not(.blizzardtv-iframe-body) .main-container { height: calc(100% - 30px) !important; } /*主框体对齐到顶部*/ body:not(.blizzardtv-iframe-body) .main-wrapper { margin-top: 0px !important; } /*左侧栏,平时隐藏,同时播放器往左靠*/ .collapse .side-nav-collapse { display: none; } .collapse .side-nav-container { width: 0; } .collapse .side-nav-container+.main-container { padding-left: 20px; } /*强制播放器主体无外边距*/ main.room-main-container { padding: 0 20px 0 0!important; } ` }, noFriendRooms:{ title:'去除好友房间', style:` /*播放器上方好友房间*/ ul.friend-rooms { display: none; } ` }, noWebchat:{ title:'去除好友聊天', style:` /*好友聊天*/ div#webChat { display: none; } ` }, noLimitAlert:{ title:'去除清晰度登录提醒', action:'unloginUnlimit', style:` /*登录提醒*/ div#vbr-limit-alert { display: none!important; } ` }, noLuckGift:{ title:'去除幸运抽奖', style:` /*幸运抽奖*/ #lucky-lottery-modal{ display: none; } ` }, noPlayerHeightLimit:{ title:'解除播放器高度限制', style:` /*解除播放器高度锁定,根据网页宽度自动缩放*/ body:not(.blizzardtv-iframe-body) div#live_player { height: unset !important; } /*解除高度限制后停播状态的聊天区高度竟然需要手动指定,醉了 #chat { height: calc(100% - 88px); } #chat>div { height: 100%; } .chat-list { height: calc(100% - 100px) !important; }*/ ` }, noDynamicMsg:{ title:'去除千里传音', default:true, style:` /*网页千里传音*/ div#js-dynamic-msg-container { display: none; } /*播放器内千里传音横幅*/ .qianli-banner-item.js-qianli-banner-item { display: none; } /*播放器内的横幅,似乎有很多种*/ div#player-banner { display: none; } /*去除千里传音后关注对齐到右侧*/ .follow-tool{ right: 10px !important; } /*工具对齐到左侧*/ .right-tools { float: none; position: static; margin-left: 10px; display: inline-block; } /*解除标题宽度限制*/ .anchor-nick, span.js-live-title.nick{ max-width: unset !important; } .live-title .nick { width: calc(100% - 230px) !important; } /*强制显示头像*/ .anchor-portrait-wrapper.anchor-portrait { display: block !important; } ` }, noPlayerBanner:{ title:'去除播放器内横幅', default:true, style:` /*播放器内的横幅,似乎有很多种*/ div#player-banner, /**/ div#nobility_screen_enter, /**/ div#mounts_player, div#mounts_banner, div#mounts_player_png, /**/ div#nobility_upgrade, /**/ div#newMountRemindWin { display: none !important; } ` }, foldRank:{ title:'自动折叠榜单区', default:true, style:` /*右侧榜单区,平时折叠*/ div#room-tabs { height: 40px; } #room-tabs>div>div:not(:first-child) { display: none !important; } /*鼠标悬停时展开榜单*/ div#room-tabs:hover>div>div[style*="display: block;"]{ display: block !important; } div#room-tabs:hover { height: 190px; } .chat-list { height: calc(100% - 46px) !important; } div#room-tabs:hover+.chat-list { height: calc(100% - 190px); } /*网页全屏时隐藏公告*/ .gameH5TheaterBar .room-boardcast { display: none; } .gameH5TheaterBar .room-tabs-chat-list { height: calc(100% - 104px) !important; } ` }, noThreaterRank:{ title:'去除网页全屏榜单', default:true, style:` /*网页全屏时隐藏公告和榜单*/ .gameH5TheaterBar .room-boardcast, .gameH5TheaterBar #room-tabs{ display: none; } .gameH5TheaterBar .chat-list { height: calc(100% - 4px) !important; } /*隐藏公告和榜单后*/ .gameH5TheaterBar .room-tabs-chat-list { height: calc(100% - 104px); } ` }, noTheaterGiftBar:{ title:'去除网页全屏/全屏礼物栏', style:` /*网页全屏/全屏礼物栏*/ .gameH5Theater .user-tool-bar, .gameH5FullScreen .user-tool-bar { display: none !important; } .gameH5Theater div#live-wrapper , .gameH5FullScreen div#live-wrapper { height: 100% !important; } .gameH5FullScreen .show-controls { bottom: 0 !important; } ` }, noFullAnchor:{ title:'去除全屏主播信息', style:` /*全屏关注消息*/ div#fullscreen-anchorInfo { display: none !important; } ` }, noGiftBanner:{ title:'去除聊天区礼物横幅', style:` /**/ div#giftBigEffectWrap, /*第一次*/ div#first-reward-panel,#first-reward-entry, /*聊天区礼物连击*/ .gift-simp-banner.js-gift-simp-banner, /*聊天区感谢礼物栏*/ div#gift-banner { display: none !important; } ` }, noBoxDrop:{ title:'去除抢宝箱消息', style:` /**/ div#decreeBoxDropWrap, /**/ div#decreeBoxShowWrap, /**/ div#weekStarBoxDropWrap, /**/ div#weekStarBoxShowWrap, /**/ div#giftBoxDropWrap, /**/ div#giftBoxShowWrap { display: none !important; } ` }, noChatTip:{ title:'去除粉丝勋章', style:` /*粉丝勋章*/ span.chat-tip-container{ display: none } ` }, noIcon:{ title:'去除用户前缀图标', style:` /*用户前缀图标*/ .chat_item .chat_priv_img img, .chat_item.notify>img{ display: none; } ` }, noMsgImg:{ title:'去除聊天图片', style:` /*聊天图片*/ .chat_msg_content img { display: none !important; } .chat_msg>img { display: none !important; } ` }, noChatPriv:{ title:'去除聊天气泡', style:` /*聊天气泡同行*/ .chat_info, .chat_msg_con, .chat_msg_normal{ display: inline !important; } /*去除聊天气泡*/ .chat_msg>div { display: none !important; } .chat_msg, .chat_msg_normal>span{ display: inline !important; background: none !important; color: #000 !important; border: none !important; padding: 0 !important; margin: 0 !important; } ` }, noSendGift:{ title:'去除送礼消息', style:` /*聊天区礼物*/ li.gift_item { display: none; } ` }, noWelcome:{ title:'去除欢迎消息', style:` /*进入房间欢迎消息*/ li.chat_item.notify.enter-room-notify, /*骑士欢迎消息*/ .chat_item.activity-notify-nobility, /**/ div#nobility_screen_enter, /**/ div#mounts_player, div#mounts_banner, div#mounts_player_png, /*聊天区贵族欢迎消息*/ div#nobility_chat_enter { display: none !important; } ` }, noFollow:{ title:'去除关注消息', style:` /*关注消息*/ .follow-anchor-notify { display: none; } ` }, noSysMsg:{ title:'去除系统消息', style:` /*管理员消息*/ li.chat_item.admin-notify { display: none; } /*活动消息*/ li.chat_item.notify.activity-notify { display: none; } ` }, noShout:{ title:'去除喇叭消息', style:` /*聊天区喇叭消息*/ .bun-shout-dynamic-area { display: none !important; } ` }, noDMColor:{ title:'去除弹幕颜色', style:` /*弹幕*/ .cmt { color: #fff !important; } ` }, noDMBullet:{ title:'去除弹幕气泡', style:` /*弹幕气泡*/ .nobility_bulletScreen { display: inline !important; background: none !important; border: none !important; padding: 0 !important; margin: 0 !important; } .nobility_bulletScreen img, span.nobility_bulletScreen_adrom { display: none } /*喊话气泡,不知道内部怎么样的*/ div#bunShoutDynamic{} ` }, }; const CCLiveCleaner = { styleDiv:undefined, configDiv:document.querySelector('ul.ban-effect-list'), config:(()=>{ try{ if('undefined'!=typeof(GM_info)&&'undefined'!=typeof(GM_getValue)) { return JSON.parse(GM_getValue('ccLiveConfig','{}')); } else { return JSON.parse(localStorage.getItem('ccLiveConfig')||'{}'); } }catch(e){ console.error('CC直播净化:读取配置失败,使用默认配置',e); return {}; } })(), saveConfig(){ for(const i in this.config) { if(!configList[i]) delete this.config[i]; } try{ if('undefined'!=typeof(GM_info)&&'undefined'!=typeof(GM_setValue)){ GM_setValue('ccLiveConfig',JSON.stringify(this.config)); } else { localStorage.setItem('ccLiveConfig',JSON.stringify(this.config)); } }catch(e){ console.error('CC直播净化:存储配置失败',e); } }, applyConfig(){ let styleContent = ''; for(const i in configList) { if( this.config[i] || (this.config[i]==undefined&&configList[i].default) ) styleContent += configList[i].style; } this.styleDiv.innerHTML = styleContent; }, changeConfig(target){ target.classList.toggle('selected'); this.config[target.id] = target.classList.contains('selected'); this.applyConfig(); this.saveConfig(); }, createItem(id,config){ const item = document.createElement('li'); item.id = id; item.innerHTML = ''+config.title; item.className = (this.config[id]||(this.config[id]==undefined&&config.default))?'selected':''; item.onclick = ({target})=>this.changeConfig(target); this.configDiv.appendChild(item); }, init(){ if(this.configDiv) { this.styleDiv = document.createElement('style'); document.head.appendChild(this.styleDiv); this.applyConfig(); this.configDiv.style = "max-height:calc(100vh - 200px);overflow:auto"; for(const id in configList) { this.createItem(id,configList[id]); } } } }; CCLiveCleaner.init(); })();