// ==UserScript== // @name bilibili直播自定义皮肤背景 // @namespace bilibili- ( ゜- ゜)つロ 乾杯~ // @version 0.6 // @description 自定义bilibili直播的皮肤和背景,仅自己可见! // @author HCLonely // @include /^https?:\/\/live.bilibili.com\/[\d]+/ // @grant GM_addStyle // @grant GM_xmlhttpRequest // @grant GM_setClipboard // @grant GM_setValue // @grant GM_getValue // @grant GM_openInTab // @grant GM_log // @grant GM_registerMenuCommand // @require https://greasyfork.org/scripts/379868-jquery-not/code/jQuery%20not%20$.js?version=710109 // @run-at document-end // @downloadURL none // ==/UserScript== (function() { 'use strict'; const backgroundImage=[ 'background', { 'id':1, 'title':'纯色背景', }, { 'id':2, 'title':'自定义背景', }, { 'id':3, 'title':'默认背景①', 'url':'http://static.hdslb.com/live-static/images/bg/1.jpg' }, { 'id':4, 'title':'默认背景②', 'url':'http://static.hdslb.com/live-static/images/bg/2.jpg' }, { 'id':5, 'title':'默认背景③', 'url':'http://static.hdslb.com/live-static/images/bg/3.jpg' }, { 'id':6, 'title':'默认背景④', 'url':'http://static.hdslb.com/live-static/images/bg/4.jpg' }, { 'id':7, 'title':'默认背景⑤', 'url':'http://static.hdslb.com/live-static/images/bg/5.jpg' }, { 'id':8, 'title':'默认背景⑥', 'url':'http://static.hdslb.com/live-static/images/bg/6.jpg' } ]; const skin=[ 'skin', { 'id':1, 'title':'默认', }, { 'id':2, 'title':'透明', }, { 'id':3, 'title':'绊爱生日会限定', 'color':'rgba(255,42,107,1)', 'liveSkinTop':'https://i0.hdslb.com/bfs/live/roomSkin/a726c844272b59d5873eecd143ba04a69d69322e.png', 'liveSkinBottom':'https://i0.hdslb.com/bfs/live/roomSkin/4534e9eac4804d29b7e9f9a539123ba5fc055a25.png', 'chatSkin':'https://i0.hdslb.com/bfs/live/roomSkin/203a6865172e6588d66aa1922d472e2eed088087.png', }, { 'id':4, 'title':'考试必胜', 'color':'rgba(96,133,182,1)', 'liveSkinTop':'https://i0.hdslb.com/bfs/live/roomSkin/9533eefe82d5009fc81c9f3d04666f65d067d555.png', 'liveSkinBottom':'https://i0.hdslb.com/bfs/live/roomSkin/eeb5d11ed37356fda16540ee8c7edadfe5804688.png', 'chatSkin':'https://i0.hdslb.com/bfs/live/roomSkin/056f183b2799ed7de1c0a5e2a595e97a03569727.png', }, { 'id':5, 'title':'音之守护者', 'color':'rgba(255,192,0,1)', 'liveSkinTop':'https://i0.hdslb.com/bfs/live/roomSkin/8680817d5366d9144da1730dd01160839e2b36dc.png', 'liveSkinBottom':'https://i0.hdslb.com/bfs/live/roomSkin/adcd9a387b39c197759d249bef6d54595d7f729b.png', 'chatSkin':'https://i0.hdslb.com/bfs/live/roomSkin/6155e1b255aa88c4ff44c0176fabc142876ae3a8.png', }, { 'id':6, 'title':'周星X计划', 'color':'rgba(255,192,0,1)', 'liveSkinTop':'https://i0.hdslb.com/bfs/live/roomSkin/2ebabc30b955845194a1c3b157b9d3328694bc2c.png', 'liveSkinBottom':'https://i0.hdslb.com/bfs/live/roomSkin/bec62333b155bb844ab9d12357d27813b971d84c.png', 'chatSkin':'https://i0.hdslb.com/bfs/live/roomSkin/48b3f9393a14736fdbfe5a88d8696dea8e77aa9d.png', }, { 'id':7, 'title':'PUBG开黑周', 'color':'#fff|#9f9f9f', 'liveSkinTop':'https://i0.hdslb.com/bfs/live/roomSkin/e8d75396147ab147456f6255586e0e4d5b374de0.png', 'liveSkinBottom':'https://i0.hdslb.com/bfs/live/roomSkin/9cc834640ce7e4e42d6728fd1d35f3cc81cfb3d5.png', 'chatSkin':'https://i0.hdslb.com/bfs/live/roomSkin/fc2eb4197a09bb6f191b2b2002080b9e595ca134.png', }, ]; const skinClass=['#head-info-vm','#gift-control-vm','#rank-list-ctnr-box','.chat-history-panel','#chat-control-panel-vm']; $jq('body').append(`
`); let sideBarLeft=$jq('[name="sideBarLeft"]'); let settingDiv=$jq('[name="settingDiv"]'); let settingH2=$jq('[name="settingH2"]'); let settingInfoDiv=$jq('[name="settingInfoDiv"]'); let closeBtn=$jq('[name="closeBtn"]'); let backgroundDiv=$jq('[name="backgroundDiv"]'); let hideDiv=$jq('[name="hideDiv"]'); let skinDiv=$jq('[name="skinDiv"]'); let saveBtn=$jq('.save-button'); let skinBtn=$jq('.skin-btn'); let skinInfo=$jq('.skin-info'); let biInfo=set_info(backgroundImage); let skInfo=set_info(skin); closeBtn.click(()=>{ settingDiv.hide(); }); backgroundDiv.click(()=>{ if(settingInfoDiv.attr('data-tag')=='bg'&&settingDiv.css('display')=='none'){ settingDiv.show(); }else if(settingInfoDiv.attr('data-tag')=='bg'){ settingDiv.hide(); }else{ settingInfoDiv.attr('data-tag','bg') settingH2.text('更换背景'); settingInfoDiv.html(biInfo); $jq('div.background-select').click(function(){ set_background($jq(this).attr('data-background-id')); }); skinInfo.hide(); settingDiv.show(); } }); skinDiv.click(()=>{ if(settingInfoDiv.attr('data-tag')=='skin'&&settingDiv.css('display')=='none'){ settingDiv.show(); settingDiv.show(); }else if(settingInfoDiv.attr('data-tag')=='skin'){ settingDiv.show(); settingDiv.hide(); }else{ settingInfoDiv.attr('data-tag','skin') settingH2.text('更换皮肤'); settingInfoDiv.html(skInfo); $jq('.color-info').hide(); $jq('.url-info').hide(); $jq('div.skin-select').click(function(){ set_skin($jq(this).attr('data-skin-id')); }); skinInfo.show(); settingDiv.show(); } }); hideDiv.click(()=>{ sideBarLeft.hide(); }); saveBtn.click(()=>{ let cache=get_setting(); GM_setValue('mySetting',cache); alert('保存成功!'); }); skinBtn.click(function(){ let dataClass=$(this).attr('data-class'); if(dataClass=='5'){ set_txt($(this).prev().val()); }else{ set_every_skin($(this).prev().val(),skinClass[dataClass]); } }); let change=setInterval(()=>{ let prevSetting=GM_getValue('mySetting'); let nowSetting=get_setting(); for(let i=0;i${e[i].title}
`; } return info; } function set_background(id){ switch(id){ case '1': $jq('div.url-info').hide(); $jq('div.color-info').show(); $jq('#colorEnter').click(()=>{ $jq('div.room-bg[role="img"]').attr('style',`background-color: ${$jq('input[name="colorCode"]').val()};`); }); break; case '2': $jq('div.color-info').hide(); $jq('div.url-info').show(); $jq('#urlEnter').click(()=>{ $jq('div.room-bg[role="img"]').attr('style',`background-image: url("${$jq('input[name="urlCode"]').val()}");`); }); break; default: $jq('div.color-info').hide(); $jq('div.url-info').hide(); $jq('div.room-bg[role="img"]').attr('style',`background-image: url("${backgroundImage[id].url}");`); break; } } function set_skin(id){ switch(id){ case '1': $jq('[name="skinBgCode"]').eq(0).val('#fff'); $jq('[name="skinBgCode"]').eq(1).val('#fff'); $jq('[name="skinBgCode"]').eq(2).val('#fff'); $jq('[name="skinBgCode"]').eq(3).val('#f8f8f8'); $jq('[name="skinBgCode"]').eq(4).val('#f8f8f8'); $jq('[name="skinBgCode"]').eq(5).val('#333|#333|#999'); set_every_skin('#fff',skinClass[0]); set_every_skin('#fff',skinClass[1]); set_every_skin('#fff',skinClass[2]); set_every_skin('#f8f8f8',skinClass[3]); set_every_skin('#f8f8f8',skinClass[4]); set_txt('#333|#333|#999'); break; case '2': $jq('[name="skinBgCode"]').eq(0).val('#fff0'); $jq('[name="skinBgCode"]').eq(1).val('#fff0'); $jq('[name="skinBgCode"]').eq(2).val('#fff0'); $jq('[name="skinBgCode"]').eq(3).val('#fff0'); $jq('[name="skinBgCode"]').eq(4).val('#fff0'); $jq('[name="skinBgCode"]').eq(5).val('#fff|#fff|#333'); set_every_skin('#fff0',skinClass[0]); set_every_skin('#fff0',skinClass[1]); set_every_skin('#fff0',skinClass[2]); set_every_skin('#fff0',skinClass[3]); set_every_skin('#fff0',skinClass[4]); set_txt('#fff|#fff|#333'); break; default: $jq('[name="skinBgCode"]').eq(0).val(skin[id].liveSkinTop); $jq('[name="skinBgCode"]').eq(1).val(skin[id].liveSkinBottom); $jq('[name="skinBgCode"]').eq(2).val(skin[id].chatSkin); $jq('[name="skinBgCode"]').eq(3).val('#f8f8f8'); $jq('[name="skinBgCode"]').eq(4).val(skin[id].chatSkin); $jq('[name="skinBgCode"]').eq(5).val(skin[id].color); set_every_skin(skin[id].liveSkinTop,skinClass[0]); set_every_skin(skin[id].liveSkinBottom,skinClass[1]); set_every_skin(skin[id].chatSkin,skinClass[2]); set_every_skin('#f8f8f8',skinClass[3]); set_every_skin(skin[id].chatSkin,skinClass[4]); set_txt(skin[id].color); break; } } function set_every_skin(skin,position){ /^http/gim.test(skin)?GM_addStyle(`${position}{background:url("${skin}") !important}`):GM_addStyle(`${position}{background:${skin} !important}`); if(position=='#rank-list-ctnr-box'&&(skin=='#fff0'||'rgba(255, 255, 255, 0)')){ GM_addStyle(`#rank-list-vm{background:#fff0 !important}`); }else if(position=='#rank-list-ctnr-box'){ GM_addStyle(`#rank-list-vm{background:#fff !important}`); } } function set_txt(color){ let color1=color, color2=color, color3=color; if(color.includes('|')){ color1=color.split('|')[0]||'#000'; color2=color.split('|')[1]||'#000'; color3=color.split('|')[2]||'#000'; } $jq('.live-skin-separate-area').attr('style',`color:${color1} !important`); $jq('.live-skin-main-text').attr('style',`color:${color1} !important`); $jq('.live-skin-normal-text').attr('style',`color:${color2} !important`); $jq('.live-skin-normal-a-text').attr('style',`color:${color3} !important`); } function get_setting(){ let cache=[]; cache[0]=$jq('div.room-bg[role="img"]').attr('style'); for(let i=0;i