// ==UserScript== // @name 解锁b站vip视频+弹幕字幕移植 // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACS0lEQVRYR8WXz2oTURTGv3MnpqhNKy1UWmxRTGdaiLSQRKkKIoK4FVrRPoHu7BMYn0B3+gQquuiuiC6kaFVsAhGEZkKqG/+Vrtp0YWsyR27KlEwz0xnnT3LgwjB37vl+97tzz9whdDiow/pwBCjofN0AJohwKQgkMxYF8Dmt0bxdnhaAQoWTXMczENJBhFvGMgqk4GY6SZXmPgvAmy/cnYijGqrwvmTVHSQup2jLvG0ByJf5EYDbUQIAeJxR6U4LQHGV1VodesTijfQxBdrkaSrL6z0Hlst8i4An7QBgYDar0lMrgM45ItxrCwDjflajnC+AtR8Gvn8zGpz9xwVOjor/Zma/ANt/GIsLNWxt8p7o4IiAmlLQP+C9pvkG+FoyUPxYs52xhFDPKIh3uRviG2ClWIdsTpHoJYymFNdliQzABBsaEZg4p+DwUftliRxAggwOC0xdidma1RaAI92Ea9OHOgcwPqlANruI1AElhsa2dBKXQJEBnDglGlvxWN/BNcE3gKyCS69b64AUlMISwEv4BpDJ3778i/Xfu5XQtFtaLq+9RiCA6gZj/dcuQN8Audod6kvodYZuz9k7UOK7JPDAbXAY/WxgLjtGDy2f408VPi8MLIUh4JbDELhwNknvLQDyQNoTh87AkFuCIP0E/NzcgWYeTC0bdrkNp6Lm9bc4YM4qr/NzEGaCzNJxLONFRqMbzf22JSu/wlcphhwzpsIAIcIHriGXGadX+/MdWDPflTjRxcH+kLYJhYtj5Piz4/0gF4YVNjk6DvAPDb0aMEr8/nEAAAAASUVORK5CYII= // @version 1.13.3.2 // @description 解除B站大会员观影限制,理论支持番剧和放映厅,不支持的视频请反馈留地址让我修复,或自行在代码搜索‘大会员’并添加识别div与语句。 // @author p7 // @require https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js // @match https://www.bilibili.com/bangumi/* // @match https://vip.parwix.com:4433/* // @match https://z1.m1907.cn/* // @match https://showxi.xyz/* // @match https://www.mtosz.com/* // @match https://vip.bljiex.com/* // @match https://titan.mgtv.com.okjx.cc:3389/* // @match https://www.nxflv.com/* // @match https://jx.kingtail.xyz/* // @run-at document-end // @grant GM_setValue // @grant GM_getValue // @grant GM_addStyle // @grant unsafeWindow // @namespace https://greasyfork.org/users/789132 // @downloadURL none // ==/UserScript== (function () { /*1.11.6 mod区域 1.13.2.3更新*/ let originalInterfaceList = [{ "name": "Mao播放器", "category": "1", "url": "https://www.mtosz.com/m3u8.php?url=" }, { "name": "BL", "category": "1", "url": "https://vip.bljiex.com/?v=" }, { "name": "Parwix", "category": "1", "url": "https://vip.parwix.com:4433/player/?url=" }, { "name": "m1907", "category": "1", "url": "https://z1.m1907.cn/?jx=" }, { "name": "芒果", "category": "1", "url": "https://titan.mgtv.com.okjx.cc:3389/ok.php?url=", }, { "name": "kingtail", "category": "1", "url": "https://www.nxflv.com/?url=", "special": "放映厅" }, { "name": "showxi", "category": "1", "url": "https://showxi.xyz/mov/s/?sv=3&url=", "special": "多线" }, { "name": "久播", "category": "1", "url": "https://jx.kingtail.xyz/?url=", "special": "多线" } ]; /*mod区域结束*/ var CHANNEL_COUNT = 0 var MAX_DM_COUNT = 10 var player, playerRect var minpool = []; var domPool = []; var domtopdownPool = []; var listobj let distance = 25; let xmlhtml; //1.11.6修复弹幕重复问题 let minpoolout = []; let lastvideotime = 0; //1.11.7全屏问题 1.13.0继续优化 let fullscreen; let minpoolnout = []; //1.13.1 let cid, aid; let subtitlepool = []; let Subtitle = []; let Subtitleout = []; let zimufontSize = '24'; //1.13.2 let biliplayerH //1.13.3 let usualWidth //1.13.3重复利用数据 let peopleNumber let listjson let subtitleArray //1.12.1 set let dmblock_scroll, dmblock_top, dmblock_bottom, dmblock_color, dmblock_special; let buiSwitch = 'true'; let repeatSlider = false; let repeatP = 0; //去重概率[0-100] let opacitySlider = false; let opacityNum = 1; let fontSize = 25; let fontSizeSlider = false; let dmspeed = 1; //0.5-1.5 let dmspeedSlider = false; let dmArea = 1; let dmAreaSlider = false; let dmTextshadow, dmTextType, dmfontWeight; //1.12.2修补设置图标 function xmlToJson(xml) { var obj = {}; if (xml.nodeType == 1) { if (xml.attributes.length > 0) { obj["@attributes"] = {}; for (var j = 0; j < xml.attributes.length; j++) { var attribute = xml.attributes.item(j); obj["@attributes"][attribute.nodeName] = attribute.nodeValue; } } } else if (xml.nodeType == 3) { obj = xml.nodeValue; } if (xml.hasChildNodes()) { for (var i = 0; i < xml.childNodes.length; i++) { var item = xml.childNodes.item(i); var nodeName = item.nodeName; if (typeof (obj[nodeName]) == "undefined") { obj[nodeName] = xmlToJson(item); } else { if (typeof (obj[nodeName].push) == "undefined") { var old = obj[nodeName]; obj[nodeName] = []; obj[nodeName].push(old); } obj[nodeName].push(xmlToJson(item)); } } } return obj; }; //1.11.7 稳定发送 function postdownmessage(obj) { for (var posta = 0; posta <= 3; posta++) { try { window.frames[posta].postMessage(obj, '*'); } catch {} for (var postb = 0; postb <= 3; postb++) { try { window.frames[posta].frames[postb].postMessage(obj, '*'); } catch {} for (var postc = 0; postc <= 3; postc++) { try { window.frames[posta].frames[postb].frames[postc].postMessage(obj, '*'); } catch {} } } } } async function getBV() { //let bv = $("a.av-link[target='_blank']")[0] //13.1字幕部分参考 greasyfork.org/zh-CN/scripts/428741 cid = unsafeWindow.cid if (cid == undefined) { cid = unsafeWindow.__INITIAL_STATE__.epInfo.cid } console.log('cid=' + cid) aid = unsafeWindow.aid if (aid == undefined) { aid = unsafeWindow.__INITIAL_STATE__.epInfo.aid } console.log('aid=' + aid) xmlhtml = `https://api.bilibili.com/x/v1/dm/list.so?oid=${cid}` $.ajax({ url: xmlhtml, dataType: "xml", async: false, //1.13.3 success: function (xml) { listjson = xmlToJson(xml) //console.log('listjson1',listjson) } }) //12.6.3在线人数 //console.log(`https://api.bilibili.com/x/player.so?id=cid:${result.data[0].cid}&bvid=${bv.innerText}`); $.ajax({ url: `https://api.bilibili.com/x/player.so?id=cid:${cid}&aid=${aid}`, dataType: "text", async: false, //1.13.3 success: function (chars) { peopleNumber = chars.substring(chars.indexOf('') + 14, chars.indexOf('')); } }) //13.1 字幕查询 let subtitleApi = 'https://api.bilibili.com/x/player/v2?' let season_id = document.querySelector("meta[property='og:url']").content.match(/ss(\d+)/g)[0].replace('ss', '') let params = ['aid=' + aid, 'cid=' + cid, 'season_id=' + season_id] $.ajax({ url: subtitleApi + params.join('&'), dataType: "json", async: false, //1.13.3 success: function (res) { if (!res['data']['subtitle']['subtitles'].length) { //console.log('未发现字幕'); } else { //console.log(res) let index = (res['data']['subtitle']['subtitles'][0]['lan_doc'].search('简体') !== -1) ? 0 : 1 let url = 'https:' + res['data']['subtitle']['subtitles'][index]['subtitle_url'] let subtitleUrl = url console.log(`发现字幕 [${res['data']['subtitle']['subtitles'][index]['lan_doc']}]- ` + url) $.ajax({ url: subtitleUrl, dataType: "json", success: function (res) { subtitleArray = res } }) } } }) window.top.postMessage({ str: 'hasplayer', fromweb: window.location.href }, '*'); } function receiveInfoFromAnotherDomain() { window.addEventListener("message", function (ev) { switch (window.location.host) { case 'www.bilibili.com': //if (ev.origin != 'https://www.bilibili.com' && ev.origin != 'https://message.bilibili.com') { //console.log(ev.origin, ' message to', window.location.href, ev.data); switch (ev.data.str) { case 'hasplayer': //1.13.3 感谢幽隐恋梦的优化思路 //console.log('hasplayer', cid, subtitleArray, peopleNumber, listjson) if (cid) { $('.bilibili-player-video-info-people-number').text(peopleNumber) $('.bilibili-player-video-info-danmaku-number').text(listjson.i.d.length) postdownmessage({ obj: listjson, str: 'xmllist' }) if (subtitleArray != undefined) { postdownmessage({ obj: subtitleArray, str: 'subtitleArray' }) } } else { getBV() //console.log('listjson2',listjson) } break; case 'iframe监听初始化': //1.13.2.1 biliplayerH = $('#player_module').height() - 46 postdownmessage({ str: 'biliplayerH', p: biliplayerH }) break; case '刷新iframe': //1.13.3.1 console.log('刷新iframe') $('#iframe').attr('src', $('#iframe').attr('src')); break; } //} break default: window.top.postMessage({ fromweb: window.location.href, obj: ev.data, str: '来自iframe:', from: ev.origin }, '*'); switch (ev.data.str) { case 'xmllist': listobj = ev.data.obj; break; case 'checktrue': buiSwitch = 'true'; break; case 'checkfalse': buiSwitch = 'false'; break; case 'scrollon': dmblock_scroll = 'on'; //1.12.2点击隐藏滚动弹幕 for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { $(domPool[i][j]).show(); } } break; case 'scrolloff': dmblock_scroll = 'off'; //1.12.2点击隐藏滚动弹幕 for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { $(domPool[i][j]).hide(); } } break; case 'topon': dmblock_top = 'on'; break; case 'topoff': dmblock_top = 'off'; break; case 'bottomon': dmblock_bottom = 'on'; break; case 'bottomoff': dmblock_bottom = 'off'; break; case 'coloron': dmblock_color = 'on'; break; case 'coloroff': dmblock_color = 'off'; break; case 'repeatP': repeatP = ev.data.p; break; case 'opacityNum': opacityNum = ev.data.p; setdomOpacity(); break; case 'fontSize': fontSize = ev.data.p; setdomFontsize(); break; case 'dmspeed': dmspeed = ev.data.p; break; case 'dmArea': dmArea = ev.data.p; break; case 'dmTextshadow': //1.12.6.1 dmTextshadow = ev.data.p; setdomTextshadow(); break; case 'dmTextType': //1.12.6.3 dmTextType = ev.data.p; setdomTextType(); break; case 'dmfontWeight': //1.12.6.5 dmfontWeight = ev.data.p; setdomfontWeight() break; case 'subtitleArray': //1.13.1 Subtitle = ev.data.obj.body; //console.log('subtitleArray',Subtitle,Subtitle[0].content,Subtitle[0].from) break; case 'biliplayerH': //1.13.2 biliplayerH = ev.data.p; break; case 'playerHchange': //1.13.2.2 refreshDom() break; } } }) window.top.postMessage({ fromweb: window.location.href, str: 'iframe监听初始化', }, '*'); } function detecH5Player(findplayertime) { player = document.querySelector('video'); if (player) { window.top.postMessage({ str: 'hasplayer', fromweb: window.location.href }, '*'); playerRect = player.getBoundingClientRect(); initcss(); player.addEventListener('pause', function () { $('.left').each(function (index, element) { element.style.willChange = 'auto' let domRect = element.getBoundingClientRect(); let domLeft = domRect.left - playerRect.left; $(element).css('transform', `translateX(${domLeft}px)`); $(element).css('transition', `transform 0s linear`); }) }); //1.11.7 document.addEventListener("fullscreenchange", function (e) { refreshDom() if (document.fullscreenElement) { fullscreen = true } else { fullscreen = false } }) player.addEventListener('playing', function () { playtime = (new Date()).getTime() $('.left').each(function (index, element) { let domRect = element.getBoundingClientRect() let domLeft = domRect.left - playerRect.left let oldS = element.clientWidth + player.clientWidth let newS = element.clientWidth + domLeft let oldT = 0.0074 * (element.clientWidth + player.clientWidth) / dmspeed let newT = newS / oldS * oldT $(element).css('transition', `transform ${newT}s linear`); $(element).addClass('left'); element.style.willChange = 'transform' element.style.transform = `translateX(${-element.clientWidth}px)`; }) }); player.addEventListener('timeupdate', function () { //1.11.6 修复弹幕重复、前进后退清屏、后退重载弹幕 let lastlen = parseInt(lastvideotime / 60) let startlen = parseInt(player.currentTime / 60) if (lastvideotime > player.currentTime) { for (var c = startlen; c <= lastlen; c++) { if (minpoolout[c].length != 0) { minpool[c] = minpool[c].concat(minpoolout[c]) minpoolout[c].length = 0 } } Subtitle = Subtitle.concat(Subtitleout) refreshDomscreen() } else if (lastvideotime + 2 < player.currentTime) { refreshDomscreen() } lastvideotime = player.currentTime if (minpool.length == 0 && listobj && player.duration) { //1.13.2防止错误 minpool = new Array(parseInt(player.duration / 60)); let minlen = minpool.length for (var a = 0; a <= minlen; a++) { minpool[a] = [] } minpoolout = new Array(minlen); for (var b = 0; b <= minlen; b++) { minpoolout[b] = [] } let len = listobj.i.d.length for (var j = 0; j < len; j++) { let strp = listobj.i.d[j]['@attributes'].p let arrp = strp.split(','); let arrpJson = { "time": arrp[0], "type": arrp[1], "size": arrp[2], "rgb": arrp[3], "pool": arrp[5], "text": listobj.i.d[j]['#text'] }; try { minpool[parseInt(arrp[0] / 60)].push(arrpJson); } catch {} } } $('.topdown').each(function (index, element) { if (element.innerText != '') { let nowtime = (new Date()).getTime(); let lasttime = parseInt(nowtime) - parseInt($(element).prop("name")) if (lasttime >= 4500) { element.innerText = '' element.name = '' } } }); $('.zimu').each(function (index, element) { if (element.innerText != '') { let nowT = player.currentTime let endT = $(element).prop("name") if (nowT >= endT) { element.innerText = '' element.name = '' } } }); if (minpool.length != 0 && domPool.length != 0 && buiSwitch == 'true') { let channel; let nowlen = parseInt(player.currentTime / 60); if (!$(player).paused) { for (var j = minpool[nowlen].length - 1; j > -1; j--) { label122: { let nowtext = minpool[nowlen][j].text //12.6.4 if (minpool[nowlen][j].time >= player.currentTime && minpool[nowlen][j].time <= player.currentTime + 0.5 && minpool[nowlen][j].type == '1' && dmblock_scroll != 'off') { if (minpool[nowlen][j].rgb != '16777215' && dmblock_color == 'off') { break label122; } //1.12.3 重复判断 1.12.6.4 修复 if (repeatP == 100 || repeatP > Math.floor(Math.random() * 100)) { for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { if ($(domPool[i][j]).text() == nowtext) { break label122; } } } } channel = getChannel() if (channel != -1) { let arrpJson = minpool[nowlen][j] let dom = domPool[channel].shift() //把数组的第一个元素从其中删除 domPool[channel].push(dom); //向数组的末尾添加一个或多个元素 shootDanmu(dom, arrpJson, channel); minpoolout[nowlen].push(minpool[nowlen][j]) minpool[nowlen].splice(j, 1); } else { minpoolnout.push(minpool[nowlen][j]) } } else if (minpool[nowlen][j].time >= player.currentTime && minpool[nowlen][j].time <= player.currentTime + 0.5 && minpool[nowlen][j].type != '1') { if (minpool[nowlen][j].type == '4' && dmblock_bottom == 'off') { break label122; } if (minpool[nowlen][j].type == '5' && dmblock_top == 'off') { break label122; } if (minpool[nowlen][j].rgb != '16777215' && dmblock_color == 'off') { break label122; } //1.12.3 重复判断 1.12.6.4 修复 if (repeatP == 100 || repeatP > Math.floor(Math.random() * 100)) { for (let i2 = 0; i2 < CHANNEL_COUNT; i2++) { if ($(domtopdownPool[i2]).text() == nowtext) { break label122; } } } channel = gettopdownChannel(minpool[nowlen][j].type); if (channel != -1) { let arrpJson = minpool[nowlen][j] let dom = domtopdownPool[channel]; shoottopdownDanmu(dom, arrpJson, channel); minpoolout[nowlen].push(minpool[nowlen][j]) minpool[nowlen].splice(j, 1); } else { minpoolnout.push(minpool[nowlen][j]) } } } } for (let n = 0; n < minpoolnout.length; n++) { if (minpoolnout[n].time + 5 >= player.currentTime) { minpoolnout.splice(n, 1); } else { let channel2 if (minpoolnout[n].type == '1') { channel2 = getChannel() if (channel2 != -1) { let arrpJson = minpoolnout[n] let dom = domPool[channel2].shift() //把数组的第一个元素从其中删除 domPool[channel2].push(dom); //向数组的末尾添加一个或多个元素 shootDanmu(dom, arrpJson, channel2); minpoolnout.splice(n, 1); } } else { channel2 = gettopdownChannel(minpoolnout[n].type); if (channel2 != -1) { let arrpJson = minpoolnout[n] let dom = domtopdownPool[channel2]; shoottopdownDanmu(dom, arrpJson, channel2); minpoolnout.splice(n, 1); } } } } } } //console.log(Subtitle.length,player.currentTime) if (Subtitle.length != 0) { //console.log('subtitleArray2',Subtitle,Subtitle[0].content,Subtitle[0].from,player.currentTime) if (player.currentTime <= 2) { shootZimu({ "from": 1, "to": 3, "location": 1, "content": "字幕加载成功[简体中文],感谢Muise Destiny的技术支持" }) } for (let i = 0; i < Subtitle.length; i++) { if (Subtitle[i].from > player.currentTime && Subtitle[i].from <= player.currentTime + 0.5) { //console.log(Subtitle[i].from,Subtitle[i].to,Subtitle[i].content,Subtitle[i].location,player.currentTime) shootZimu(Subtitle[i]) Subtitleout.push(Subtitle[i]) Subtitle.splice(i, 1); } } } }) } else { setTimeout(function () { if (new Date().getTime() - findplayertime <= 5000) { detecH5Player(findplayertime) } }, 500) } } function refreshDomscreen() { //1.11.6 清除在场弹幕 $('.left').each(function (index, element) { $(element).css('transition', `transform 0s linear`); $(element).removeClass('left'); //1.12.6补充 $(element).addClass('right'); element.style.left = 0 element.style.willChange = 'transform' element.style.transition = null; element.style.willChange = 'auto' element.style.transform = `translateX(${player.clientWidth}px)` element.innerText = '' element.className = 'right'; }) for (let i = 0; i < CHANNEL_COUNT; i++) { try { domtopdownPool[i].innerText = '' } catch {} } $('.right').each(function (index, element) { element.style.left = 0 element.style.transform = `translateX(${player.clientWidth}px)` }) } let scroll_on = ` ` let scroll_off = ` ` let top_on = ` ` let top_off = ` ` let bottom_on = ` ` let bottom_off = ` ` let color_on = ` ` let color_off = ` ` let special_on = ` ` let special_off = ` ` function initcss() { let css = `.right { position: absolute; visibility: hidden; white - space: nowrap; /*left: 700px; transform: translateX(700px);*/ }.left { position: absolute; white - space: nowrap; user - select: none; /* transition: transform 7s linear; 时间相同 越长的弹幕滑动距离越长 所以越快~ */ }.topdown { position: absolute; white - space: nowrap; user - select: none; }` GM_addStyle(css); refreshDom(); //13.1 字幕 for (let j = 0; j < 2; j++) { let dom2 = document.createElement('div'); dom2.style.fontSize = zimufontSize + 'px'; dom2.style.color = 'rgb(255,255,255)'; dom2.style.opacity = '1' dom2.style.fontWeight = '400' dom2.style.top = '10px' dom2.style.background = 'rgba(0,0,0,0.4)'; dom2.style.padding = '0 8px'; dom2.style.lineHeight = 'normal'; dom2.style.fontFamily = 'none'; dom2.style.userSelect = 'none'; dom2.style.position = 'absolute'; dom2.className = 'zimu'; if (j != 0) { //console.log(j,'dom2zm') dom2.style.top = `${player.clientHeight - zimufontSize - 45}px`; $(dom2).addClass("zimubottom") } player.parentNode.appendChild(dom2); subtitlepool.push(dom2); } //shootZimu({},subtitlepool[1]) } async function refreshDom() { if (fullscreen) { await sleep(400); } try { let nowCHANNEL_COUNT = Math.floor((player.clientHeight / fontSize - 1) * dmArea); /*window.top.postMessage({ obj: { a: 'refreshDom', b: nowCHANNEL_COUNT - CHANNEL_COUNT, c: fontSize }, str: '来自iframe:', from: window.location.href }, '*');*/ if (nowCHANNEL_COUNT > CHANNEL_COUNT) { // 先new一些span 重复利用这些DOM if (domPool.length < nowCHANNEL_COUNT) { for (let j = CHANNEL_COUNT; j < nowCHANNEL_COUNT; j++) { let doms = []; for (let i = 0; i < MAX_DM_COUNT; i++) { // 要全部放进player let dom = document.createElement('div'); dom.style.color = 'rgb(255,255,255)'; dom.style.fontFamily = dmTextType //'SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif' dom.style.fontWeight = dmfontWeight.toString() //'bold' dom.style.opacity = opacityNum //'1' //不透明度 dom.style.textShadow = dmTextshadow //'rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px'; //dom.style.transform = `translateX(${player.clientWidth}px)` dom.style.willChange = 'auto' // 初始化dom的位置 通过设置className dom.className = 'right'; // DOM的通道是固定的 所以设置好top就不需要再改变了 //dom.style.top = j * fontSize + 'px'; player.parentNode.appendChild(dom); // 放入改通道的DOM池 doms.push(dom); // 每次到transition结束的时候 就是弹幕划出屏幕了 将DOM位置重置 再放回DOM池 dom.addEventListener('transitionend', () => { dom.style.transition = null; dom.style.willChange = 'auto' //dom.style.transform = `translateX(${player.clientWidth}px)` dom.innerText = '' dom.className = 'right'; }); } domPool.push(doms); let dom2 = document.createElement('div'); dom2.style.fontSize = fontSize + 'px'; dom2.style.color = 'rgb(255,255,255)'; dom2.style.fontFamily = dmTextType dom2.style.fontWeight = dmfontWeight.toString() dom2.style.opacity = opacityNum dom2.style.textShadow = dmTextshadow dom2.style.willChange = 'auto' //dom2.style.top = j * fontSize + 'px'; //dom2.style.left = `${(player.clientWidth - dom2.clientWidth) / 2}px`; dom2.className = 'topdown'; player.parentNode.appendChild(dom2); domtopdownPool.push(dom2); //console.log(domtopdownPool.length,nowCHANNEL_COUNT) } } } CHANNEL_COUNT = nowCHANNEL_COUNT //console.log(domPool.length, nowCHANNEL_COUNT) //topdownmid() //13.0 $('.topdown').each(function (index, element) { //console.log($(element).text(),$('.topdown').eq(index).text(),$('.topdown').text()) if ($(element).text() != '') { element.style.left = `${(player.clientWidth - element.clientWidth) / 2}px`; //console.log($(element).text(),element.style.left,(player.clientWidth - element.clientWidth) / 2) } }) $('.zimu').each(function (index, element) { if ($(element).text() != '') { element.style.left = `${(player.clientWidth - element.clientWidth) / 2}px`; } if ($(element).attr('class').indexOf('zimubottom') != -1) { element.style.top = `${player.clientHeight - zimufontSize - 45}px`; } }) let refreshDom_time = parseInt(player.currentTime / 60) if (minpool.length != 0) { minpool[refreshDom_time] = minpool[refreshDom_time].concat(minpoolout[refreshDom_time]) minpoolout[refreshDom_time].length = 0 } } catch {} } function getChannel() { for (let i = 0; i < CHANNEL_COUNT; i++) { let lastNumPos = domPool[i].length - 1 let lastDom = domPool[i][lastNumPos]; distance = 17 + Math.floor(Math.random() * 10) //1.13.0 随机间距 if (lastDom) { if (lastDom.className == 'right') { return i } let lastDomPos = lastDom.getBoundingClientRect(); if (lastDomPos.right > playerRect.right) { continue } let occupyS = lastDomPos.right - playerRect.left // 追及问题 if (player.clientWidth - occupyS < distance) { continue } for (let j = 0; j < domPool[i].length; j++) { if (domPool[i][j].className == 'right') { return i } } } } return -1; } function gettopdownChannel(type) { for (let i = 0; i < CHANNEL_COUNT; i++) { if (type == 4) { let lastNumPos = domtopdownPool.length - i - 1 let downDom = domtopdownPool[lastNumPos]; if (downDom.innerText == '') { return i } } else if (type == 5) { let lastNumPos2 = i let topDom = domtopdownPool[lastNumPos2]; if (topDom.innerText == '') { return i } } } return -1; } /** * 根据DOM和弹幕信息 发射弹幕 */ function shootZimu(arrpJson) { let dom if (arrpJson.location == '2') { dom = subtitlepool[1] } else { dom = subtitlepool[0] } dom.innerText = arrpJson.content; dom.name = arrpJson.to dom.style.left = `${(player.clientWidth - dom.clientWidth) / 2}px`; //console.log(arrpJson.from+'-'+dom.name+'biu~'+dom.innerText) } function shootDanmu(dom, arrpJson, channel) { dom.innerText = arrpJson.text; let num16 = parseInt(arrpJson.rgb).toString(16); dom.style.color = '#' + (Array(6).join(0) + num16).slice(-6); dom.style.fontSize = arrpJson.size * fontSize / 25 + 'px'; dom.style.transform = `translateX(${player.clientWidth}px)`; //1.13.0优化全屏后左右弹幕 dom.style.top = channel * fontSize + 'px'; //1.13.1优化上下弹幕位置 // 如果为每个弹幕设置 transition 可以保证每个弹幕的速度相同 这里没有保证速度相同 dom.style.transition = `transform ${0.0074 * (dom.clientWidth + player.clientWidth) / dmspeed}s linear`; // 设置弹幕的位置信息 性能优化 left -> transform //dom.style.transform = `translateX(${-dom.clientWidth - player.clientWidth}px)`; dom.style.transform = `translateX(${-dom.clientWidth}px)`; dom.style.willChange = 'transform'; dom.className = 'left'; } function shoottopdownDanmu(dom, arrpJson, channel) { //1.11.5 格式化居然把这function丢失了 dom.innerText = arrpJson.text; dom.name = new Date().getTime(); let num16 = parseInt(arrpJson.rgb).toString(16); dom.style.fontSize = arrpJson.size * fontSize / 25 + 'px'; dom.style.color = '#' + (Array(6).join(0) + num16).slice(-6); dom.style.left = `${(player.clientWidth - dom.clientWidth) / 2}px`; dom.style.top = channel * fontSize + 'px'; //1.13.1优化上下弹幕位置 } var $ = $ || window.$; function commonFunction() { this.GMgetValue = function (name, value) { //得到存在本地的数据 return GM_getValue(name, value); }; this.GMsetValue = function (name, value) { //设置存在本地的数据 return GM_setValue(name, value); }; this.addScript = function (url) { //添加脚本 var s = document.createElement('script'); s.setAttribute('src', url); document.body.appendChild(s); }; } //全局统一变量 const commonFunctionObject = new commonFunction(); /** * 超级解析助手 * @param {Object} originalInterfaceList * @param {Object} playerNodes */ function superVideoHelper() { this.originalInterfaceList = originalInterfaceList; this.node = "#player_module"; this.innerParse = function (url) { //内嵌解析 $("#iframe-player").attr("src", url); }; this.operatOther = function () { switch (window.location.host) { case 'www.bilibili.com': /*if($('.up-name').text()=='哔哩哔哩番剧'){ for(let i=0;i { let viptextArr = [$('.mask-info').text(), $(".video-float-hint-btn").text(), $(".bpx-player-toast-confirm").text(), $(".twp-title").text(), $(".video-float-hint-btn.hint-red").text(), $('.new-twp-btn.right.vip.blue').children('.current').text()]; let vipmatchArr = ['成为大会员', '付费观看', '成为大会员抢先看', '开通大会员观看', "非常抱歉,根据版权方要求您所在的地区无法观看本片"]; let intersection = viptextArr.filter(item => new Set(vipmatchArr).has(item)) if (intersection.length != 0) { //console.log("是vip视频"); this.videoreplace(); clearInterval(waitlimit); } if (new Date().getTime() - findviptime >= 5000) { clearInterval(waitlimit) } }, 250); //1.12.1 预防不能解锁vip视频的情况 this.addHtmlElements() break default: try { receiveInfoFromAnotherDomain(); //1.13.3.1 if (window.location.host == 'titan.mgtv.com.okjx.cc:3389' || window.location.host == 'vip.parwix.com:4433' || window.location.host == 'www.mtosz.com') { let decideloadT = new Date().getTime(); let decideloadlimit = setInterval(() => { let panduan = false if ($('h2').text().indexOf('缺少视频地址') != -1) { panduan = true }else if($('h1').text().indexOf('请填入视频URL地址') != -1||$('h1').text().indexOf('解析失败') != -1) { panduan = true } if (panduan == true) { clearInterval(decideloadlimit); window.top.postMessage({ str: '刷新iframe', from: window.location.href }, '*'); } if (new Date().getTime() - decideloadT >= 10000) { clearInterval(decideloadlimit) } if (new Date().getTime() - decideloadT >= 3500&&window.location.host == 'www.mtosz.com') { clearInterval(decideloadlimit) } }, 500); } detecH5Player(new Date().getTime()) this.setvipcss(); } catch (err) { console.log('h5接口:' + err) } break } } this.setvipcss = function () { //console.log(window.location.host) switch (window.location.host) { case 'showxi.xyz': //1.12.5 修改showxi的css let starcss = new Date() let starcssInterval = setInterval(function () { if (new Date() - starcss >= 3000) { clearInterval(starcssInterval); } else { $('.jconfirm-open').hide(); $('.player-url-tips').hide(); $(".play-box").children('div').eq(0).hide() $(".play-box").children('div').eq(1).hide() $('.play-box').css('width', '100%'); $('.play-box').css('top', '0px'); //console.log(biliplayerH) if (biliplayerH != undefined) { $('.play-box').css('height', biliplayerH); $('iframe').css('height', biliplayerH - 60); clearInterval(starcssInterval); } $('.operation').children('div').each(function (indexx, item) { if ($(item).attr("class") == undefined) { //console.log($(item).attr("class")) $(item).css('display', 'none') item.style.display = 'none' } }) $('.operation').css('display', 'block') } }, 250); break; case 'vip.parwix.com:4433': //13.2.1 let starcss2 = new Date() let starcssInterval2 = setInterval(function () { if (new Date() - starcss2 >= 3000) { clearInterval(starcssInterval2); } else { if ($('.yzmplayer-comment-box') != 0) { $('.yzmplayer-comment-box').hide(); $('.yzmplayer-list-icon').hide(); $('.yzmplayer-setting-icon').hide(); //$('.yzmplayer-played').css('background','#00a1d6 !important'); let parwixblue = ` .yzmplayer-bar .yzmplayer-played { background:#00a1d6 !important; } .yzmplayer-volume-bar .yzmplayer-volume-bar-inner{ background:#00a1d6 !important; } .yzmplayer-volume-bar .yzmplayer-volume-bar-inner .yzmplayer-thumb{ background:#00a1d6 !important; } .yzmplayer-setting .yzmplayer-setting-speeds:hover .title{ background:#00a1d6 !important; } .yzmplayer-setting .yzmplayer-setting-speeds:hover .speed-stting{ transform: scale(1); } .yzmplayer-setting-speed-panel.speed-stting { bottom: 35px; margin-left: -10px; } ` GM_addStyle(parwixblue) $(".yzmplayer-setting-speeds").removeAttr("data-balloon"); $(".yzmplayer-setting-speeds").removeAttr("data-balloon-pos"); clearInterval(starcssInterval2); } } }, 250); break; case 'www.mtosz.com': //13.2.1 let starcss3 = new Date() let starcssInterval3 = setInterval(function () { if (new Date() - starcss3 >= 3000) { clearInterval(starcssInterval3); } else { if ($('.leleplayer-comment-box')) { $('.leleplayer-comment-box').hide(); $('.leleplayer-list-icon').hide(); $('.leleplayer-setting-icon').hide(); let maoblue = ` .leleplayer-bar .leleplayer-played { background:#00a1d6 !important; } .leleplayer-volume-bar .leleplayer-volume-bar-inner{ background:#00a1d6 !important; } .leleplayer-volume-bar .leleplayer-volume-bar-inner .leleplayer-thumb{ background:#00a1d6 !important; } .leleplayer-setting .leleplayer-setting-speeds:hover .title{ background:#00a1d6 !important; } .leleplayer-setting .leleplayer-setting-speeds:hover .speed-stting{ transform: scale(1); } .leleplayer-setting-speed-panel.speed-stting { bottom: 35px; margin-left: -10px; } ` GM_addStyle(maoblue) $(".leleplayer-setting-speeds").removeAttr("data-balloon"); $(".leleplayer-setting-speeds").removeAttr("data-balloon-pos"); clearInterval(starcssInterval3); } } }, 250); break; } } this.videoreplace = function () { //1.11.6 修复m1907存在滚动条(才发现是滚动条) 修复基础不扎实且手贱导致的全屏问题 1.12.7修复zindex问题 let videoPlayer = $(`
`); let index = commonFunctionObject.GMgetValue("index"); //1.12.1 修复接口记忆 if (index == null) { index = '0' commonFunctionObject.GMsetValue("index", '0'); } let url2 = this.originalInterfaceList[index].url + window.location.href; if (document.getElementById("iframe-player") == null) { //1.11.5 尝试修复多重视频声音 www.cnblogs.com/dzyany/p/14187782.html let playerb = document.querySelector('video'); if (playerb) { playerb.pause(); playerb.addEventListener('timeupdate', function () { playerb.pause(); }) playerb.removeAttribute('src'); playerb.currentSrc = ''; playerb.innerHTML = ''; } let playera = $(this.node); playera.empty(); playera.append(videoPlayer); /*$('#iframe-play-div').resize(function(){ $('#iframe-play-div').css('height', ($('#player_module').height()-46)+`px`) })*/ //13.2.2 var targetNode = document.querySelector("#player_module"); var observer = new MutationObserver(function (mutations, observer) { //console.log('视频高度变化'); if ($('#iframe-play-div').height() != $('#player_module').height() - 46) { $('#iframe-play-div').css('height', $('#player_module').height() - 46 + 'px') //refreshDom() postdownmessage({ str: 'playerHchange', }) } }); observer.observe(targetNode, { attributes: true }); //console.log('biliplayerH',playera.height()) //1.11.5添加底部区域 1.11.8修复底栏层次问题 this.bottomArea() } this.innerParse(url2); //1.11.5 修复移除vip提示bug let removetime = new Date().getTime(); let waitlimit = setInterval(() => { $(".player-limit-mask").remove(); $(".player-limit-mask pay").remove(); $(".twp-container").remove(); $(".twp-mask.twp-float").remove(); if (new Date().getTime() - removetime >= 5000) { clearInterval(waitlimit) } }, 250); /*//1.13.2.2 console.log('biliplayerH',biliplayerH) if(biliplayerH!=undefined){ $('#iframe-play-div').css('height',biliplayerH+'px') }*/ } this.addHtmlElements = function () { var vipVideoImageBase64 = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAC9klEQVRoQ+2ZPWgVQRDH/7/CWqOIYOFHFbRSjJhGMGDpByoIago70cqvUtQgdipWFqawMWghGIidhcHKQAJqEURBRfED1CCCjc3IPu4em31775J7d3m8cAtX3O7szP7nPzszx6EeH/T4+VUD6DaDTQbMbE+3D7MY+8Ckkw8BPFuMki7KDtUAuuh9Z3oZMtBljxY2X9eBwq4raWPNQEmOLKxm+TBgZqsknQ1dAVzNco+ZhWsm6ZakHZLC1mQyrZ5OX2RvzMxnSa8lzQJ/YwLzGDCze5JOeoI/gbVtAMxJ6vPW7wKnkr4qbEuaxccDcGWBsfNV0mjMmSGAg5LGA6XbgFehITPbLel5MN84ZAUAUjMPgWO+zZY7YGbvJW0OvRoB8EjSEW9+BhhIvOvCp0wGfPPbgZfpRAzATUnn56GEmJyLd39cBNxeF99FADTa42BskuQef4wDh9oB2CXpRbDpMPA4nTOz05LuBDLrgW+dAACGIkxfkHTDm/8DrMwEkBxgOskkqdwEcMAD4GLf3YF0PACOe+uFGMgA4Bj4EAAbAGbcXLQOmNklSdeCTRuBT2bWL+lNsLYfeFIRgH2SJgJ7GwCXYjMBrJb0K9jUiHEzG5F02VubA9b4skXvQMiAmW2VdFSSn24/As0kk1mJzeyppL3ewaaBnWY2K2mLNz8S5ueCAMLwz3q/DZxreweSe3BC0v1Ai7tkYXrsB96WwMBCAfQBv3MBJCD+SVrhaXaZ54z3PgUMhpYrZKCF7bbNnJk5BhwT6fghyW8thoGxigE4my6tXwemQlt5AGI1oamDSIFLmCuURiW5BOGPL8C7drGV206b2XdJ6yJKxoDhmPKCIeS61ZZClncxFgLAtcyxrnEwRmknDFQFIFYTWnJ/CVmoGgYSj7Z81OR86Lg7sOgPmnY6s0IpN4TyYrDb6zWAmoEOPVCHUIcO7Hh7/YemYxcWU7AMf3BkNGDF/FP9rkwGqjddkoWWv5Ql6V1yNXUdWHKXBwZ7noH/dP+HQNqheToAAAAASUVORK5CYII=`; var category_1_html = ""; this.originalInterfaceList.forEach((item, index) => { if (item.category === "1") { category_1_html += "
  • " + item.name + "
  • "; } }); //获得自定义位置 var left = 0; var top = 100; var cssMould = `#vip_movie_box {cursor:pointer; position:fixed; top:` + top + `px; left:` + left + `px; width:0px; z-index:2147483647; font-size:16px; text-align:left;} #vip_movie_box .item_text {} #vip_movie_box .item_text .img_box{width:26px; height:35px;line-height:35px;text-align:center;background-color:#E5212E;} #vip_movie_box .item_text .img_box >img {width:20px; display:inline-block; vertical-align:middle;} #vip_movie_box .vip_mod_box_action {display:none; position:absolute; left:26px; top:0; text-align:center; background-color:#272930; border:1px solid gray;} #vip_movie_box .vip_mod_box_action li{border-radius:2px; font-size:12px; color:#DCDCDC; text-align:center; width:60px; line-height:21px; float:left; border:1px solid gray; padding:0 4px; margin:4px 2px;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;-o-text-overflow:ellipsis;} #vip_movie_box .vip_mod_box_action li:hover{color:#E5212E; border:1px solid #E5212E;} #vip_movie_box li.selected{color:#E5212E; border:1px solid #E5212E;} #vip_movie_box .selected_text {margin-top:5px;} #vip_movie_box .selected_text .img_box{width:26px; height:35px;line-height:35px;text-align:center;background-color:#E5212E;} #vip_movie_box .selected_text .img_box >img {width:20px; height:20px;display:inline-block; vertical-align:middle;} #vip_movie_box .vip_mod_box_selected {display:none;position:absolute; left:26px; top:0; text-align:center; background-color:#F5F6CE; border:1px solid gray;} #vip_movie_box .vip_mod_box_selected ul{overflow-y: auto;} #vip_movie_box .vip_mod_box_selected li{border-radius:2px; font-size:12px; color:#393AE6; text-align:center; width:95px; line-height:27px; float:left; border:1px dashed gray; padding:0 4px; margin:4px 2px;display:block;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;} #vip_movie_box .vip_mod_box_selected li:hover{color:#E5212E; border:1px solid #E5212E;} #vip_movie_box .default-scrollbar-55678::-webkit-scrollbar{width:5px; height:1px;} #vip_movie_box .default-scrollbar-55678::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px rgba(0, 0, 0, 0.2); background:#A8A8A8;} #vip_movie_box .default-scrollbar-55678::-webkit-scrollbar-track{box-shadow:inset 0 0 5px rgba(0, 0, 0, 0.2); background:#F1F1F1;} `; GM_addStyle(cssMould); var htmlMould = `
    线路
      ` + category_1_html + `
    `; $("body").append(htmlMould); $(".item_text").on("mouseover", () => { $(".vip_mod_box_action").show(); }); $(".item_text").on("mouseout", () => { $(".vip_mod_box_action").hide(); }); $(".vip_mod_box_action li").each((liIndex, item) => { item.addEventListener("click", () => { //1.11.5同一操作 var index = parseInt($(item).attr("data-index")); commonFunctionObject.GMsetValue("index", index); this.videoreplace(); }); }); }; this.bottomArea = function () { $('#vip_movie_box').remove(); let playera = $(this.node); //1.11.5添加bottomArea let bottomcss = ` /*底部背景阴影*/ .bilibili-player-video-bottom-area { width: 100%; height: 46px; background-color: #fff; -webkit-box-shadow: 0 0 8px #e5e9ef; box-shadow: 0 0 8px #e5e9ef; -ms-flex-negative: 0; flex-shrink: 0; position: relative; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; } /*1.11.8修复偏移*/ .bilibili-player-video-bottom-area::before { content: none } /*弹幕字体*/ .bilibili-player-video-info-people-number { height: 14px; line-height: 14px; font-size: 14px; font-weight: 600; } /*视频信息文本格式*/ .bilibili-player-video-info { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-flex: 0; -ms-flex: none; flex: none; -ms-flex-negative: 1; flex-shrink: 1; font-size: 12px; height: 16px; line-height: 14px; color: #505050; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; -webkit-box-align: center; -ms-flex-align: center; align-items: center; margin-right: 12px; width: 208px; white-space: nowrap; -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; overflow: hidden; padding: 0 12px 0 20px; user-select:none; } /*弹幕按钮本体*/ .bui-switch .bui-switch-input { position: absolute; width: 30px; height: 20px; border-radius: 10px; opacity: 0; margin: 0; cursor: pointer; z-index: 1; } /*弹幕按钮主体*/ .bui-switch .bui-switch-body { display: inline-block; width: 30px; height: 20px; outline: none; border-radius: 10px; -webkit-box-sizing: border-box; box-sizing: border-box; background: #757575; margin-right: 11px; } .bui-switch .bui-switch-input:checked+.bui-switch-label .bui-switch-body { background: #00a1d6; } /*弹幕按钮dot*/ .bui-switch .bui-switch-dot { top: 2px; left: 2px; border-radius: 100%; width: 16px; height: 16px; background-color: #fff; color: #757575; fill: #757575; line-height: 16px; text-align: center; -webkit-box-shadow: 0 3px 1px 0 rgba(0, 0, 0, .05), 0 2px 2px 0 rgba(0, 0, 0, .1), 0 3px 3px 0 rgba(0, 0, 0, .05); box-shadow: 0 3px 1px 0 rgba(0, 0, 0, .05), 0 2px 2px 0 rgba(0, 0, 0, .1), 0 3px 3px 0 rgba(0, 0, 0, .05); display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .bui-switch .bui-switch-body, .bui-switch .bui-switch-dot { position: relative; -webkit-transition: all .3s; -o-transition: all .3s; transition: all .3s; -webkit-transform: translateZ(0); transform: translateZ(0); } .bui-switch .bui-switch-input:checked+.bui-switch-label .bui-switch-body .bui-switch-dot { left: 100%; margin-left: -18px; color: #00a1d6; fill: #00a1d6; } /*弹幕按钮图片*/ .bui-switch .bui-switch-dot span { display: inline-block; width: 10px; height: 10px; font-size: 0; } /*弹幕设置*/ /*bui*/ .bui-panel.bui-dark { border: none; background: rgba(0, 0, 0, .67); } .bui-panel { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; border-radius: 4px 4px 0 0; border: 1px solid #e2e2e2; background: #fff; overflow: hidden; } .bui { display: -webkit-box; display: -ms-flexbox; display: flex; vertical-align: middle; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .bui-panel-wrap { position: relative; -webkit-transition: all .25s; -o-transition: all .25s; transition: all .25s; -webkit-transform: translateZ(0); transform: translateZ(0); } .bui-panel-move { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; height: 100%; -webkit-transform: translateX(0); transform: translateX(0); -webkit-transition: -webkit-transform .25s; transition: -webkit-transform .25s; -o-transition: transform .25s; transition: transform .25s; transition: transform .25s, -webkit-transform .25s; -webkit-transform: translateZ(0); transform: translateZ(0); } /*滑动条*/ .bui-slider { height: 12px; cursor: pointer; } .bui-slider .bui-track { position: relative; width: 100%; height: 2px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; } .bui-slider.bui-dark .bui-track .bui-bar-wrap, .bui-slider.bui-dark .bui-track .bui-step .bui-step-item .bui-step-dot { background: #505050; } .bui-slider .bui-track .bui-bar-wrap { position: absolute; top: 0; bottom: 0; left: 0; right: 0; border-radius: 1.5px; overflow: hidden; background: #e7e7e7; } .bui-slider .bui-track .bui-bar-wrap .bui-bar, .bui-slider .bui-track.bui-track-vertical .bui-bar-wrap .bui-bar { background: #00a1d6; background: var(--bpx-primary-color, #00a1d6); } .bui-slider .bui-track .bui-bar-wrap .bui-bar { position: absolute; -webkit-transform-origin: 0 0; transform-origin: 0 0; top: 0; bottom: 0; left: 0; right: 0; background: #00a1d6; will-change: transform; } .bui-slider .bui-track .bui-thumb { pointer-events: none; cursor: pointer; } .bui-slider .bui-track .bui-step { pointer-events: none; } .bui-slider .bui-track .bui-step .bui-step-item { position: absolute; width: 0; } .bui-slider .bui-track .bui-step .bui-step-item .bui-step-dot { height: 4px; width: 2px; background: #e5e9ef; border-radius: 1px; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } .bui-slider.bui-dark .bui-track .bui-bar-wrap, .bui-slider.bui-dark .bui-track .bui-step .bui-step-item .bui-step-dot { background: #505050; } .bui-slider .bui-track .bui-step .bui-step-item.bui-step-item-0 .bui-step-dot { -webkit-transform: translateY(-50%); transform: translateY(-50%); } .bui-slider .bui-track .bui-step .bui-step-item.bui-step-item-100 .bui-step-dot { -webkit-transform: translate(-100%, -50%); transform: translate(-100%, -50%); } .bui-slider .bui-track .bui-step .bui-step-item .bui-step-text { position: absolute; bottom: 6px; left: 50%; width: 100px; text-align: center; font-size: 12px; color: #999; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); line-height: 12px; } .bui-slider.bui-dark .bui-track .bui-step .bui-step-item .bui-step-text { color: hsla(0, 0%, 100%, .8); } .bui-slider .bui-track .bui-step .bui-step-item.bui-step-item-0 .bui-step-text { text-align: left; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .bui-slider .bui-track .bui-step .bui-step-item.bui-step-item-100 .bui-step-text { -webkit-transform: translate(-100%, -50%); transform: translate(-100%, -50%); text-align: right; } .bui-slider .bui-track .bui-thumb .bui-thumb-dot { width: 12px; height: 12px; border-radius: 50%; background-color: #00a1d6; display: -webkit-box; display: -ms-flexbox; display: flex; vertical-align: middle; -webkit-box-align: center; -ms-flex-align: center; align-items: center; } .bui-slider .bui-track .bui-thumb .bui-thumb-tooltip { position: absolute; top: -21px; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); padding: 0 7px; line-height: 18px; height: 18px; font-size: 12px; background: rgba(21, 21, 21, .8); border-radius: 4px; color: #fff; opacity: 0; -webkit-transition: opacity .2s ease-in-out; -o-transition: opacity .2s ease-in-out; transition: opacity .2s ease-in-out; pointer-events: none; } /*选择框*/ .bui-checkbox { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; position: relative; cursor: pointer; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; } .bilibili-player .bui-checkbox .bui-checkbox-input:checked+.bui-checkbox-label .bui-checkbox-icon svg, .bilibili-player .bui-checkbox:hover .bui-checkbox-icon svg { fill: #00a1d6; fill: var(--bpx-primary-color, #00a1d6) } .bui-checkbox .bui-checkbox-input { position: absolute; width: 100%; height: 100%; left: 0; top: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 1; } .bui-checkbox .bui-checkbox-label { display: -webkit-box; display: -ms-flexbox; display: flex; vertical-align: middle; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .bui-checkbox .bui-checkbox-icon { display: inline-block; width: 16px; height: 16px; margin-right: 4px; vertical-align: middle; } .bui-checkbox .bui-checkbox-icon svg { vertical-align: top; fill: #ccd0d7; -webkit-transition: all .2s; -o-transition: all .2s; transition: all .2s; -webkit-transform: translateZ(0); transform: translateZ(0); width: 16px; height: 16px; } .bui-checkbox.bui-dark .bui-checkbox-icon svg { fill: #fff; } .bui-checkbox .bui-checkbox-input:checked+.bui-checkbox-label .bui-checkbox-icon svg, .bui-checkbox:hover .bui-checkbox-icon svg { fill: #00a1d6; fill: var(--bpx-primary-color, #00a1d6); } .bui-checkbox .bui-checkbox-input:checked+.bui-checkbox-label .bui-checkbox-icon svg { fill: #00a1d6; } .bui-checkbox .bui-checkbox-input:checked+.bui-checkbox-label .bui-checkbox-icon-default { display: none; } .bui-checkbox .bui-checkbox-input:checked+.bui-checkbox-label .bui-checkbox-icon-selected { display: inline-block; } .bui-checkbox .bui-checkbox-icon-selected { display: none; } .bui-checkbox .bui-checkbox-name { vertical-align: middle; font-size: 12px; line-height: 12px; color: #222; -webkit-transition: all .2s; -o-transition: all .2s; transition: all .2s; -webkit-transform: translateZ(0); transform: translateZ(0); position: relative; } .bui-checkbox.bui-dark .bui-checkbox-name { color: #fff; } .bui-checkbox:hover .bui-checkbox-name { color: #00a1d6; color: var(--bpx-primary-color, #00a1d6) } /*设置主体1.12.2修复位置*/ .bilibili-player-video-danmaku-setting { fill: #757575; font-size: 0; height: 46px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; position: relative; width: 30px; height: 30px; line-height: 30px; margin-right: 11px; cursor: pointer; user-select: none; } /*设置图标1.12.2修复位置*/ .bilibili-player-video-danmaku-setting .bp-svgicon { height: 24px; } .bilibili-player-video-danmaku-setting .bp-svgicon span { display: inline-block; width: 24px; font-size: 0; position: absolute; cursor: pointer; z-index: 1; margin: middle; } .bilibili-player-video-danmaku-setting:hover .bp-svgicon span { color: #00a1d6; fill: #00a1d6; } /*设置显示提示*/ .bilibili-player-video-danmaku-setting:hover .bilibili-player-video-danmaku-setting-wrap { display: inline-block; } .bilibili-player-video-danmaku-setting-wrap { display: none; cursor: default; background: none; border: none; border-radius: 4px 4px 0 0; text-align: left; -webkit-box-sizing: border-box; box-sizing: border-box; width: 298px; height: 366px; font-size: 12px; z-index: 1001; /* 定位 */ position: absolute; bottom: 5px; /* 46px */ right: -149px; /*-149px */ /*margin-left: 0px;*/ } .bilibili-player-video-danmaku-setting-box { position: absolute; right: 0; bottom: 35px; } .bilibili-player-video-danmaku-setting-box { background: rgba(21, 21, 21, .9) !important; border-radius: 2px !important; } .bilibili-player-video-danmaku-setting-left { width: 100%; height: 100%; padding: 12px 20px; -webkit-box-sizing: border-box; box-sizing: border-box; } /*选项大致*/ .bilibili-player-video-danmaku-setting-left-area, .bilibili-player-video-danmaku-setting-left-fontsize, .bilibili-player-video-danmaku-setting-left-opacity, .bilibili-player-video-danmaku-setting-left-speedplus { display: -webkit-box; display: -ms-flexbox; display: flex; width: 100%; height: 16px; line-height: 16px; margin-bottom: 24px; } .bilibili-player-video-danmaku-setting-left-area-title, .bilibili-player-video-danmaku-setting-left-block-title, .bilibili-player-video-danmaku-setting-left-fontsize-title, .bilibili-player-video-danmaku-setting-left-opacity-title, .bilibili-player-video-danmaku-setting-left-speedplus-title { text-align: left; height: 16px; line-height: 16px; margin-bottom: 4px; color: #fff; } .bilibili-player-video-danmaku-setting-left-area-content, .bilibili-player-video-danmaku-setting-left-fontsize-content, .bilibili-player-video-danmaku-setting-left-opacity-content, .bilibili-player-video-danmaku-setting-left-speedplus-content { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; width: 200px; height: 12px; margin-left: 10px; } /*选择框细节*/ .bilibili-player-video-danmaku-setting-left-danmaku-density, .bilibili-player-video-danmaku-setting-left-danmaku-mask, .bilibili-player-video-danmaku-setting-left-preventshade { margin-bottom: 12px; height: 16px; line-height: 16px; float: left; color: #212121; } .bilibili-player-video-danmaku-setting-left-danmaku-density, .bilibili-player-video-danmaku-setting-left-danmaku-mask { margin-left: 10px; } .bilibili-player-video-danmaku-setting-left-danmaku-density label:hover, .bilibili-player-video-danmaku-setting-left-danmaku-density label:hover .bpui-icon-checkbox.icon-12checkbox, .bilibili-player-video-danmaku-setting-left-danmaku-mask label:hover, .bilibili-player-video-danmaku-setting-left-danmaku-mask label:hover .bpui-icon-checkbox.icon-12checkbox, .bilibili-player-video-danmaku-setting-left-preventshade label:hover, .bilibili-player-video-danmaku-setting-left-preventshade label:hover .bpui-icon-checkbox.icon-12checkbox { -webkit-box-shadow: none !important; box-shadow: none !important } .bilibili-player-video-danmaku-setting-left-danmaku-density:hover .bpui-checkbox-text, .bilibili-player-video-danmaku-setting-left-danmaku-mask:hover .bpui-checkbox-text, .bilibili-player-video-danmaku-setting-left-preventshade:hover .bpui-checkbox-text { color: #00a1d6 } .bilibili-player-video-danmaku-setting-left-danmaku-density:hover .bpui-icon-checkbox.icon-12checkbox, .bilibili-player-video-danmaku-setting-left-danmaku-mask:hover .bpui-icon-checkbox.icon-12checkbox, .bilibili-player-video-danmaku-setting-left-preventshade:hover .bpui-icon-checkbox.icon-12checkbox { -webkit-box-shadow: none; box-shadow: none; border: 1px solid #00a1d6 } /*block*/ .bilibili-player-video-danmaku-setting-left-block { overflow: hidden; margin-bottom: 12px; } /*第一行打横*/ .bilibili-player-video-danmaku-setting-left-block-content { position: relative; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-sizing: border-box; box-sizing: border-box; height: 42px; overflow: hidden; cursor: pointer; } /*第一行图标行距*/ .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type { position: relative; width: 28px; height: 100%; margin: 0 22px 16px 0; -webkit-box-sizing: border-box; box-sizing: border-box; color: hsla(0, 0%, 100%, .8); -webkit-transition: all .2s ease-in-out; transition: all .2s ease-in-out; cursor: pointer; } /*第一行图标字体上色*/ .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type .bilibili-player-block-filter-image { /*position: relative;*/ display: inline-block; font-size: 0; width: 28px; height: 28px; line-height: 28px; top: -5px; color: hsla(0, 0%, 100%, .8); fill: hsla(0, 0%, 100%, .8); } /*ban弹幕图标字体*/ .bilibili-player-block-filter-type.bpx-player-active .bilibili-player-block-filter-label { color: #00a1d6!important; color: var(--bpx-fn-color,#00a1d6)!important; } /*ban弹幕图标上色*/ .bilibili-player-block-filter-type.bpx-player-active .bilibili-player-block-filter-image { color: #00a1d6!important; color: var(--bpx-fn-color,#00a1d6)!important; fill: #00a1d6!important; fill: var(--bpx-fn-color,#00a1d6)!important; } .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type .bilibili-player-block-filter-label { position: absolute; left: 0; bottom: -2px; -webkit-box-sizing: border-box; box-sizing: border-box; width: 100%; height: 16px; padding: 0; margin: 0; text-align: center; line-height: 16px; color: hsla(0, 0%, 100%, .8); font-size: 12px; -webkit-transition: none; transition: none; } .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type:hover .bilibili-player-block-filter-image { color: #fff; fill: #fff } .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type:hover .bilibili-player-block-filter-label { color: #fff } .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type.disabled .bilibili-player-block-filter-image { color: #00a1d6 !important; fill: #00a1d6 !important } .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type.disabled .bilibili-player-block-filter-label { color: #00a1d6 !important } /*flag*/ .bilibili-player-video-danmaku-setting-left-flag { display: -webkit-box; display: -ms-flexbox; display: flex; margin-bottom: 12px; font-size: 12px; line-height: 16px; } .bilibili-player-video-danmaku-setting-left-flag-title { -webkit-box-flex: 0; -ms-flex: none; flex: none; color: white; } .bilibili-player-video-danmaku-setting-left-flag-content { width: 100%; margin-left: 10px; padding-top: 2px; opacity: 1 } .bilibili-player-video-danmaku-setting-left-flag-content .bui-step { display: none } .bilibili-player-video-danmaku-setting-left-flag.bilibili-player-unchecked .bilibili-player-video-danmaku-setting-left-flag-content { position: relative } .bilibili-player-video-danmaku-setting-left-flag.bilibili-player-unchecked .bilibili-player-video-danmaku-setting-left-flag-content .bilibili-player-setting-flag { opacity: 0 } .bilibili-player-video-danmaku-setting-left-flag.bilibili-player-unchecked .bilibili-player-video-danmaku-setting-left-flag-content:after { display: inline-block; content: "全站视频将按等级屏蔽弹幕"; position: absolute; top: 0; left: 0; color: #999 } /*fontsize*/ .bilibili-player-video-danmaku-setting-left-fontsize { margin-bottom: 12px; } /*preventshade*/ .bilibili-player-video-danmaku-setting-left-preventshade { clear: left; margin-bottom: 14px; } /*block-word按钮*/ .bilibili-player-video-danmaku-setting-left-block-word { display: -webkit-box; display: -ms-flexbox; display: flex; width: 100%; line-height: 24px; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; margin-bottom: 14px; text-align: center; cursor: pointer; } .bilibili-player-video-danmaku-setting-left-block-word .bilibili-player-video-danmaku-setting-left-block-add, .bilibili-player-video-danmaku-setting-left-block-word .bilibili-player-video-danmaku-setting-left-block-sync { width: 126px; border-radius: 2px; background: hsla(0, 0%, 100%, .3); cursor: pointer; color: white; } .bilibili-player-video-danmaku-setting-left-block-word .bilibili-player-video-danmaku-setting-left-block-add:hover, .bilibili-player-video-danmaku-setting-left-block-word .bilibili-player-video-danmaku-setting-left-block-sync:hover { background: hsla(0, 0%, 100%, .4); } /*更多设置*/ .bilibili-player-video-danmaku-setting-left .bilibili-player-video-danmaku-setting-left-more { clear: left; color: #fff; fill: #fff; line-height: 16px; height: 16px; text-align: left; cursor: pointer; position: relative; top: 4px; } .bilibili-player-video-danmaku-setting-left-more:hover, .bilibili-player-video-danmaku-setting-left-more:hover .bp-svgicon { color: #00a1d6; fill: #00a1d6; } /*箭头*/ .bilibili-player-video-danmaku-setting-left-more .bp-svgicon { position: absolute; right: 0; height: 16px; width: 16px; vertical-align: middle; margin-right: -3px; } .bilibili-player-video-danmaku-setting-left-more-text { vertical-align: middle; display: inline-block; -webkit-transition: color .3s; transition: color .3s; } /*线路整体*/ .bilibili-player-video-btn.bilibili-player-video-btn-quality { fill: #757575; font-size: 0; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; position: relative; width: auto; height: 64px; line-height: 30px; margin-right: 11px; color: #fff; /*top: 5px;*/ user-select: none; } /*hover*/ .bilibili-player-video-btn-quality:hover .bui-select.bui-select-quality-menu .bui-select-list { opacity: 1; display: block; visibility: visible; } /*.bilibili-player-video-btn-quality:hover .bui-select.bui-select-quality-menu .bui-select-result { background: #00a1d6; }*/ .bui-select .bui-select-item:hover { background: #e7e7e7; } .bui-select.bui-dark .bui-select-item:hover { background: hsla(0, 0%, 100%, .1); } /*list*/ .bui-select.bui-select-quality-menu .bui-select-list { font-size: 12px; width: 169px; height: auto !important; text-align: left; background: rgba(21, 21, 21, .9); border-radius: 2px; padding: 0; -webkit-transition: all .2s; -o-transition: all .2s; transition: all .2s; -webkit-transform: translateZ(0); transform: translateZ(0); position: absolute; /* 定位 */ z-index: 1; bottom: 35px; /* left: 50%;13.2.2*/ margin-left:-100px; /* -84.5px;13.2.2*/ opacity: 0; display: none; z-index: 1001; /*13.0*/ } /*表面*/ .bui-select.bui-select-quality-menu .bui-select-result { /*background: #757575;*/ background-color: rgb(251, 114, 153); border-radius: 5px; /* font-weight: 600; */ width: 100%; user-select: none; cursor: pointer; display: block; padding: 0 2px; text-align: center; color: #fff; font-size: 12px; height: 16px; line-height: 16px; } /*选项格式*/ .bilibili-player-video-quality-menu.bui-select.bui-dark .bui-select-list .bui-select-item { padding: 0 12px; height: 36px; line-height: 36px; white-space: nowrap; color: #fff; cursor: pointer } .bilibili-player-video-subtitle-setting-color .bui-select-item>span, .bilibili-player-video-subtitle-setting-color .bui-select-result>span { vertical-align: middle } .bilibili-player-video-subtitle-setting-color .bui-select-item>span:first-child, .bilibili-player-video-subtitle-setting-color .bui-select-result>span:first-child { width: 12px; height: 12px; display: inline-block; border-radius: 2px; margin-right: 8px } .bui-select-item.bui-select-item-active .bilibili-player-video-quality-text { color: #00a1d6; } .bilibili-player-video-btn .bilibili-player-video-quality-menu .bilibili-player-bigvip { position: relative; color: #fff; background-color: #f25d8e; margin-left: 27px; padding: 0 5px; border-radius: 8px; height: 16px; line-height: 16px; -webkit-box-sizing: border-box; box-sizing: border-box; user-select: none; float: right; top: 28%; } /*文本*/ .bilibili-player-video-quality-text { user-select: none; } /*moreset*/ .bilibili-player-video-danmaku-setting-right { width: 100%; height: 100%; padding: 0 20px; -webkit-box-sizing: border-box; box-sizing: border-box } .bilibili-player-video-danmaku-setting-right .bui-select { display: -webkit-box; display: -ms-flexbox; display: flex } .bilibili-player-video-danmaku-setting-right-more { color: #fff; fill: #fff; line-height: 1; text-align: left; cursor: pointer; height: 32px; line-height: 32px } .bilibili-player-video-danmaku-setting-right-more-text { vertical-align: middle; display: inline-block; -webkit-transition: color .3s; transition: color .3s } .bilibili-player-video-danmaku-setting-right-more .bp-svgicon { width: 20px; /*height: 30px; 12.6.4*/ vertical-align: middle; display: inline-block; cursor: pointer; margin-left: -3px } .bilibili-player-video-danmaku-setting-right-more:hover, .bilibili-player-video-danmaku-setting-right-more:hover .bp-svgicon { color: #00a1d6; fill: #00a1d6 } .bilibili-player-video-danmaku-setting-right-separator { width: 305px; border-bottom: 1px solid rgba(229, 233, 239, .1); position: relative; right: 20px } .bilibili-player-video-danmaku-setting-right-fullscreensync, .bilibili-player-video-danmaku-setting-right-speedsync { height: 16px; line-height: 16px; right: 2px } .bilibili-player-video-danmaku-setting-right-fullscreensync { margin-top: 12px; margin-bottom: 6px } .bilibili-player-video-danmaku-setting-right-font, .bilibili-player-video-danmaku-setting-right-speedsync { margin-bottom: 12px } .bilibili-player-video-danmaku-setting-right-font-content { float: left; margin-bottom: 12px } .bilibili-player-video-danmaku-setting-right-font-content .bpui-selectmenu { border-radius: 0 } .bilibili-player-video-danmaku-setting-right-font-content .bpui-selectmenu-list li { -webkit-box-sizing: border-box; box-sizing: border-box; width: 100%; height: 22px; line-height: 22px } .bilibili-player-video-danmaku-setting-right-font-content .bpui-selectmenu-list li:hover { background: #e7e7e7 } .bilibili-player-video-danmaku-setting-right-font-bold { color: #212121; float: left; height: 16px; line-height: 16px; position: relative; top: 4px; left: 14px } .bilibili-player-video-danmaku-setting-right-font-bold label:hover, .bilibili-player-video-danmaku-setting-right-font-bold label:hover .bpui-icon-checkbox.icon-12checkbox { -webkit-box-shadow: none !important; box-shadow: none !important } .bilibili-player-video-danmaku-setting-right-font-bold:hover .bpui-checkbox-text { color: #00a1d6 } .bilibili-player-video-danmaku-setting-right-font-bold:hover .bpui-icon-checkbox.icon-12checkbox { -webkit-box-shadow: none; box-shadow: none; border: 1px solid #00a1d6 } .bilibili-player-video-danmaku-setting-right-fontborder { clear: left; margin-bottom: 12px } .bilibili-player-video-danmaku-setting-right-fontborder-content.bpui-tab-list-type-button { width: 100% } .bilibili-player-video-danmaku-setting-right-fontborder-content .bpui-tab-list { width: 100%; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between } .bilibili-player-video-danmaku-setting-right-fontborder-content .bpui-tab-list .bpui-tab-list-row { width: 70px; height: 24px; line-height: 24px; cursor: pointer; color: #fff; background: #999; border-radius: 2px; padding: 0; margin: 0 } .bilibili-player-video-danmaku-setting-right-fontborder-content .bpui-tab-list .bpui-tab-list-row:hover { color: #fff; background: #757575 } .bilibili-player-video-danmaku-setting-right-fontborder-content .bpui-tab-list .bpui-tab-list-row.bpui-state-selected { color: #fff; padding: 0; margin: 0; background: #00a1d6 } .bilibili-player-video-danmaku-setting-right-type { margin-bottom: 12px } .bilibili-player-video-danmaku-setting-right-type .bpui-selectmenu { border-radius: 0 } .bilibili-player-video-danmaku-setting-right-type .bpui-selectmenu-list li { -webkit-box-sizing: border-box; box-sizing: border-box; width: 100%; height: 22px; line-height: 22px } .bilibili-player-video-danmaku-setting-right-type .bpui-selectmenu-list li:hover { background: #e7e7e7 } .bilibili-player-video-danmaku-setting-right-type-content { width: 166px; height: 24px; line-height: 24px } .bilibili-player-video-danmaku-setting-right-font-title, .bilibili-player-video-danmaku-setting-right-fontborder-title, .bilibili-player-video-danmaku-setting-right-type-title { clear: left; text-align: left; height: 16px; line-height: 16px; margin-bottom: 4px; color: #fff } /*选项与更多设置*/ .bui-panel-item.bui-panel-item-active { opacity: 1; pointer-events: auto; } .bui-panel-item { opacity: 0; pointer-events: none; -webkit-transition: opacity .1s; -o-transition: opacity .1s; transition: opacity .1s; -webkit-transform: translateZ(0); transform: translateZ(0); } .bui-panel-move { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; height: 100%; -webkit-transform: translateX(0); transform: translateX(0); -webkit-transition: -webkit-transform .25s; transition: -webkit-transform .25s; -o-transition: transform .25s; transition: transform .25s; transition: transform .25s,-webkit-transform .25s; -webkit-transform: translateZ(0); transform: translateZ(0); } /*恢复默认*/ .bilibili-player-video-danmaku-setting-right-reset.bui-button { width: 116px; height: 22px; line-height: 22px; margin-top: 9px; color: #fff; border: 1px solid hsla(0,0%,100%,.2); vertical-align: middle; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .bilibili-player-video-danmaku-setting-right-reset:hover { color: #00a1d6; color: var(--bpx-fn-color,#00a1d6); border-color: #00a1d6; border-color: var(--bpx-fn-color,#00a1d6); } .bilibili-player-video-danmaku-setting-right-reset { min-width: 68px; font-size: 12px; font-size: var(--bpx-ui-font-size,12px); border-radius: 2px; -webkit-box-sizing: border-box; box-sizing: border-box; -webkit-transition: all .2s; -o-transition: all .2s; transition: all .2s; -webkit-transform: translateZ(0); transform: translateZ(0); background: none; padding: 3px; outline: none; color: inherit; text-align: inherit; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .bilibili-player-video-danmaku-setting-right-reset { width: 100%; height: 100%; display: -webkit-box; display: -ms-flexbox; display: flex; vertical-align: middle; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; line-height: normal; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } /*下拉选择框*/ /*表面*/ .bui-select.bui-dark .bui-select-border { border: 1px solid hsla(0,0%,100%,.2); } .bui-select .bui-select-border { border-radius: 2px; width: 100%; -webkit-box-sizing: border-box; box-sizing: border-box; font-size: 12px; font-size: var(--bpx-ui-font-size,12px); border: 1px solid silver; } .bilibili-player-video-danmaku-setting-right-font-content-fontfamily { width: 164px } .bilibili-player-video-danmaku-setting-right-font-content-fontfamilycustom { display: block; width: 166px; -webkit-box-sizing: border-box; box-sizing: border-box; height: 22px; line-height: 24px; margin-top: 10px } /*下拉表面*/ .bui-select-bscroll .bui-select-unfold .bui-select-list-wrap { height: auto!important; } .bui-select-bscroll .bui-select-list-wrap { height: 0; position: relative; overflow: hidden; color:white;/*附加*/ } .bui-select-bscroll .bui-select-list-wrap { height: 0; position: relative; overflow: hidden; display:none; } .bui-select.bui-dark .bui-select-header { height: 20px; line-height: 20px; color:white;/*附加*/ } .bui-select .bui-select-header { position: relative; padding: 0 22px 0 7px; height: 22px; line-height: 22px; } /*.bui-select-wrap:hover .bui-select-list-wrap{ display:block; }*/ .bui-select.bui-dark .bui-select-header, .bui-select.bui-dark .bui-select-item { height: 20px; line-height: 20px; } .bui-select .bui-select-item { padding: 0 22px 0 7px; height: 22px; line-height: 22px; -webkit-transition: background .3s; -o-transition: background .3s; transition: background .3s; -webkit-transform: translateZ(0); transform: translateZ(0); } /*描边类型*/ .bui-radio .bui-radio-button .bui-radio-item { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; text-align: center; /*12.6.4*/ color: white; white-space:nowrap; height:22px; width:70px; } .bui-radio .bui-radio-item { position: relative; display: inline-block; } .bui-radio .bui-radio-button .bui-radio-group {/*12.6.4整体*/ display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; height: 100%; } .bui-radio .bui-radio-input {/*12.6.4选择框本体*/ position: absolute; width: 100%; height: 100%; left: 0; top: 0; opacity: 0; margin: 0; cursor: pointer; } .bui-radio.bui-dark .bui-radio-button .bui-radio-input:checked+.bui-radio-label { background: #00a1d6; background: var(--bpx-fn-color, #00a1d6); } .bui-radio.bui-dark .bui-radio-button .bui-radio-item:hover .bui-radio-label { background-color: hsla(0, 0%, 100%, .4); } .bui-radio .bui-radio-button .bui-radio-input:checked+.bui-radio-label { background: #00a1d6; background: var(--bpx-fn-color, #00a1d6); } .bui-radio .bui-radio-button .bui-radio-item:hover .bui-radio-label { background-color: #757575; } .bui-radio.bui-dark .bui-radio-button .bui-radio-label { background-color: hsla(0, 0%, 100%, .3); } .bui-radio .bui-radio-button .bui-radio-label { background-color: #999; -webkit-transition: all .2s; -o-transition: all .2s; transition: all .2s; border-radius: 2px; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; padding: 0px 0;/*12.6.4 2px 0*/ } .bui-radio .bui-radio-label { font-size: 12px; font-size: var(--bpx-ui-font-size, 12px); width: 100%; height: 100%; pointer-events: none; display: inline-block; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; line-height: normal;/*.bui .bui-area*/ } /*返回*/ .bpx-player-dm-setting-right-more .bpx-common-svg-icon { width: 20px; height: 30px; vertical-align: middle; display: inline-block; cursor: pointer; margin-left: -3px; } /*宽屏*/ .squirtle-block-wrap { font-style: normal; font-size: 12px; line-height: 1; -webkit-box-direction: normal; color: hsla(0, 0%, 100%, .9); font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, Helvetica, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, sans-serif; appearance: none; margin: 0; padding: 0; height: 22px; width: 36px; cursor: pointer; margin-left:auto; z-index:1002; } .squirtle-widescreen-inactive { font-style: normal; font-size: 12px; line-height: 1; -webkit-box-direction: normal; color: hsla(0, 0%, 100%, .9); cursor: pointer; font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, Helvetica, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, sans-serif; appearance: none; margin: 0; padding: 0; display: block; } .squirtle-widescreen-active { font-style: normal; font-size: 12px; line-height: 1; -webkit-box-direction: normal; color: hsla(0, 0%, 100%, .9); cursor: pointer; font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, Helvetica, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, sans-serif; appearance: none; margin: 0; padding: 0; display: none; } .squirtle-svg-icon { font-style: normal; font-size: 12px; line-height: 1; -webkit-box-direction: normal; cursor: pointer; font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, Helvetica, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, sans-serif; appearance: none; margin: 0; padding: 0; width: 100%; height: 22px; fill: #757575; } ` GM_addStyle(bottomcss); //1.11.8 接口 let category_1_html = ""; originalInterfaceList.forEach((item, index) => { if (item.category == "1" && item.special) { category_1_html += `
  • ` + item.name + `` + item.special + `
  • `; } else { category_1_html += `
  • ` + item.name + `
  • `; } }); let bottomdiv = `
    0
    人正在看
    , 0 条弹幕
    按类型屏蔽
    滚动
    顶部
    底部
    彩色
    高级
    去重概率
    0%
    不透明度
    100%
    显示区域
    1/4屏
    半屏
    防挡字幕
    不限
    弹幕速度
    100%
    字体大小
    100%
    浏览XML弹幕
    提取视频地址
    更多弹幕设置
    更多弹幕设置
    弹幕字体
    黑体
    • 黑体
    • 宋体
    • 新宋体
    • 仿宋
    • 微软雅黑
    • 微软雅黑 Light
    • Noto Sans DemiLight
    • Noto Sans Regular
    描边类型
    恢复默认设置
     大会员 
    `; playera.append(bottomdiv); //1.11.5修复移除关键div导致脚本失效 let playerPlaceholder = document.createElement('div'); playerPlaceholder.id = 'player_placeholder'; playera.append(playerPlaceholder); //console.log($(".bui-switch-input").prop("checked"),document.querySelector("#player_module > div.bilibili-player-video-bottom-area > div.bui-switch > input").checked) this.mouseEvent() this.setbili() } this.setbili = function () { if (window.location.host != 'www.bilibili.com') { return } //1.12.1 记忆功能 $(".bilibili-player-block-filter-type").each((liIndex, item) => { let blockdmname = $(item).attr("data-name") switch (blockdmname) { case 'ctlbar_danmuku_scroll_on': if (dmblock_scroll == 'off') { $(item).attr("data-name", 'ctlbar_danmuku_scroll_off') $(item).addClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-scroll-disabled') this.setdamuicon('ctlbar_danmuku_scroll_off', scroll_off) for (let i = 0; i < CHANNEL_COUNT; i++) { try { domtopdownPool[i].innerText = '' } catch {} } } break; case 'ctlbar_danmuku_top_on': if (dmblock_top == 'off') { $(item).attr("data-name", 'ctlbar_danmuku_top_off') $(item).addClass("bpx-player-active") // $(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-top-disabled') this.setdamuicon('ctlbar_danmuku_top_off', top_off) } break; case 'ctlbar_danmuku_bottom_on': if (dmblock_bottom == 'off') { $(item).attr("data-name", 'ctlbar_danmuku_bottom_off') $(item).addClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-bottom-disabled') this.setdamuicon('ctlbar_danmuku_bottom_off', bottom_off) } break; case 'ctlbar_danmuku_color_on': if (dmblock_color == 'off') { $(item).attr("data-name", 'ctlbar_danmuku_color_off') $(item).addClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-color-disabled') this.setdamuicon('ctlbar_danmuku_color_off', color_off) } break; case 'ctlbar_danmuku_special_on': if (dmblock_special == 'off') { $(item).attr("data-name", 'ctlbar_danmuku_special_off') $(item).addClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-advanced-disabled') this.setdamuicon('ctlbar_danmuku_special_off', special_off) } break; default: break; } }) //console.log(buiSwitch) if (buiSwitch == 'false') { $(".bui-switch-input").attr("checked", false); } //1.12.1接口记忆修复 let index = commonFunctionObject.GMgetValue("index"); $(".bilibili-player-video-btn-quality-mod").find('.bui-select-item').removeClass("bui-select-item-active"); $(".bilibili-player-video-btn-quality-mod").find('.bui-select-item').each(function (lindex, item) { if ($(item).attr("data-index") == index) { $(item).addClass("bui-select-item-active"); } }) //1.12.2去重 透明 设置 $(".bilibili-player-setting-flag").each((lindex, item) => { let sliderwidth = $(item).width() //console.log('repeatPrepeatPrepeatP',sliderwidth) if (sliderwidth == 0) { sliderwidth = 192 } //console.log('repeatPrepeatPrepeatP2',sliderwidth) $(item).find(".bui-bar-normal").css('transform', `scaleX(${parseInt(repeatP) / 100})`) $(item).find(".bui-thumb").css('transform', `translateX(${parseInt(repeatP) / 100 * sliderwidth}px)`) $(item).find(".bui-thumb-tooltip").text(`${parseInt(repeatP)}%`) }) $(".bilibili-player-setting-opacity").each((lindex, item) => { let sliderwidth = $(item).width() //console.log('opacityopacityopacity',sliderwidth) if (sliderwidth == 0) { sliderwidth = 192 } $(item).find(".bui-bar-normal").css('transform', `scaleX(${parseFloat(opacityNum)})`) $(item).find(".bui-thumb").css('transform', `translateX(${parseFloat(opacityNum) * sliderwidth}px)`) $(item).find(".bui-thumb-tooltip").text(`${parseInt(parseFloat(opacityNum) * 100)}%`) //setdomOpacity(); }) //1.12.3 字体大小 速度 区域 $(".bilibili-player-setting-speedplus").each((lindex, item) => { let sliderwidth = $(item).width() //console.log('repeatPrepeatPrepeatP',sliderwidth) if (sliderwidth == 0) { sliderwidth = 192 } //console.log('repeatPrepeatPrepeatP2',sliderwidth) $(item).find(".bui-bar-normal").css('transform', `scaleX(${dmspeed - 0.5})`) $(item).find(".bui-thumb").css('transform', `translateX(${(dmspeed - 0.5) * sliderwidth}px)`) $(item).find(".bui-thumb-tooltip").text(`${parseInt(dmspeed * 100)}%`) //setdomFontsize(); }) //1.12.4修复显示问题 $(".bilibili-player-setting-fontsize").each((lindex, item) => { let sliderwidth = $(item).width() //console.log('opacityopacityopacity',sliderwidth) if (sliderwidth == 0) { sliderwidth = 192 } $(item).find(".bui-bar-normal").css('transform', `scaleX(${parseFloat(fontSize / 25) - 0.5})`) $(item).find(".bui-thumb").css('transform', `translateX(${(parseFloat(fontSize / 25) - 0.5) * sliderwidth}px)`) $(item).find(".bui-thumb-tooltip").text(`${parseInt((fontSize / 25 - 0.5) * 100 - 50)}%`) }) $(".bilibili-player-setting-area").each((lindex, item) => { let sliderwidth = $(item).width() let sliderpct = 0 //console.log('opacityopacityopacity',sliderwidth) if (sliderwidth == 0) { sliderwidth = 192 } if (dmArea == 1) { sliderpct = 1 } else if (dmArea == 0.85) { sliderpct = 0.65 } else if (dmArea == 0.5) { sliderpct = 0.31 } else { sliderpct = 0 } $(item).find(".bui-thumb").css('transform', `translateX(${sliderpct * sliderwidth}px)`) }) //1.12.6.2描边记忆 $(".bui-radio-input").each((lindex, item) => { if (dmTextshadow != null) { if ($(item).attr('value') == 0 && dmTextshadow == 'rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px') { $(item).attr("checked", "checked"); } else if ($(item).attr('value') == 1 && dmTextshadow == 'rgb(0, 0, 0) 0px 0px 1px, rgb(0, 0, 0) 0px 0px 1px, rgb(0, 0, 0) 0px 0px 1px') { $(item).attr("checked", "checked"); } else if ($(item).attr('value') == 2 && dmTextshadow == 'rgb(0, 0, 0) 1px 1px 2px, rgb(0, 0, 0) 0px 0px 1px') { $(item).attr("checked", "checked"); } //setdomTextshadow() } else { if ($(item).attr('value') == 0) { $(item).attr("checked", "checked"); } } }) //1.12.6.3字体类型 $(".bui-select-bscroll").find('.bui-select-item').each((lindex, item) => { let textTypeval = $(item).attr('data-value') //console.log('textTypeval', textTypeval, dmTextType, dmTextType.indexOf(textTypeval)) if (dmTextType != null && dmTextType.indexOf(textTypeval) != -1) { $(".bui-select-bscroll").find('.bui-select-result').text($(item).text()) //setdomTextType() } }) //1.12.6.5 粗体记忆 if (dmfontWeight > 600) { $('.bilibili-player-video-danmaku-setting-right-font-bold-box').children('.bui-checkbox-input').attr("checked", "checked"); } } this.getset = function () { //1.12.1 记忆功能 dmblock_scroll = commonFunctionObject.GMgetValue("scroll"); if (dmblock_scroll == null) { dmblock_scroll = 'on' commonFunctionObject.GMsetValue("scroll", dmblock_scroll); } dmblock_top = commonFunctionObject.GMgetValue("top"); if (dmblock_top == null) { dmblock_top = 'on' commonFunctionObject.GMsetValue("top", dmblock_top); } dmblock_bottom = commonFunctionObject.GMgetValue("bottom"); if (dmblock_bottom == null) { dmblock_bottom = 'on' commonFunctionObject.GMsetValue("bottom", dmblock_bottom); } dmblock_color = commonFunctionObject.GMgetValue("color"); if (dmblock_color == null) { dmblock_color = 'on' commonFunctionObject.GMsetValue("color", dmblock_color); } dmblock_special = commonFunctionObject.GMgetValue("special"); if (dmblock_special == null) { dmblock_special = 'on' commonFunctionObject.GMsetValue("special", dmblock_special); } buiSwitch = commonFunctionObject.GMgetValue("buiSwitch"); if (buiSwitch == null) { buiSwitch = 'true' commonFunctionObject.GMsetValue("buiSwitch", buiSwitch); } repeatP = commonFunctionObject.GMgetValue('repeatP'); if (repeatP == null) { repeatP = '0' commonFunctionObject.GMsetValue("repeatP", repeatP); } opacityNum = commonFunctionObject.GMgetValue('opacityNum'); if (opacityNum == null) { opacityNum = '1' commonFunctionObject.GMsetValue("opacityNum", opacityNum); } fontSize = commonFunctionObject.GMgetValue('fontSize'); if (fontSize == null) { fontSize = '25' commonFunctionObject.GMsetValue("fontSize", fontSize); } dmspeed = commonFunctionObject.GMgetValue('dmspeed'); if (dmspeed == null) { dmspeed = 1 commonFunctionObject.GMsetValue("dmspeed", dmspeed); } dmArea = commonFunctionObject.GMgetValue('dmArea'); if (dmArea == null) { dmArea = 1 commonFunctionObject.GMsetValue("dmArea", dmArea); } //1.12.6.2 描边类型记忆 dmTextshadow = commonFunctionObject.GMgetValue('dmTextshadow'); if (dmTextshadow != null && window.location.host != 'www.bilibili.com') { setdomTextshadow() } //1.12.6.3 字体记忆 dmTextType = commonFunctionObject.GMgetValue('dmTextType'); if (dmTextshadow != null && window.location.host != 'www.bilibili.com') { setdomTextType() } //1.12.6.5 粗体记忆 dmfontWeight = commonFunctionObject.GMgetValue('dmfontWeight'); if (dmfontWeight == null) { dmfontWeight = '700' commonFunctionObject.GMsetValue("dmfontWeight", dmfontWeight); } } this.mouseEvent = function () { //1.11.5 弹幕开关 let buiSwitchbtn = $(".bui-switch-input"); buiSwitchbtn.click(function () { if ($(".bui-switch-input").prop("checked")) { postdownmessage({ str: 'checktrue' }) commonFunctionObject.GMsetValue('buiSwitch', 'true'); } else { postdownmessage({ str: 'checkfalse' }) commonFunctionObject.GMsetValue('buiSwitch', 'false'); refreshDomscreen(); } }); //1.11.8 滑块 $(".bui-slider").each(function () { $(this).mousedown( function (e) { let el = $(this) let sliderclass = el.attr('class') if (sliderclass.indexOf('bilibili-player-setting-flag') != -1) { repeatSlider = true; } else if (sliderclass.indexOf('bilibili-player-setting-opacity') != -1) { opacitySlider = true; } else if (sliderclass.indexOf('bilibili-player-setting-fontsize') != -1) { fontSizeSlider = true; } else if (sliderclass.indexOf('bilibili-player-setting-speedplus') != -1) { dmspeedSlider = true; } else if (sliderclass.indexOf('bilibili-player-setting-area') != -1) { dmAreaSlider = true; } } ) }) //1.12.4 滑块优化2 $('.bilibili-player-video-danmaku-setting-wrap').mousedown( function (e) { $(this).on('mousemove.drag', function (e) { let el let os let mouseX let itemlong if (repeatSlider == true) { el = $('.bilibili-player-setting-flag') } else if (opacitySlider == true) { el = $('.bilibili-player-setting-opacity') } else if (fontSizeSlider == true) { el = $('.bilibili-player-setting-fontsize') } else if (dmspeedSlider == true) { el = $('.bilibili-player-setting-speedplus') } else if (dmAreaSlider == true) { el = $('.bilibili-player-setting-area') } else { return } os = el.offset(); mouseX = e.pageX - os.left; itemlong = el.width() - 6; if (mouseX <= itemlong && mouseX >= -0.5) { let sliderpct = Math.ceil(mouseX / itemlong * 100) let sliderclass = el.attr('class') if (sliderclass.indexOf('bilibili-player-setting-area') != -1) { if (sliderpct > 83) { el.find(".bui-thumb").css('transform', `translateX(${itemlong}px)`) dmArea = 1 } else if (sliderpct > 49) { el.find(".bui-thumb").css('transform', `translateX(${itemlong * 0.65}px)` ) dmArea = 0.85 } else if (sliderpct > 16) { el.find(".bui-thumb").css('transform', `translateX(${itemlong * 0.31}px)` ) dmArea = 0.5 } else { el.find(".bui-thumb").css('transform', `translateX(${0}px)`) dmArea = 0.25 } } else { el.find(".bui-thumb").css('transform', `translateX(${mouseX}px)`) } el.find(".bui-bar-normal").css('transform', `scaleX(${sliderpct / 100})`) el.find(".bui-thumb-tooltip").css('opacity', `1`) if (sliderclass.indexOf('bilibili-player-setting-fontsize') != -1 || sliderclass.indexOf('bilibili-player-setting-speedplus') != -1) { el.find(".bui-thumb-tooltip").text(`${50 + sliderpct}%`) } else { el.find(".bui-thumb-tooltip").text(`${sliderpct}%`) } } }) }) //1.12.3滑块优化1 $('.bilibili-player-video-danmaku-setting-wrap').mouseup(function (e) { let slideron = true //1.12.2 去重和透明 if (repeatSlider == true) { repeatP = parseInt($(".bilibili-player-setting-flag").find('.bui-thumb-tooltip').text().replace("%", "")).toString() commonFunctionObject.GMsetValue('repeatP', repeatP); postdownmessage({ str: 'repeatP', p: repeatP }) } else if (opacitySlider == true) { opacityNum = (parseInt($(".bilibili-player-setting-opacity").find('.bui-thumb-tooltip').text().replace("%", "")) / 100).toString() commonFunctionObject.GMsetValue('opacityNum', opacityNum); postdownmessage({ str: 'opacityNum', p: opacityNum }) } else if (fontSizeSlider == true) { fontSize = (Math.round($(".bilibili-player-setting-fontsize").find('.bui-thumb-tooltip').text().replace("%", "") / 100 * 25)).toString() commonFunctionObject.GMsetValue('fontSize', fontSize); postdownmessage({ str: 'fontSize', p: fontSize }) } else if (dmspeedSlider == true) { dmspeed = $(".bilibili-player-setting-speedplus").find('.bui-thumb-tooltip').text().replace("%", "") / 100 commonFunctionObject.GMsetValue('dmspeed', dmspeed); postdownmessage({ str: 'dmspeed', p: dmspeed }) } else if (dmAreaSlider == true) { commonFunctionObject.GMsetValue('dmArea', dmArea); postdownmessage({ str: 'dmArea', p: dmArea }) } else { slideron = false } if (slideron == true) { repeatSlider = false; opacitySlider = false; fontSizeSlider = false; dmspeedSlider = false; dmAreaSlider == false; $('.bilibili-player-video-danmaku-setting-wrap').off('mousemove.drag'); $(".bui-slider").find(".bui-thumb-tooltip").css('opacity', `0`) } }) //1.11.8 接口按钮 1.12.6 缩小范围 $(".bilibili-player-video-quality-menu").find(".bui-select-item").each((liIndex, item) => { item.addEventListener("click", () => { $(".bui-select-item").removeClass("bui-select-item-active"); $(item).addClass("bui-select-item-active") let index2 = parseInt($(item).attr("data-index")); commonFunctionObject.GMsetValue('index', index2); this.videoreplace(); }); }); //1.12.1 设置按钮 //浏览XML弹幕 $('.bilibili-player-video-danmaku-setting-left-block-add').click(function () { if (xmlhtml != null) { window.open(xmlhtml) } else { let bv = $("a.av-link[target='_blank']")[0] if (bv) { $.getJSON("https://api.bilibili.com/x/player/pagelist?bvid=" + bv.innerText, function (result) { xmlhtml = `https://api.bilibili.com/x/v1/dm/list.so?oid=${result.data[0].cid}` }) } window.open(xmlhtml) } }) $('.bilibili-player-video-danmaku-setting-left-block-sync').click(function () { window.open("https://xbeibeix.com/api/bilibili/?monkey=" + window.location.href) }) //1.12.6 更多设置显示 $(".bilibili-player-video-danmaku-setting-left-more").click(function () { $(".bui-panel-item").each(function () { if ($(this).attr('class').indexOf('bui-panel-item-active') != -1) { $(this).removeClass('bui-panel-item-active') } else { $(this).addClass('bui-panel-item-active') } }); $(".bui-panel-move").css('transform', 'translateX(-298px)') $(".bui-panel-wrap").css('width', '266px') $(".bui-panel-wrap").css('height', '250px') }) $(".bilibili-player-video-danmaku-setting-right-more").click(function () { $(".bui-panel-item").each(function () { if ($(this).attr('class').indexOf('bui-panel-item-active') != -1) { $(this).removeClass('bui-panel-item-active') } else { $(this).addClass('bui-panel-item-active') } }); $(".bui-panel-move").css('transform', 'translateX(0px)') $(".bui-panel-wrap").css('width', '298px') $(".bui-panel-wrap").css('height', '366px') }) //1.12.6.1字体描边按键 $(".bui-radio-item").click(function () { let radioval = $(this).children('.bui-radio-input').attr('value') if (radioval == 0) { dmTextshadow = 'rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px' } else if (radioval == 1) { dmTextshadow = 'rgb(0, 0, 0) 0px 0px 1px, rgb(0, 0, 0) 0px 0px 1px, rgb(0, 0, 0) 0px 0px 1px' } else if (radioval == 2) { dmTextshadow = 'rgb(0, 0, 0) 1px 1px 2px, rgb(0, 0, 0) 0px 0px 1px' } commonFunctionObject.GMsetValue('dmTextshadow', dmTextshadow); postdownmessage({ str: 'dmTextshadow', p: dmTextshadow }) }) //1.12.6.3弹幕字体 $(".bui-select-bscroll").find('.bui-select-item').click(function () { let dmTextType = $(this).attr('data-value') + ', Arial, Helvetica, sans-serif' let bscrolltext = $(this).text() $(".bui-select-bscroll").find('.bui-select-result').text(bscrolltext) $(".bui-select-bscroll").find('.bui-select-list-wrap')[0].style.display = 'none' commonFunctionObject.GMsetValue('dmTextType', dmTextType); postdownmessage({ str: 'dmTextType', p: dmTextType }) }) //12.6.4 12.6.5修复 $('.bilibili-player-video-btn-quality').hover(function () { $(this).find('.bui-select-list-wrap').css("display", "block"); }, function () { $(this).find('.bui-select-list-wrap').css("display", "none"); }) //12.6.5粗体 $('.bilibili-player-video-danmaku-setting-right-font-bold-box').children('.bui-checkbox-input').click(function () { if ($(this).prop("checked")) { commonFunctionObject.GMsetValue('dmfontWeight', 700); dmfontWeight = 700 postdownmessage({ str: 'dmfontWeight', p: dmfontWeight }) } else { commonFunctionObject.GMsetValue('dmfontWeight', 400); dmfontWeight = 400 postdownmessage({ str: 'dmfontWeight', p: dmfontWeight }) } }) //12.6.4恢复默认 $(".bilibili-player-video-danmaku-setting-right-reset").click(function () { //alert() //屏蔽弹幕类型 commonFunctionObject.GMsetValue('scroll', 'on'); commonFunctionObject.GMsetValue('top', 'on'); commonFunctionObject.GMsetValue('bottom', 'on'); commonFunctionObject.GMsetValue('color', 'on'); commonFunctionObject.GMsetValue('special', 'on'); dmblock_scroll = 'on'; dmblock_top = 'on'; dmblock_bottom = 'on'; dmblock_color = 'on'; dmblock_special = 'on'; $('.bilibili-player-block-filter-type').each((liIndex, item) => { let blockdmname = $(item).attr("data-name") if (blockdmname == 'ctlbar_danmuku_special_on') { $(item).find('.bilibili-player-block-filter-image').empty() $(item).find('.bilibili-player-block-filter-image').append(special_on) } if (blockdmname == 'ctlbar_danmuku_color_on') { $(item).find('.bilibili-player-block-filter-image').empty() $(item).find('.bilibili-player-block-filter-image').append(color_on) } if (blockdmname == 'ctlbar_danmuku_bottom_on') { $(item).find('.bilibili-player-block-filter-image').empty() $(item).find('.bilibili-player-block-filter-image').append(bottom_on) } if (blockdmname == 'ctlbar_danmuku_top_on') { $(item).find('.bilibili-player-block-filter-image').empty() $(item).find('.bilibili-player-block-filter-image').append(top_on) } if (blockdmname == 'ctlbar_danmuku_scroll_on') { $(item).find('.bilibili-player-block-filter-image').empty() $(item).find('.bilibili-player-block-filter-image').append(scroll_on) } }) postdownmessage({ str: 'scrollon' }) postdownmessage({ str: 'topon' }) postdownmessage({ str: 'bottomon' }) postdownmessage({ str: 'coloron' }) //字体 dmTextType = `SimHei, 'Microsoft JhengHei'` commonFunctionObject.GMsetValue('dmTextType', dmTextType); postdownmessage({ str: 'dmTextType', p: dmTextType }) $(".bui-select-bscroll").find('.bui-select-item').each((lindex, item) => { let textTypeval = $(item).attr('data-value') if (dmTextType != null && dmTextType.indexOf(textTypeval) != -1) { $(".bui-select-bscroll").find('.bui-select-result').text($(item).text()) } }) //描边 dmTextshadow = 'rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px' commonFunctionObject.GMsetValue('dmTextshadow', dmTextshadow); postdownmessage({ str: 'dmTextshadow', p: dmTextshadow }) $(".bui-radio-input").each((lindex, item) => { if ($(item).attr('value') == 0) { $(item).attr("checked", "checked"); } }) repeatP = '0' commonFunctionObject.GMsetValue('repeatP', repeatP); postdownmessage({ str: 'repeatP', p: repeatP }) $(".bilibili-player-setting-flag").find(".bui-bar-normal").css('transform', `scaleX(${0})`) $(".bilibili-player-setting-flag").find(".bui-thumb").css('transform', `translateX(${0}px)`) $(".bilibili-player-setting-flag").find(".bui-thumb-tooltip").text(`${0}%`) opacityNum = '1' commonFunctionObject.GMsetValue('opacityNum', opacityNum); postdownmessage({ str: 'opacityNum', p: opacityNum }) $(".bilibili-player-setting-opacity").find(".bui-bar-normal").css('transform', `scaleX(${1})`) $(".bilibili-player-setting-opacity").find(".bui-thumb").css('transform', `translateX(${192.5}px)`) $(".bilibili-player-setting-opacity").find(".bui-thumb-tooltip").text(`${100}%`) fontSize = '25' commonFunctionObject.GMsetValue('fontSize', fontSize); postdownmessage({ str: 'fontSize', p: fontSize }) $(".bilibili-player-setting-fontsize").find(".bui-bar-normal").css('transform', `scaleX(${0.5})`) $(".bilibili-player-setting-fontsize").find(".bui-thumb").css('transform', `translateX(${96.5}px)`) $(".bilibili-player-setting-fontsize").find(".bui-thumb-tooltip").text(`${100}%`) dmspeed = 1 commonFunctionObject.GMsetValue('dmspeed', dmspeed); postdownmessage({ str: 'dmspeed', p: dmspeed }) $(".bilibili-player-setting-speedplus").find(".bui-bar-normal").css('transform', `scaleX(${0.5})`) $(".bilibili-player-setting-speedplus").find(".bui-thumb").css('transform', `translateX(${96.5}px)`) $(".bilibili-player-setting-speedplus").find(".bui-thumb-tooltip").text(`${100}%`) dmArea = 1 commonFunctionObject.GMsetValue('dmArea', dmArea); postdownmessage({ str: 'dmArea', p: dmArea }) $(".bilibili-player-setting-area").find(".bui-thumb").css('transform', `translateX(${192.5}px)`) }) //1.13.3 新逻辑 13.3.1补充 $('.bilibili-player-video-btn-quality').hover(function () { let bottomAreaTop = $('.bilibili-player-video-bottom-area').offset().top let selectListBottom = $('.bui-select.bui-select-quality-menu .bui-select-list').offset().top + originalInterfaceList.length * 36 //console.log('接口框位置', bottomAreaTop, selectListBottom) if (Math.abs(bottomAreaTop - selectListBottom) > 2) { if (bottomAreaTop > selectListBottom) { $('.bui-select-quality-menu .bui-select-list').css('bottom', `${35-selectListBottom+bottomAreaTop}px`) } else { $('.bui-select-quality-menu .bui-select-list').css('bottom', `${35+selectListBottom-bottomAreaTop}px`) } } }, function () {}) //1.13.3 宽屏 $('.squirtle-widescreen-wrap').click(function () { if ($('.squirtle-video-item').children('div').eq(0).attr("class") == 'squirtle-widescreen-inactive') { $('.squirtle-video-item').children('div').eq(0).attr("class", 'squirtle-widescreen-active') $('.squirtle-video-item').children('div').eq(1).attr("class", 'squirtle-widescreen-inactive') usualWidth = $('#player_module').width() $('.plp-r').css('paddingTop', ($('#player_module').height() + 20).toString() + 'px') let widescreenW = window.innerWidth - $('#player_module').offset().left * 2 $('#player_module').css('width', widescreenW + 'px') //console.log($('#player_module').width(), $('#player_module').height(), window.innerWidth, widescreenW) } else { $('.squirtle-video-item').children('div').eq(1).attr("class", 'squirtle-widescreen-active') $('.squirtle-video-item').children('div').eq(0).attr("class", 'squirtle-widescreen-inactive') $('.plp-r').css('paddingTop', '0px') $('#player_module').css('width', usualWidth + 'px') } //refreshDom() postdownmessage({ str: 'playerHchange', }) }) //屏蔽弹幕类型 $(".bilibili-player-block-filter-type").each((liIndex, item) => { item.addEventListener("click", () => { let blockdmname = $(item).attr("data-name") let blockdmtype = $(item).attr("ftype") switch (blockdmname) { case 'ctlbar_danmuku_scroll_on': $(item).attr("data-name", 'ctlbar_danmuku_scroll_off') $(item).addClass("bpx-player-active") commonFunctionObject.GMsetValue(blockdmtype, 'off'); postdownmessage({ str: blockdmtype + 'off' }) //1.12.2 修复分类屏蔽图标 this.setdamuicon('ctlbar_danmuku_scroll_off', scroll_off) break; case 'ctlbar_danmuku_scroll_off': $(item).attr("data-name", 'ctlbar_danmuku_scroll_on') $(item).removeClass("bpx-player-active") commonFunctionObject.GMsetValue(blockdmtype, 'on'); postdownmessage({ str: blockdmtype + 'on' }) //1.12.2 修复分类屏蔽图标 this.setdamuicon('ctlbar_danmuku_scroll_on', scroll_on) break; case 'ctlbar_danmuku_top_on': $(item).attr("data-name", 'ctlbar_danmuku_top_off') $(item).addClass("bpx-player-active") commonFunctionObject.GMsetValue(blockdmtype, 'off'); this.setdamuicon('ctlbar_danmuku_top_off', top_off) postdownmessage({ str: blockdmtype + 'off' }) break; case 'ctlbar_danmuku_top_off': $(item).attr("data-name", 'ctlbar_danmuku_top_on') $(item).removeClass("bpx-player-active") this.setdamuicon('ctlbar_danmuku_top_on', top_on) commonFunctionObject.GMsetValue(blockdmtype, 'on'); postdownmessage({ str: blockdmtype + 'on' }) break; case 'ctlbar_danmuku_bottom_on': $(item).attr("data-name", 'ctlbar_danmuku_bottom_off') $(item).addClass("bpx-player-active") this.setdamuicon('ctlbar_danmuku_bottom_off', bottom_off) commonFunctionObject.GMsetValue(blockdmtype, 'off'); postdownmessage({ str: blockdmtype + 'off' }) break; case 'ctlbar_danmuku_bottom_off': $(item).attr("data-name", 'ctlbar_danmuku_bottom_on') $(item).removeClass("bpx-player-active") this.setdamuicon('ctlbar_danmuku_bottom_on', bottom_on) commonFunctionObject.GMsetValue(blockdmtype, 'on'); postdownmessage({ str: blockdmtype + 'on' }) break; case 'ctlbar_danmuku_color_on': $(item).attr("data-name", 'ctlbar_danmuku_color_off') $(item).addClass("bpx-player-active") commonFunctionObject.GMsetValue(blockdmtype, 'off'); this.setdamuicon('ctlbar_danmuku_color_off', color_off) postdownmessage({ str: blockdmtype + 'off' }) break; case 'ctlbar_danmuku_color_off': $(item).attr("data-name", 'ctlbar_danmuku_color_on') $(item).removeClass("bpx-player-active") this.setdamuicon('ctlbar_danmuku_color_on', color_on) commonFunctionObject.GMsetValue(blockdmtype, 'on'); postdownmessage({ str: blockdmtype + 'on' }) break; case 'ctlbar_danmuku_special_on': $(item).attr("data-name", 'ctlbar_danmuku_special_off') $(item).addClass("bpx-player-active") this.setdamuicon('ctlbar_danmuku_special_off', special_off) commonFunctionObject.GMsetValue(blockdmtype, 'off'); postdownmessage({ str: blockdmtype + 'off' }) break; case 'ctlbar_danmuku_special_off': $(item).attr("data-name", 'ctlbar_danmuku_special_on') $(item).removeClass("bpx-player-active") this.setdamuicon('ctlbar_danmuku_special_on', special_on) commonFunctionObject.GMsetValue(blockdmtype, 'on'); postdownmessage({ str: blockdmtype + 'on' }) break; default: break; } }) }) } this.start = function () { this.operatOther(); this.getset(); } this.setdamuicon = function (blockname, iconspan) { $('.bilibili-player-block-filter-type').each((liIndex, item) => { let blockdmname = $(item).attr("data-name") if (blockdmname == blockname) { $(item).find('.bilibili-player-block-filter-image').empty() $(item).find('.bilibili-player-block-filter-image').append(iconspan) } }) } } //1.12.2调节透明 function setdomOpacity() { for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { $(domPool[i][j]).css('opacity', parseFloat(opacityNum)); } } for (let i2 = 0; i2 < CHANNEL_COUNT; i2++) { $(domtopdownPool[i2]).css('opacity', parseFloat(opacityNum)); } } //1.12.3调节字体大小 function setdomFontsize() { for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { $(domPool[i][j]).css('fontSize', fontSize); $(domPool[i][j]).css('top', fontSize * i + 'px'); } } for (let i2 = 0; i2 < CHANNEL_COUNT; i2++) { $(domtopdownPool[i2]).css('fontSize', fontSize); $(domtopdownPool[i2]).css('top', fontSize * i2 + 'px'); } } //1.12.6.1 描边类型 function setdomTextshadow() { for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { domPool[i][j].style.textShadow = dmTextshadow } } for (let i2 = 0; i2 < CHANNEL_COUNT; i2++) { domtopdownPool[i2].style.textShadow = dmTextshadow } } //1.12.6.3 字体类型 function setdomTextType() { for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { domPool[i][j].style.fontFamily = dmTextType } } for (let i2 = 0; i2 < CHANNEL_COUNT; i2++) { domtopdownPool[i2].style.fontFamily = dmTextType } } //1.12.6.5粗体 function setdomfontWeight() { for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { domPool[i][j].style.fontWeight = dmfontWeight } } for (let i2 = 0; i2 < CHANNEL_COUNT; i2++) { domtopdownPool[i2].style.fontWeight = dmfontWeight } } function sleep(time) { return new Promise((resolve) => setTimeout(resolve, time)); } (new superVideoHelper()).start(); })()