Greasy Fork

来自缓存

Greasy Fork is available in English.

解锁b站vip视频+弹幕移植

功能很少有缺陷,先看粗体字再决定是否要安装。解除B站大会员观影限制,理论支持番剧和放映厅,不支持的视频请反馈留地址让我修复,或自行在代码搜索‘大会员’并添加识别div与语句。

当前为 2021-07-09 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==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.11.8.1
// @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://api.yueliangjx.com/*
// @match        https://showxi.xyz/*
// @match        https://okjx.cc/*
// @match        https://www.cuan.la/*
// @run-at       document-end
// @grant        GM_openInTab
// @grant        GM.openInTab
// @grant        GM_getValue
// @grant        GM.getValue
// @grant        GM_setValue
// @grant        GM.setValue
// @grant        GM_addStyle
// @namespace    http://greasyfork.icu/users/789132
// ==/UserScript==
(function () {
  /*1.11.6 mod区域*/
  let originalInterfaceList = [{
      "name": "Mao播放器",
      "category": "1",
      "url": " https://www.cuan.la/m3u8.php?url="
    }, {
      "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://api.yueliangjx.com/?url="
    },
    {
      "name": "showxi",
      "category": "1",
      "url": "https://showxi.xyz/mov/s/?sv=3&url=",
      "special": "多线"
    },
    {
      "name": "OK",
      "category": "1",
      "url": "https://okjx.cc/?url=",
      "special": "多线"
    },
  ];

  let repeatp = 0 //去重概率[0-100]
  /*mod区域结束*/

  var player
  var playerRect
  var minpool = [];
  var domPool = [];
  var domtopdownPool = [];
  var listobj
  //1.11.6修复弹幕重复问题
  let minpoolout = [];
  let lastvideotime = 0;
  //1.11.7全屏问题
  //let lastplaywidth = 0;

  var distance = 25
  var fontSize = 25;
  var buiSwitch = true;
  //console.log(1, window.location.href)

  function xmlToJson(xml) {

    // Create the return object
    var obj = {};

    if (xml.nodeType == 1) { // element
      // do attributes
      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) { // text
      obj = xml.nodeValue;
    }

    // do children
    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 {}
        }
      }
    }
  }

  function getBV() {
    let bv = $("a.av-link[target='_blank']")[0]
    if (bv) {
      //console.log(bv.innerText);
      $.getJSON("https://api.bilibili.com/x/player/pagelist?bvid=" + bv.innerText,
        function (result) {

          var xmlhtml = `https://api.bilibili.com/x/v1/dm/list.so?oid=${result.data[0].cid}`
          //ajax解析xml文件
          console.log(xmlhtml);
          $.ajax({
            url: xmlhtml,
            dataType: "xml",
            success: function (xml) {
              //console.log('xmllist', xmlToJson(xml));
              let listjson = xmlToJson(xml)
              //console.log($('.bilibili-player-video-info-danmaku-number'), listjson.i.d.length)
              $('.bilibili-player-video-info-danmaku-number').text(listjson.i.d.length)
              //console.log(window.frames.length, listjson.i.d.length);
              postdownmessage({
                obj: listjson,
                str: 'xmllist'
              })
            }

          })
        })

    } else {
      setTimeout(function () {
          getBV()
        },
        500)
    }
  }

  function receiveInfoFromAnotherDomain() {
    //首先让window添加一个事件监听函数,表明它可以监听窗口对象的message事件 
    //它受到事件时,会先判断是否来自指定的Domain(不是所有Domain丢过来的事件它都处理的) 
    window.addEventListener("message",
      function (ev) {
        switch (window.location.host) {
          case 'www.bilibili.com':
            console.log(ev.origin, ' message to', window.location.href, ev.data);
            if (ev.origin != 'https://www.bilibili.com' && ev.origin != 'https://message.bilibili.com') {
              //console.log(ev.origin, ' message to', window.location.href, ev.data);
              if (ev.data.str == 'hasplayer') {
                getBV()
              }
            }
            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;
            }

        }
      })
    window.top.postMessage({
        fromweb: window.location.href,
        obj: 'iframe监听初始化',
        str: '来自iframe:',
      },
      '*');
  }

  function detecH5Player(findplayertime) {

    player = document.querySelector('video');
    if (player) {
      //console.log(window.location.href+'发现h5')
      receiveInfoFromAnotherDomain();
      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.style.left = `${domLeft}px`
            $(element).css('transition', `transform 0s linear`);

          })
        });
      //1.11.7
      document.addEventListener("fullscreenchange", function (e) {
        refreshDom() //player.clientWidth-lastplaywidth
      })
      //lastplaywidth = player.clientWidth
      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)
            let newT = newS / oldS * oldT
            //console.log(element.clientWidth+','+player.clientWidth+','+oldS+','+newS+','+oldT+','+newT)
            $(element).css('transition', `transform ${newT}s linear`);
            $(element).addClass('left');

            element.style.willChange = 'transform'
            element.style.transform = `translateX(${-element.clientWidth - newS}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
              }
            }
            refreshDomscreen()
          } else if (lastvideotime + 2 < player.currentTime) {
            refreshDomscreen()
          }
          lastvideotime = player.currentTime
          if (minpool.length == 0 && listobj) {
            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
            //window.top.postMessage({obj:'listobj.i.d.length:'+listobj.i.d.length,str:'来自iframe:',from:window.location.href},'*');
            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']
              };
              if (repeatp == 100 || repeatp > Math.floor(Math.random() * 100)) {
                let len2 = minpool[parseInt(arrp[0] / 60)].length
                let needpush = true
                for (var i = 0; i < len2; i++) {
                  if (minpool[parseInt(arrp[0] / 60)][i].text == arrpJson.text) {
                    needpush = false;
                    break;
                  }
                }
                if (needpush == true) {
                  minpool[parseInt(arrp[0] / 60)].push(arrpJson);
                }
              } else {
                minpool[parseInt(arrp[0] / 60)].push(arrpJson);
              }
              /*window.top.postMessage({
                obj: 'minpool push:' + minpool[parseInt(arrp[0] / 60)][minpool[parseInt(arrp[0] / 60)].length - 1],
                str: '来自iframe:',
                from: window.location.href
              }, '*');*/
            }
          }
          //window.top.postMessage({obj:'currentTime:'+player.currentTime+'  '+minpool.length+'  '+domPool.length,str:'来自iframe:',from:window.location.href},'*');  
          $('.topdown').each(function (index, element) {
            if (element.innerText != '') {
              let nowtime = (new Date()).getTime();
              let lasttime = parseInt(nowtime) - parseInt($(element).prop("name"))
              //console.log('lasttime:'+lasttime+' '+typeof lasttime);
              if (lasttime >= 4500) {
                //console.log('lasttime2:'+lasttime+' '+typeof lasttime);
                element.innerText = ''
                element.name = ''
              }
            }
          });
          //window.top.postMessage({obj:buiSwitch.prop("checked"),str:'来自iframe:',from:window.location.href},'*'); 
          if (minpool.length != 0 && domPool.length != 0 && buiSwitch == true) {
            let channel;
            let nowlen = parseInt(player.currentTime / 60);
            //console.log('currentTime:'+player.currentTime); 
            //window.top.postMessage({obj:'currentTime:'+player.currentTime+'  '+minpool[nowlen].length,str:'来自iframe:',from:window.location.href},'*');  
            if (!$(player).paused) {
              for (var j = minpool[nowlen].length - 1; j > -1; j--) {
                //console.log('pool:'+minpool[nowlen][j].pool) 
                //window.top.postMessage({obj:minpool[nowlen][j],str:'来自iframe:',from:window.location.href},'*');  
                if (minpool[nowlen][j].time >= player.currentTime && minpool[nowlen][j].time <= player.currentTime + 0.5 && minpool[nowlen][j].type == '1') {
                  channel = getChannel()
                  //console.log('channel:'+channel)
                  if (channel != -1) {
                    let arrpJson = minpool[nowlen][j]
                    //console.log(minpool[nowlen][j].time+','+player.currentTime+'  biu~ [' + minpool[nowlen][j].text + ']');                  
                    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 if (minpool[nowlen][j].time >= player.currentTime && minpool[nowlen][j].time <= player.currentTime + 0.5 && minpool[nowlen][j].type != '1') {
                  channel = gettopdownChannel(minpool[nowlen][j].type);
                  console.log('gettopdownChannel:' + channel);
                  if (channel != -1) {
                    let arrpJson = minpool[nowlen][j]
                    //console.log(minpool[nowlen][j].time+','+player.currentTime+'  biu~ [' + danmu + ']');
                    let dom = domtopdownPool[channel];
                    shoottopdownDanmu(dom, arrpJson, channel);
                    minpoolout[nowlen].push(minpool[nowlen][j])
                    minpool[nowlen].splice(j, 1);
                  }
                }
              }
            }
          } else if (buiSwitch == false) {
            refreshDomscreen();
          }
        })
    } else {
      // 轮询检测
      setTimeout(function () {
          //console.log(window.location.href + '开始检测h5', findplayertime, new Date().getTime() - findplayertime);
          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).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.style.left = `${player.clientWidth}px`
      element.innerText = ''
      element.className = 'right';

    })
    for (let i = 0; i < CHANNEL_COUNT; i++) {
      domtopdownPool[i].innerText = ''
    }

    $('.right').each(function (index, element) {
      element.style.left = 0
      element.style.transform = `translateX(${player.clientWidth}px)`
    })
    $('.left').each(function (index, element) {
      element.removeEventListener('transitionend', recoverLiftdom(element));
      element.addEventListener('transitionend', recoverLiftdom(element));
    })
  }
  var MAX_DM_COUNT = 10
  var CHANNEL_COUNT = 0

  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();
  }

  function refreshDom() {
    window.top.postMessage({
      obj: 'refreshDom',
      str: '来自iframe:',
      from: window.location.href
    }, '*');
    if (Math.floor(player.clientHeight / fontSize) - CHANNEL_COUNT > 0) {
      // 先new一些span 重复利用这些DOM
      for (let j = Math.floor(player.clientHeight / fontSize); j > CHANNEL_COUNT; j--) {
        let doms = [];
        for (let i = 0; i < MAX_DM_COUNT; i++) {
          // 要全部放进player
          let dom = document.createElement('div');
          //alert(fontSize)
          dom.style.fontSize = fontSize + 'px';
          dom.style.color = 'rgb(255,255,255)';
          dom.style.fontFamily = 'SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif'
          dom.style.fontWeight = 'bold'
          dom.style.opacity = '1' //不透明度
          dom.style.textShadow = '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.left = `${player.clientWidth}px`
          dom.style.willChange = 'auto'
          // 初始化dom的位置 通过设置className
          dom.className = 'right';
          // DOM的通道是固定的 所以设置好top就不需要再改变了
          dom.style.top = (-j + Math.floor(player.clientHeight / fontSize) + 1) * fontSize + 'px';
          player.parentNode.appendChild(dom);

          // 放入改通道的DOM池
          doms.push(dom);
          // 每次到transition结束的时候 就是弹幕划出屏幕了 将DOM位置重置 再放回DOM池
          dom.addEventListener('transitionend', recoverLiftdom(dom));
        }
        domPool.push(doms);

        let dom2 = document.createElement('div');
        dom2.style.fontSize = fontSize + 'px';
        dom2.style.color = 'rgb(255,255,255)';
        dom2.style.fontFamily = 'SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif'
        dom2.style.fontWeight = 'bold'
        dom2.style.opacity = '1' //不透明度
        dom2.style.textShadow = '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';
        dom2.style.willChange = 'auto'
        dom2.style.top = (-j + Math.floor(player.clientHeight / fontSize) + 1) * fontSize + 'px';
        dom2.style.left = `${(player.clientWidth - dom2.clientWidth) / 2}px`;
        dom2.className = 'topdown';

        player.parentNode.appendChild(dom2);
        domtopdownPool.push(dom2);
      }

    } else {
      //1.11.7 删除多余dom
      for (let j2 = Math.floor(player.clientHeight / fontSize); j2 < CHANNEL_COUNT; j2++) {
        for (let i2 = 0; i2 < MAX_DM_COUNT; i2++) {
          let thisdom = domPool[j2][i2]
          thisdom.parentNode.removeChild(thisdom)
        }
        domPool[j2].length = 0
        domPool.splice(j2, 1);
        //refreshDomscreen()
        domtopdownPool[j2].parentNode.removeChild(domtopdownPool[j2])
        domtopdownPool.splice(j2, 1);
      }
    }
    CHANNEL_COUNT = Math.floor(player.clientHeight / fontSize);
    /*//1.11.7 修改弹幕默认位置
    $('.right').each(function (index, element) {
      element.style.transform = `translateX(${player.clientWidth}px)`
    })
    $('.left').each(function (index, element) {
      element.removeEventListener('transitionend',recoverLiftdom(element));
      element.addEventListener('transitionend',recoverLiftdom(element));
    })
    $('.topdown').each(function (index, element) {
      element.style.left = `${(player.clientWidth - element.clientWidth) / 2}px`;
    })*/
    refreshDomscreen()
    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
    }

  }

  function recoverLiftdom(dom) {
    dom.style.transition = null;
    dom.style.willChange = 'auto'
    //dom.style.transform = `translateX(${player.clientWidth}px)`
    dom.style.left = `${player.clientWidth}px`
    dom.innerText = ''
    dom.className = 'right';
  }
  /**
   * 获取一个可以发射弹幕的通道 没有则返回-1
   */

  function getChannel() {
    for (let i = 0; i < CHANNEL_COUNT; i++) {
      let lastNumPos = domPool[i].length - 1
      let lastDom = domPool[i][lastNumPos];
      //console.log('lastDom:'+lastDom)
      if (lastDom) {
        if (lastDom.className == 'right') {
          //console.log('捷径')
          return i
        }
        let lastDomPos = lastDom.getBoundingClientRect();
        //console.log('lastDomPos.right:'+lastDomPos.right+'playerRect.right:'+playerRect.right)
        // 轨道中最后一个元素要求已经全部进入展示区域
        if (lastDomPos.right > playerRect.right) {
          continue
        }

        let occupyS = lastDomPos.right - playerRect.left
        //console.log('playerRect.left:'+occupyS+'player.clientWidth:'+player.clientWidth)
        // 追及问题
        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 shootDanmu(dom, arrpJson, channel) {
    dom.innerText = arrpJson.text;
    console.log(' biu1~ [' + arrpJson.text + ']');

    let num16 = parseInt(arrpJson.rgb).toString(16);
    dom.style.color = '#' + (Array(6).join(0) + num16).slice(-6);
    dom.style.fontSize = arrpJson.size + 'px';
    // 如果为每个弹幕设置 transition 可以保证每个弹幕的速度相同 这里没有保证速度相同
    dom.style.transition = `transform ${0.0084 * (dom.clientWidth + player.clientWidth)}s linear`;

    // 设置弹幕的位置信息 性能优化 left -> transform
    dom.style.transform = `translateX(${-dom.clientWidth - player.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();
    console.log(' biu2~ [' + arrpJson.text + ']');
    let num16 = parseInt(arrpJson.rgb).toString(16);
    dom.style.fontSize = arrpJson.size + 'px';
    dom.style.color = '#' + (Array(6).join(0) + num16).slice(-6);

    //dom.style.transform = `translateX(${(player.clientWidth - dom.clientWidth) / 2}px)`;
    dom.style.left = `${(player.clientWidth - dom.clientWidth) / 2}px`;
  }

  var $ = $ || window.$;

  /**
   * 共有方法
   */
  function commonFunction() {
    this.GMgetValue = function (name, value) { //得到存在本地的数据
      if (typeof GM_getValue === "function") {
        return GM_getValue(name, value);
      } else {
        return GM.getValue(name, value);
      }
    };
    this.GMsetValue = function (name, value) { //设置存在本地的数据
      if (typeof GM_setValue === "function") {
        return GM_setValue(name, value);
      } else {
        return GM.setValue(name, value);
      }
    };
    this.GMaddStyle = function (css) { //插入css
      var myStyle = document.createElement('style');
      myStyle.textContent = css;
      var doc = document.head || document.documentElement;
      doc.appendChild(myStyle);
    };
    this.GMopenInTab = function (url, open_in_background) { //新标签页打开网址
      if (typeof GM_openInTab === "function") {
        GM_openInTab(url, open_in_background);
      } else {
        GM.openInTab(url, open_in_background);
      }
    };
    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.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 += "<li title='" + item.name + "' data-index='" + index + "'>" + item.name + "</li>";
        }
      });

      //获得自定义位置
      var left = 0;
      var top = 100;
      var Position = commonFunctionObject.GMgetValue("Position_" + window.location.host);
      if (!!Position) {
        left = Position.left;
        top = Position.top;
      }
      var htmlMould = `<div id='vip_movie_box` + this.elementId + `'>
			<div class='item_text'>
				<div class="img_box" id="img_box_6667897iio"><img src='` + vipVideoImageBase64 + `' title='点击跳转到综合解析页面,线路随意选!'/></div>
					<div class='vip_mod_box_action' >
						<div style='display:flex;'>
							<div style='padding:10px 0px; width:380px; max-height:400px; overflow-y:auto;'  class="default-scrollbar-55678">
								<div style='font-size:16px; text-align:center; color:#E5212E; padding:5px 0px;'><b>线路</b></div>
								<ul>` + category_1_html + `<div style='clear:both;'></div></ul>
							</div>
						</div>
					</div>	
				</div>
			</div>`;
      $("body").append(htmlMould);
    };


    this.operatOther = function () {
      switch (window.location.host) {
        case 'www.bilibili.com':
          receiveInfoFromAnotherDomain();
          this.addHtmlElements();
          //console.log("检测是否为vip视频");
          let findviptime = new Date().getTime();
          let waitlimit = setInterval(() => {
              let viptextArr = [$(".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 arr2=['成为大会员', '开通大会员观看','正在观看预览,大会员免费看全片', '正在观看预览,付费观看完整版']
              let intersection = viptextArr.filter(item => new Set(vipmatchArr).has(item))
              //console.log(arr1,arr2,intersection);
              if (intersection.length != 0) {
                console.log("是vip视频");
                this.videoreplace();
                clearInterval(waitlimit);
              }
              if (new Date().getTime() - findviptime >= 5000) {
                clearInterval(waitlimit)
              }
            },
            250);
          break
        default:
          try {
            detecH5Player(new Date().getTime())
          } catch (err) {
            console.log('h5:' + err)
          }
          break
      }
    }

    this.videoreplace = function () {
      let safediv = window.document.querySelector("#player_placeholder")
      //1.11.6 修复m1907存在滚动条(才发现是滚动条) 修复基础不扎实且手贱导致的全屏问题
      let videoPlayer = $("<div id='iframe-play-div' style='width:100%;height:92%;z-index:1000;'><iframe id='iframe-player' allowfullscreen='true' frameborder='0' width='100%' height='100%' scrolling='no'></iframe></div>");
      let index = commonFunctionObject.GMgetValue("index");
      $(".bui-select-item").removeClass("bui-select-item-active");
      $(".bui-select-item").each(function () {
        if ($(this).data("index") == index) {
          $(this).addClass("bui-select-item-active");
        }
      })

      if (index == null) {
        index = 0
      }
      let url2 = this.originalInterfaceList[index].url + window.location.href;
      //console.log(index, url2);
      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();
          //console.log('playerb.pause');
          playerb.addEventListener('timeupdate', function () {
            playerb.pause();
            console.log('3playerb.pause');
          })
          playerb.removeAttribute('src');
          playerb.currentSrc = '';
          playerb.innerHTML = '';
        }

        let playera = $(this.node);
        //console.log(playera)
        playera.empty();

        playera.append(videoPlayer);

        //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);
    }
    this.bottomArea = function () {
      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-danmaku-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;
      }
  
      /*弹幕按钮本体*/
      .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;
      }
  
      .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: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)
      }
  
      .bilibili-player-video-danmaku-setting:hover .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);
      }
  
      /*设置主体*/
      .bilibili-player-video-danmaku-setting {
          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: 30px;
          height: 64px;
          line-height: 30px;
          margin-right: 11px;
          color: #fff;
          top: 45%;
          /*transform: translate(0, -50%);*/
          user-select: none;
      }
  
      /*设置图标*/
      .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: 46px;
          /* 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;
      }
  
      /*第一行图标字体上色*/
      .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);
      }
  
  
      .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
      }
  
      .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;
      }
  
      .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;
      }
  
      .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-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%;
          margin-left: -84.5px;

          opacity: 0;
          display: none;
  

      }
  
      /*表面*/
      .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-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.bui-select-quality-menu .bui-select-item.bui-select-item-active {
          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;
      }`

      GM_addStyle(bottomcss);

      //1.11.8 接口
      let category_1_html = "";
      originalInterfaceList.forEach((item, index) => {
        if (item.category == "1" && item.special) {
          category_1_html += `<li class="bui-select-item" data-index=` + index + `><span class="bilibili-player-video-quality-text">` + item.name + `</span><span class="bilibili-player-bigvip">` + item.special + `</span></li>`;
        } else {
          category_1_html += `<li class="bui-select-item" data-index=` + index + `><span class="bilibili-player-video-quality-text">` + item.name + `</span></li>`;
        }
      });

      let bottomdiv = `
      <div class="bilibili-player-video-bottom-area">
      <div class="bilibili-player-video-info">
          <div class="bilibili-player-video-info-danmaku player-tooltips-trigger">
              <span class="bilibili-player-video-info-danmaku-number"></span>
              <span class="bilibili-player-video-info-danmaku-text">条弹幕存在此弹幕池</span>
          </div>
      </div>
      <div class="bui-switch" aria-label="弹幕显示隐藏">
          <input class="bui-switch-input" type="checkbox" checked="">
          <label class="bui-switch-label">
              <span class="bui-switch-name"></span>
              <span class="bui-switch-body">
                  <span class="bui-switch-dot">
                      <span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10">
                              <path
                                  d="M1.311 3.759l-.153 1.438h2.186c0 1.832-.066 3.056-.175 3.674-.131.618-.688.959-1.683 1.023-.284 0-.568-.021-.874-.043L.317 8.818c.284.032.59.053.896.053.546 0 .852-.17.929-.511.077-.341.12-1.076.12-2.204H0l.306-3.344h1.847V1.427H.098V.479h3.18v3.28H1.311zM4 1.747h1.311A8.095 8.095 0 004.492.426L5.53.085c.306.426.579.873.809 1.363l-.689.299h1.508c.306-.544.569-1.129.809-1.747l1.082.373c-.219.511-.47.969-.743 1.374h1.268V6.23H7.322v.82H10v1.044H7.322V10H6.208V8.094H3.607V7.05h2.601v-.82H4V1.747zm4.568 3.557v-.831H7.322v.831h1.246zm-2.36 0v-.831H5.016v.831h1.192zM5.016 3.557h1.191v-.873H5.016v.873zm2.306-.873v.873h1.246v-.873H7.322z">
                              </path>
                          </svg></span>
                  </span>
              </span>
          </label>
      </div>
      <div class="bilibili-player-video-danmaku-setting">
          <span class="bp-svgicon">
              <span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
                      <path
                          d="M16.5 8c1.289 0 2.49.375 3.5 1.022V6a2 2 0 00-2-2H4a2 2 0 00-2 2v10a2 2 0 002 2h7.022A6.5 6.5 0 0116.5 8zM7 13H5a1 1 0 010-2h2a1 1 0 010 2zm2-4H5a1 1 0 010-2h4a1 1 0 010 2z">
                      </path>
                      <path
                          d="M20.587 13.696l-.787-.131a3.503 3.503 0 00-.593-1.051l.301-.804a.46.46 0 00-.21-.56l-1.005-.581a.52.52 0 00-.656.113l-.499.607a3.53 3.53 0 00-1.276 0l-.499-.607a.52.52 0 00-.656-.113l-1.005.581a.46.46 0 00-.21.56l.301.804c-.254.31-.456.665-.593 1.051l-.787.131a.48.48 0 00-.413.465v1.209a.48.48 0 00.413.465l.811.135c.144.382.353.733.614 1.038l-.292.78a.46.46 0 00.21.56l1.005.581a.52.52 0 00.656-.113l.515-.626a3.549 3.549 0 001.136 0l.515.626a.52.52 0 00.656.113l1.005-.581a.46.46 0 00.21-.56l-.292-.78c.261-.305.47-.656.614-1.038l.811-.135A.48.48 0 0021 15.37v-1.209a.48.48 0 00-.413-.465zM16.5 16.057a1.29 1.29 0 11.002-2.582 1.29 1.29 0 01-.002 2.582z">
                      </path>
                  </svg></span>
          </span>
          <div class="bilibili-player-video-danmaku-setting-wrap">
              <div class="bilibili-player-video-danmaku-setting-box bui bui-panel bui-dark">
                  <div class="bui-panel-wrap" style="width: 298px; height: 366px;">
                      <div class="bui-panel-move" style="width: 564px; transform: translateX(0px);">

                          <div class="bui-panel-item bui-panel-item-active" style="width: 298px; height: 366px;">
                              <div class="bilibili-player-video-danmaku-setting-left">
                                  <div class="bilibili-player-video-danmaku-setting-left-block">
                                      <div class="bilibili-player-video-danmaku-setting-left-block-title">按类型屏蔽</div>
                                      <div class="bilibili-player-video-danmaku-setting-left-block-content">
                                          <div class="bilibili-player-block-filter-type "
                                              data-name="ctlbar_danmuku_scroll_on" ftype="scroll"><span
                                                  class="bilibili-player-block-filter-image"><span
                                                      class="bp-svgicon"><svg xmlns="http://www.w3.org/2000/svg"
                                                          viewBox="0 0 28 28">
                                                          <path
                                                              d="M23 3H5a4 4 0 00-4 4v14a4 4 0 004 4h18a4 4 0 004-4V7a4 4 0 00-4-4zM11 9h6a1 1 0 010 2h-6a1 1 0 010-2zm-3 2H6V9h2v2zm4 4h-2v-2h2v2zm9 0h-6a1 1 0 010-2h6a1 1 0 010 2z">
                                                          </path>
                                                      </svg></span></span>
                                              <div class="bilibili-player-block-filter-label">滚动</div>
                                          </div>
                                          <div class="bilibili-player-block-filter-type "
                                              data-name="ctlbar_danmuku_top_on" ftype="top"><span
                                                  class="bilibili-player-block-filter-image"><span
                                                      class="bp-svgicon"><svg xmlns="http://www.w3.org/2000/svg"
                                                          viewBox="0 0 28 28">
                                                          <path
                                                              d="M23 3H5a4 4 0 00-4 4v14a4 4 0 004 4h18a4 4 0 004-4V7a4 4 0 00-4-4zM9 9H7V7h2v2zm4 0h-2V7h2v2zm4 0h-2V7h2v2zm4 0h-2V7h2v2z">
                                                          </path>
                                                      </svg></span></span>
                                              <div class="bilibili-player-block-filter-label">顶部</div>
                                          </div>
                                          <div class="bilibili-player-block-filter-type "
                                              data-name="ctlbar_danmuku_bottom_on" ftype="bottom"><span
                                                  class="bilibili-player-block-filter-image"><span
                                                      class="bp-svgicon"><svg xmlns="http://www.w3.org/2000/svg"
                                                          viewBox="0 0 28 28">
                                                          <path
                                                              d="M23 3H5a4 4 0 00-4 4v14a4 4 0 004 4h18a4 4 0 004-4V7a4 4 0 00-4-4zM9 21H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2z">
                                                          </path>
                                                      </svg></span></span>
                                              <div class="bilibili-player-block-filter-label">底部</div>
                                          </div>
                                          <div class="bilibili-player-block-filter-type "
                                              data-name="ctlbar_danmuku_color_on" ftype="color"><span
                                                  class="bilibili-player-block-filter-image"><span
                                                      class="bp-svgicon"><svg xmlns="http://www.w3.org/2000/svg"
                                                          viewBox="0 0 28 28">
                                                          <path
                                                              d="M17.365 11.118c0-.612-.535-1.147-1.147-1.147s-1.147.535-1.147 1.147c0 .611.535 1.147 1.147 1.147s1.147-.536 1.147-1.147zM12.93 9.665c-.764 0-1.376.611-1.376 1.3 0 .689.612 1.301 1.376 1.301s1.376-.612 1.376-1.301-.612-1.3-1.376-1.3zM9.794 11.883c-.764 0-1.376.612-1.376 1.3 0 .689.612 1.3 1.376 1.3s1.376-.611 1.376-1.3c.001-.688-.611-1.3-1.376-1.3zM10.023 15.171c-.612 0-1.147.536-1.147 1.148 0 .611.535 1.146 1.147 1.146s1.147-.535 1.147-1.146c.001-.612-.535-1.148-1.147-1.148zM17.823 12.953c-.611 0-1.147.535-1.147 1.147s.536 1.147 1.147 1.147c.612 0 1.148-.535 1.148-1.147s-.536-1.147-1.148-1.147z">
                                                          </path>
                                                          <path
                                                              d="M23.177 3H4.824C2.683 3 1 4.833 1 7.167v13.665C1 23.167 2.683 25 4.824 25h18.353C25.318 25 27 23.167 27 20.833V7.167C27 4.833 25.318 3 23.177 3zm-3.442 13.624c-1.987.612-4.129-.154-5.046.764-.918.918 1.529 1.606 0 2.219-1.988.84-7.341-.535-8.182-4.053-.841-3.441 2.905-6.5 5.888-7.035 2.906-.535 6.041.841 8.181 2.982 2.065 2.141.765 4.74-.841 5.123z">
                                                          </path>
                                                      </svg></span></span>
                                              <div class="bilibili-player-block-filter-label">彩色</div>
                                          </div>
                                          <div class="bilibili-player-block-filter-type"
                                              data-name="ctlbar_danmuku_special_close" ftype="special"><span
                                                  class="bilibili-player-block-filter-image"><span
                                                      class="bp-svgicon"><svg xmlns="http://www.w3.org/2000/svg"
                                                          viewBox="0 0 28 28">
                                                          <path
                                                              d="M23 15c1.487 0 2.866.464 4 1.255V7a4 4 0 00-4-4H5a4 4 0 00-4 4v14a4 4 0 004 4h11.674A7 7 0 0123 15zM7.849 11.669l.447-.828.492.782.894.184-.536.736.134.966-.85-.321-.804.414.045-.967L7 11.946l.849-.277zm3.352 7.101l-1.43-.506L8.43 19v-1.565L7.357 16.33l1.43-.506.67-1.381.894 1.289 1.475.23-.894 1.289.269 1.519zm2.453-5.971l-2.145-1.933 2.637-1.151L15.263 7l1.877 2.255 2.86.23-1.52 2.531.67 2.854-2.816-.69-2.458 1.565-.222-2.946z">
                                                          </path>
                                                          <path
                                                              d="M26.536 18.464a5 5 0 00-7.071 0 5 5 0 000 7.071 5 5 0 107.071-7.071zm-5.657 5.657a3 3 0 01-.586-3.415l4.001 4.001a3 3 0 01-3.415-.586zm4.829-.827l-4.001-4.001a3.002 3.002 0 014.001 4.001z">
                                                          </path>
                                                      </svg></span></span>
                                              <div class="bilibili-player-block-filter-label">高级</div>
                                          </div>
                                      </div>
                                  </div>
                                  <div class="bilibili-player-video-danmaku-setting-left-flag">
                                      <div
                                          class="bilibili-player-video-danmaku-setting-left-flag-title bui bui-checkbox bui-dark">
                                          <input class="bui-checkbox-input" type="checkbox" checked=""
                                              aria-label="智能云屏蔽">
                                          <label class="bui-checkbox-label">
                                              <span class="bui-checkbox-icon bui-checkbox-icon-default"><svg
                                                      xmlns="http://www.w3.org/2000/svg" width="32" height="32"
                                                      viewBox="0 0 32 32">
                                                      <path
                                                          d="M8 6a2 2 0 00-2 2v16a2 2 0 002 2h16a2 2 0 002-2V8a2 2 0 00-2-2H8zm0-2h16c2.21 0 4 1.79 4 4v16c0 2.21-1.79 4-4 4H8c-2.21 0-4-1.79-4-4V8c0-2.21 1.79-4 4-4z">
                                                      </path>
                                                  </svg></span>
                                              <span class="bui-checkbox-icon bui-checkbox-icon-selected"><svg
                                                      xmlns="http://www.w3.org/2000/svg" width="32" height="32"
                                                      viewBox="0 0 32 32">
                                                      <path
                                                          d="M13 18.25l-1.8-1.8c-.6-.6-1.65-.6-2.25 0s-.6 1.5 0 2.25l2.85 2.85c.318.318.762.468 1.2.448.438.02.882-.13 1.2-.448l8.85-8.85c.6-.6.6-1.65 0-2.25s-1.65-.6-2.25 0l-7.8 7.8zM8 4h16c2.21 0 4 1.79 4 4v16c0 2.21-1.79 4-4 4H8c-2.21 0-4-1.79-4-4V8c0-2.21 1.79-4 4-4z">
                                                      </path>
                                                  </svg></span>
                                              <span class="bui-checkbox-name">弹幕去重</span>
                                          </label>
                                      </div>
                                      <div class="bilibili-player-video-danmaku-setting-left-flag-content">
                                          <div class="bilibili-player-setting-flag bui bui-slider bui-dark">
                                              <div class="bui-track">
                                                  <div class="bui-bar-wrap">


                                                      <div class="bui-bar bui-bar-normal" role="progressbar"
                                                          style="transform: scaleX(0.22222);"></div>

                                                  </div>


                                                  <div class="bui-step">

                                                      <div class="bui-step-item bui-step-item-0" style="left:0%">
                                                          <div class="bui-step-dot"></div>
                                                          <div class="bui-step-text"></div>
                                                      </div>

                                                      <div class="bui-step-item bui-step-item-100" style="left:100%">
                                                          <div class="bui-step-dot"></div>
                                                          <div class="bui-step-text"></div>
                                                      </div>

                                                  </div>

                                                  <div class="bui-thumb" style="transform: translateX(34.6663px);">

                                                      <div class="bui-thumb-tooltip">3级</div>


                                                      <div class="bui-thumb-dot"></div>

                                                  </div>
                                              </div>
                                          </div>
                                      </div>
                                  </div>
                                  <div class="bilibili-player-video-danmaku-setting-left-preventshade">
                                      <span
                                          class="bilibili-player-video-danmaku-setting-left-preventshade-box bui bui-checkbox bui-dark player-tooltips-trigger"
                                          data-tooltip="2" data-text="视频底部15%部分为空白保留区" data-position="top-left"
                                          data-change-mode="1"><input class="bui-checkbox-input" type="checkbox"
                                              aria-label="防挡字幕">
                                          <label class="bui-checkbox-label">
                                              <span class="bui-checkbox-icon bui-checkbox-icon-default"><svg
                                                      xmlns="http://www.w3.org/2000/svg" width="32" height="32"
                                                      viewBox="0 0 32 32">
                                                      <path
                                                          d="M8 6a2 2 0 00-2 2v16a2 2 0 002 2h16a2 2 0 002-2V8a2 2 0 00-2-2H8zm0-2h16c2.21 0 4 1.79 4 4v16c0 2.21-1.79 4-4 4H8c-2.21 0-4-1.79-4-4V8c0-2.21 1.79-4 4-4z">
                                                      </path>
                                                  </svg></span>
                                              <span class="bui-checkbox-icon bui-checkbox-icon-selected"><svg
                                                      xmlns="http://www.w3.org/2000/svg" width="32" height="32"
                                                      viewBox="0 0 32 32">
                                                      <path
                                                          d="M13 18.25l-1.8-1.8c-.6-.6-1.65-.6-2.25 0s-.6 1.5 0 2.25l2.85 2.85c.318.318.762.468 1.2.448.438.02.882-.13 1.2-.448l8.85-8.85c.6-.6.6-1.65 0-2.25s-1.65-.6-2.25 0l-7.8 7.8zM8 4h16c2.21 0 4 1.79 4 4v16c0 2.21-1.79 4-4 4H8c-2.21 0-4-1.79-4-4V8c0-2.21 1.79-4 4-4z">
                                                      </path>
                                                  </svg></span>
                                              <span class="bui-checkbox-name">防挡字幕</span>
                                          </label></span>
                                  </div>
                                  <div class="bilibili-player-video-danmaku-setting-left-opacity">
                                      <div class="bilibili-player-video-danmaku-setting-left-opacity-title">不透明度</div>
                                      <div class="bilibili-player-video-danmaku-setting-left-opacity-content">
                                          <div class="bilibili-player-setting-opacity bui bui-slider bui-dark">
                                              <div class="bui-track">

                                                  <div class="bui-bar-wrap">


                                                      <div class="bui-bar bui-bar-normal" role="progressbar"
                                                          style="transform: scaleX(1);"></div>
                                                  </div>
                                                  <div class="bui-thumb" style="transform: translateX(188px);">
                                                      <div class="bui-thumb-tooltip">100%</div>
                                                      <div class="bui-thumb-dot"></div>
                                                  </div>
                                              </div>
                                          </div>
                                      </div>
                                  </div>
                                  <div class="bilibili-player-video-danmaku-setting-left-area">
                                      <div class="bilibili-player-video-danmaku-setting-left-area-title">显示区域</div>
                                      <div class="bilibili-player-video-danmaku-setting-left-area-content">
                                          <div class="bilibili-player-setting-area bui bui-slider bui-dark">
                                              <div class="bui-track">
                                                  <div class="bui-bar-wrap">
                                                  </div>
                                                  <div class="bui-step">

                                                      <div class="bui-step-item bui-step-item-0" style="left:0%">
                                                          <div class="bui-step-dot"></div>
                                                          <div class="bui-step-text">1/4屏</div>
                                                      </div>

                                                      <div class="bui-step-item" style="left:25%">
                                                          <div class="bui-step-dot"></div>
                                                          <div class="bui-step-text">半屏</div>
                                                      </div>

                                                      <div class="bui-step-item" style="left:50%">
                                                          <div class="bui-step-dot"></div>
                                                          <div class="bui-step-text">3/4屏</div>
                                                      </div>

                                                      <div class="bui-step-item" style="left:75%">
                                                          <div class="bui-step-dot"></div>
                                                          <div class="bui-step-text">不重叠</div>
                                                      </div>

                                                      <div class="bui-step-item bui-step-item-100" style="left:100%">
                                                          <div class="bui-step-dot"></div>
                                                          <div class="bui-step-text">不限</div>
                                                      </div>

                                                  </div>

                                                  <div class="bui-thumb" style="transform: translateX(141px);">
                                                      <div class="bui-thumb-dot"></div>
                                                  </div>
                                              </div>
                                          </div>
                                      </div>
                                  </div>
                                  <div class="bilibili-player-video-danmaku-setting-left-speedplus">
                                      <div class="bilibili-player-video-danmaku-setting-left-speedplus-title">弹幕速度
                                      </div>
                                      <div class="bilibili-player-video-danmaku-setting-left-speedplus-content">
                                          <div class="bilibili-player-setting-speedplus bui bui-slider bui-dark">
                                              <div class="bui-track">
                                                  <div class="bui-bar-wrap">
                                                      <div class="bui-bar bui-bar-normal" role="progressbar"
                                                          style="transform: scaleX(0.4975);"></div>
                                                  </div>
                                                  <div class="bui-step">
                                                      <div class="bui-step-item bui-step-item-0" style="left:0%">
                                                          <div class="bui-step-dot"></div>
                                                          <div class="bui-step-text">慢</div>
                                                      </div>

                                                      <div class="bui-step-item bui-step-item-100" style="left:100%">
                                                          <div class="bui-step-dot"></div>
                                                          <div class="bui-step-text">快</div>
                                                      </div>

                                                  </div>

                                                  <div class="bui-thumb" style="transform: translateX(93.53px);">

                                                      <div class="bui-thumb-tooltip">100%</div>
                                                      <div class="bui-thumb-dot"></div>

                                                  </div>
                                              </div>
                                          </div>
                                      </div>
                                  </div>
                                  <div class="bilibili-player-video-danmaku-setting-left-fontsize">
                                      <div class="bilibili-player-video-danmaku-setting-left-fontsize-title">字体大小
                                      </div>
                                      <div class="bilibili-player-video-danmaku-setting-left-fontsize-content">
                                          <div class="bilibili-player-setting-fontsize bui bui-slider bui-dark">
                                              <div class="bui-track">
                                                  <div class="bui-bar-wrap">
                                                      <div class="bui-bar bui-bar-normal" role="progressbar"
                                                          style="transform: scaleX(0.5);"></div>

                                                  </div>
                                                  <div class="bui-step">

                                                      <div class="bui-step-item bui-step-item-0" style="left:0%">
                                                          <div class="bui-step-dot"></div>
                                                          <div class="bui-step-text">小</div>
                                                      </div>

                                                      <div class="bui-step-item bui-step-item-100" style="left:100%">
                                                          <div class="bui-step-dot"></div>
                                                          <div class="bui-step-text">大</div>
                                                      </div>

                                                  </div>

                                                  <div class="bui-thumb" style="transform: translateX(94px);">
                                                      <div class="bui-thumb-tooltip">100%</div>
                                                      <div class="bui-thumb-dot"></div>
                                                  </div>
                                              </div>
                                          </div>
                                      </div>
                                  </div>
                                  <div class="bilibili-player-video-danmaku-setting-left-block-word">
                                      <div class="bilibili-player-video-danmaku-setting-left-block-add">添加屏蔽词</div>
                                      <div class="bilibili-player-video-danmaku-setting-left-block-sync">下载XML弹幕</div>
                                  </div>
                                  <div class="bilibili-player-video-danmaku-setting-left-more"><span
                                          class="bilibili-player-video-danmaku-setting-left-more-text">更多弹幕设置</span><span
                                          class="bp-svgicon"><svg xmlns="http://www.w3.org/2000/svg"
                                              viewBox="0 0 16 16">
                                              <path
                                                  d="M9.188 7.999l-3.359 3.359a.75.75 0 101.061 1.061l3.889-3.889a.75.75 0 000-1.061L6.89 3.58a.75.75 0 10-1.061 1.061l3.359 3.358z">
                                              </path>
                                          </svg></span></div>
                              </div>
                          </div>

                          <div class="bui-panel-item" style="width: 266px; height: 254px;">
                              <div class="bilibili-player-video-danmaku-setting-right">
                                  <div class="bilibili-player-video-danmaku-setting-right-more"><span
                                          class="bp-svgicon"><svg xmlns="http://www.w3.org/2000/svg"
                                              viewBox="0 0 16 16">
                                              <path
                                                  d="M6.811 8.001l3.359-3.359a.75.75 0 10-1.061-1.061L5.22 7.471a.75.75 0 000 1.061l3.889 3.888a.75.75 0 101.061-1.061L6.811 8.001z">
                                              </path>
                                          </svg></span><span
                                          class="bilibili-player-video-danmaku-setting-right-more-text">更多弹幕设置</span>
                                  </div>
                                  <div class="bilibili-player-video-danmaku-setting-right-separator"></div>
                                  <div class="bilibili-player-video-danmaku-setting-right-fullscreensync">
                                      <span
                                          class="bilibili-player-video-danmaku-setting-right-fullscreensync-box bui bui-checkbox bui-dark"><input
                                              class="bui-checkbox-input" type="checkbox" aria-label="弹幕大小跟随屏幕等比缩放">
                                          <label class="bui-checkbox-label">
                                              <span class="bui-checkbox-icon bui-checkbox-icon-default"><svg
                                                      xmlns="http://www.w3.org/2000/svg" width="32" height="32"
                                                      viewBox="0 0 32 32">
                                                      <path
                                                          d="M8 6a2 2 0 00-2 2v16a2 2 0 002 2h16a2 2 0 002-2V8a2 2 0 00-2-2H8zm0-2h16c2.21 0 4 1.79 4 4v16c0 2.21-1.79 4-4 4H8c-2.21 0-4-1.79-4-4V8c0-2.21 1.79-4 4-4z">
                                                      </path>
                                                  </svg></span>
                                              <span class="bui-checkbox-icon bui-checkbox-icon-selected"><svg
                                                      xmlns="http://www.w3.org/2000/svg" width="32" height="32"
                                                      viewBox="0 0 32 32">
                                                      <path
                                                          d="M13 18.25l-1.8-1.8c-.6-.6-1.65-.6-2.25 0s-.6 1.5 0 2.25l2.85 2.85c.318.318.762.468 1.2.448.438.02.882-.13 1.2-.448l8.85-8.85c.6-.6.6-1.65 0-2.25s-1.65-.6-2.25 0l-7.8 7.8zM8 4h16c2.21 0 4 1.79 4 4v16c0 2.21-1.79 4-4 4H8c-2.21 0-4-1.79-4-4V8c0-2.21 1.79-4 4-4z">
                                                      </path>
                                                  </svg></span>
                                              <span class="bui-checkbox-name">弹幕大小跟随屏幕等比缩放</span>
                                          </label></span>
                                  </div>
                                  <div class="bilibili-player-video-danmaku-setting-right-speedsync">
                                      <span
                                          class="bilibili-player-video-danmaku-setting-right-speedsync-box bui bui-checkbox bui-dark"><input
                                              class="bui-checkbox-input" type="checkbox" aria-label="弹幕速度同步播放倍数">
                                          <label class="bui-checkbox-label">
                                              <span class="bui-checkbox-icon bui-checkbox-icon-default"><svg
                                                      xmlns="http://www.w3.org/2000/svg" width="32" height="32"
                                                      viewBox="0 0 32 32">
                                                      <path
                                                          d="M8 6a2 2 0 00-2 2v16a2 2 0 002 2h16a2 2 0 002-2V8a2 2 0 00-2-2H8zm0-2h16c2.21 0 4 1.79 4 4v16c0 2.21-1.79 4-4 4H8c-2.21 0-4-1.79-4-4V8c0-2.21 1.79-4 4-4z">
                                                      </path>
                                                  </svg></span>
                                              <span class="bui-checkbox-icon bui-checkbox-icon-selected"><svg
                                                      xmlns="http://www.w3.org/2000/svg" width="32" height="32"
                                                      viewBox="0 0 32 32">
                                                      <path
                                                          d="M13 18.25l-1.8-1.8c-.6-.6-1.65-.6-2.25 0s-.6 1.5 0 2.25l2.85 2.85c.318.318.762.468 1.2.448.438.02.882-.13 1.2-.448l8.85-8.85c.6-.6.6-1.65 0-2.25s-1.65-.6-2.25 0l-7.8 7.8zM8 4h16c2.21 0 4 1.79 4 4v16c0 2.21-1.79 4-4 4H8c-2.21 0-4-1.79-4-4V8c0-2.21 1.79-4 4-4z">
                                                      </path>
                                                  </svg></span>
                                              <span class="bui-checkbox-name">弹幕速度同步播放倍数</span>
                                          </label></span>
                                  </div>
                                  <div class="bilibili-player-video-danmaku-setting-right-font">
                                      <div class="bilibili-player-video-danmaku-setting-right-font-title">弹幕字体</div>
                                      <div class="bilibili-player-video-danmaku-setting-right-font-content">
                                          <div
                                              class="bilibili-player-video-danmaku-setting-right-font-content-fontfamily bui bui-select bui-dark">
                                              <div class="bui-select-wrap">
                                                  <div class="bui-select-border">
                                                      <div class="bui-select-header">
                                                          <span class="bui-select-result">黑体</span>
                                                          <span class="bui-select-arrow">
                                                              <span class="bui-select-arrow-down"></span>
                                                          </span>
                                                      </div>
                                                      <div class="bui-select-list-wrap">
                                                          <ul class="bui-select-list" style="border: none;">
                                                              <li class="bui-select-item bui-select-item-active"
                                                                  data-value="SimHei, 'Microsoft JhengHei'">黑体</li>
                                                              <li class="bui-select-item " data-value="SimSun">宋体</li>

                                                              <li class="bui-select-item " data-value="NSimSun">新宋体
                                                              </li>

                                                              <li class="bui-select-item " data-value="FangSong">仿宋
                                                              </li>

                                                              <li class="bui-select-item "
                                                                  data-value="'Microsoft YaHei'">微软雅黑</li>

                                                              <li class="bui-select-item "
                                                                  data-value="'Microsoft Yahei UI Light'">微软雅黑 Light
                                                              </li>

                                                              <li class="bui-select-item "
                                                                  data-value="'Noto Sans CJK SC DemiLight'">Noto Sans
                                                                  DemiLight</li>

                                                              <li class="bui-select-item "
                                                                  data-value="'Noto Sans CJK SC Regular'">Noto Sans
                                                                  Regular</li>

                                                          </ul>
                                                      </div>
                                                  </div>
                                              </div>
                                          </div>
                                      </div>
                                      <div class="bilibili-player-video-danmaku-setting-right-font-bold">
                                          <span
                                              class="bilibili-player-video-danmaku-setting-right-font-bold-box bui bui-checkbox bui-dark"><input
                                                  class="bui-checkbox-input" type="checkbox" aria-label="粗体">
                                              <label class="bui-checkbox-label">
                                                  <span class="bui-checkbox-icon bui-checkbox-icon-default"><svg
                                                          xmlns="http://www.w3.org/2000/svg" width="32" height="32"
                                                          viewBox="0 0 32 32">
                                                          <path
                                                              d="M8 6a2 2 0 00-2 2v16a2 2 0 002 2h16a2 2 0 002-2V8a2 2 0 00-2-2H8zm0-2h16c2.21 0 4 1.79 4 4v16c0 2.21-1.79 4-4 4H8c-2.21 0-4-1.79-4-4V8c0-2.21 1.79-4 4-4z">
                                                          </path>
                                                      </svg></span>
                                                  <span class="bui-checkbox-icon bui-checkbox-icon-selected"><svg
                                                          xmlns="http://www.w3.org/2000/svg" width="32" height="32"
                                                          viewBox="0 0 32 32">
                                                          <path
                                                              d="M13 18.25l-1.8-1.8c-.6-.6-1.65-.6-2.25 0s-.6 1.5 0 2.25l2.85 2.85c.318.318.762.468 1.2.448.438.02.882-.13 1.2-.448l8.85-8.85c.6-.6.6-1.65 0-2.25s-1.65-.6-2.25 0l-7.8 7.8zM8 4h16c2.21 0 4 1.79 4 4v16c0 2.21-1.79 4-4 4H8c-2.21 0-4-1.79-4-4V8c0-2.21 1.79-4 4-4z">
                                                          </path>
                                                      </svg></span>
                                                  <span class="bui-checkbox-name">粗体</span>
                                              </label></span>
                                      </div>
                                  </div>
                                  <div class="bilibili-player-video-danmaku-setting-right-fontborder">
                                      <div class="bilibili-player-video-danmaku-setting-right-fontborder-title">描边类型
                                      </div>
                                      <div
                                          class="bilibili-player-video-danmaku-setting-right-fontborder-content bui bui-radio bui-dark">
                                          <div class="bui-radio-wrap bui-radio-button">
                                              <div class="bui-radio-group" style="margin: 0 -4px;">

                                                  <label class="bui-radio-item" style="margin: 0 4px;">
                                                      <input type="radio" class="bui-radio-input" value="0"
                                                          name="bui-radio4">
                                                      <span class="bui-radio-label">

                                                          <span class="bui-radio-text">重墨</span>
                                                      </span>
                                                  </label>

                                                  <label class="bui-radio-item" style="margin: 0 4px;">
                                                      <input type="radio" class="bui-radio-input" value="1"
                                                          name="bui-radio4">
                                                      <span class="bui-radio-label">

                                                          <span class="bui-radio-text">描边</span>
                                                      </span>
                                                  </label>

                                                  <label class="bui-radio-item" style="margin: 0 4px;">
                                                      <input type="radio" class="bui-radio-input" value="2"
                                                          name="bui-radio4">
                                                      <span class="bui-radio-label">

                                                          <span class="bui-radio-text">45°投影</span>
                                                      </span>
                                                  </label>

                                              </div>
                                          </div>
                                      </div>
                                  </div>
                                  <div class="bilibili-player-video-danmaku-setting-right-separator"></div>
                                  <div class="bilibili-player-video-danmaku-setting-right-reset bui bui-button bui-button-transparent"
                                      tabindex="0" role="button">恢复默认设置</div>
                              </div>
                          </div>

                      </div>
                  </div>
              </div>
          </div>
      </div>
      <div class="bilibili-player-video-btn bilibili-player-video-btn-quality">
          <div class="bilibili-player-video-quality-menu bui bui-select bui-dark bui-select-quality-menu">
              <div class="bui-select-wrap">
                  <div class="bui-select-border">
                      <div class="bui-select-header">
                          <span class="bui-select-result">
                              <span class="bilibili-player-video-quality-text">&nbsp大会员&nbsp</span>
                          </span>
                      </div>
                      <div class="bui-select-list-wrap">
                          <ul class="bui-select-list">

                              ` + category_1_html + `

                          </ul>
                      </div>
                  </div>
              </div>
          </div>
      </div>
  </div>
`;
      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.mouseEvent = function () {
      //1.11.5 弹幕开关
      let buiSwitchbtn = $(".bui-switch-input");
      buiSwitchbtn.click(function () {
        //let buiSwitchbtn = $(".bui-switch-input").prop("checked");
        //console.log(buiSwitchbtn);
        if ($(".bui-switch-input").prop("checked")) {
          postdownmessage({
            str: 'checktrue'
          })
        } else {
          postdownmessage({
            str: 'checkfalse'
          })
        }

      });

      //1.11.8 滑块
      $(".bui-slider").each(function () {
        $(this).mousedown(
          function (e) {
            $(this).on('mousemove.drag', function (e) {
              let el = $(this);
              let os = el.offset();
              let mouseX = e.pageX - os.left;
              //alert(mouseX/$(this).width())
              if (mouseX <= $(this).width() || mouseX >= 0) {
                //bilibili-player-setting-area
                let sliderpct = Math.ceil(mouseX / $(this).width() * 100)
                let sliderclass = $(this).attr('class')
                //alert(sliderclass.indexOf('bilibili-player-setting-area'))
                if (sliderclass.indexOf('bilibili-player-setting-area') == -
                  1) {
                  $(this).find(".bui-thumb").css('transform',
                    `translateX(${mouseX}px)`)
                } else {
                  if (sliderpct > 87) {
                    $(this).find(".bui-thumb").css('transform',
                      `translateX(${$(this).width()}px)`)
                  } else if (sliderpct > 62) {
                    $(this).find(".bui-thumb").css('transform',
                      `translateX(${Math.ceil($(this).width())*0.75}px)`
                    )
                  } else if (sliderpct > 37) {
                    $(this).find(".bui-thumb").css('transform',
                      `translateX(${Math.ceil($(this).width())*0.5}px)`
                    )
                  } else if (sliderpct > 12) {
                    $(this).find(".bui-thumb").css('transform',
                      `translateX(${Math.ceil($(this).width())*0.25}px)`
                    )
                  } else {
                    $(this).find(".bui-thumb").css('transform',
                      `translateX(${0}px)`)
                  }
                }
                $(this).find(".bui-bar-normal").css('transform',
                  `scaleX(${mouseX/$(this).width()})`)
                $(this).find(".bui-thumb-tooltip").css('opacity', `1`)
                $(this).find(".bui-thumb-tooltip").text(`${sliderpct}%`)
                //$(".bilibili-player-video-info-danmaku-text").text(sliderpct)
              }
            })
          }
        )

      })

      $(document).mouseup(function (e) {
        $(".bui-slider").each(function () {
          $(this).off('mousemove.drag');
          $(this).find(".bui-thumb-tooltip").css('opacity', `0`)
        })
      })

      //1.11.8 接口按钮
      $(".bui-select-item").each((liIndex, item) => {
        item.addEventListener("click", () => {
          $(".bui-select-item").removeClass("bui-select-item-active");
          $(item).addClass("bui-select-item-active")

          var index = parseInt($(item).attr("data-index"));
					commonFunctionObject.GMsetValue("index", index);
					this.videoreplace();
        });
      });

    }


    this.start = function () {
      this.operatOther();
    }
  }
  (new superVideoHelper()).start();
})()