直播插件

虎牙、斗鱼、哔哔哔里、抖音 页面美化!新增虎牙、斗鱼、哔哩哔哩的护眼主题🚀,ctrl+alt+j激活

As of 2023-11-02. See the latest version.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         直播插件
// @namespace    https://github.com/wuxin0011/tampermonkey-script/live-plugin
// @version      4.1.8
// @author       wuxin0011
// @description  虎牙、斗鱼、哔哔哔里、抖音 页面美化!新增虎牙、斗鱼、哔哩哔哩的护眼主题🚀,ctrl+alt+j激活
// @license      MIT
// @icon         data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAArhJREFUWEfllz9ME1Ecx3+/dzUxIUpPxcTEqVD+LDjIoiTSwQldjHGDAwYpbYE4aOJQ8KBFTUx0KLSWoNIDoyFuGsMkcTBx0URjjFBQBmKiQ49ijInh3s/06iWlgfauh8Xoje++7/f5vN+73r0i7PCFO8yHDQI1QzG5HEIOgskPsm85w9IFMmBkQguBNlQOAQTWB4hryWB3V1YgFP++OOCtKAfcYLjD4xeJ8adYE4p5gINn8YpPb78oBehPihDQ0KoS1Vl65/MFnJJfNgLbLeJs6/UA457/S0CUfI3art0ra3dupbalA5UdfdXpRGTJ7PaIUmAWiMbUqehj2wJiR28zcLqPRD2p6ehsMQlR8n9GQTiZuhd5n8naEtjX1X+ctPVHquvgYefHrw8RUFGVsSdbSYjtgWV0sFYDbksgC+dB1XXgNMgy14tJ/hkidjs9NfosX8IpBeaZwM7kwksWyMK1F6qrSjDgBjAjwZhwMzUZeWmMiZL/NQpCWz48R6BlVYnqb9yi7wGxwx8GjkfV6qpT+fBcCQQKq0rsrS4kCPJm8JI6IEqBS6oydqPYw+aU/MOATAQNJ1anI2+2ytt6CAtKyLKj8tOXI+lE7FWh3G8B81tQbOVW7/8tAoW/BWJ7YM7qyqzkCel5wY+RlWJ2s5v+DK0U3dvZ7xZovUlNRB9YmWdkdYHaa3ddtP7zQnKgp99qkf2dvfWcQ5OqjE5bndswEj+kEZzVj2TuUPxbcsC7x2oRO3l3KP5D0HhD9kwYjp9DghnivDyHUsYuI+L5hWD3lK3/BfVXx2s5p2MLQW+i1G7YEqgbiTZqmtC6OOi9/u8LeOQ5xwpL1uWulDGtlnN2AgAncseJa7gk+96Z6YrpLagbnmjmqHk2gAArAOgwAsznjiNBemHQO7qtAmaKlZIx3YFSipuZ8wvlidcmZtmgQAAAAABJRU5ErkJggg==
// @source       https://github.com/wuxin0011/tampermonkey-script/live-plugin
// @supportURL   https://github.com/wuxin0011/tampermonkey-script/issues
// @match        https://*.bilibili.com/*
// @match        https://www.douyu.com/*
// @match        https://www.huya.com/*
// @match        https://www.bilibili.com/*
// @match        https://www.douyin.com/*
// @grant        GM_addStyle
// ==/UserScript==

(function () {
  'use strict';

  const exculues = [
    "https://i.huya.com/",
    "https://www.douyu.com/member/",
    "https://yuba.douyu.com/",
    "https://manga.bilibili.com/",
    "https://account.bilibili.com/",
    "https://member.bilibili.com/",
    "https://show.bilibili.com/",
    "https://www.bilibili.com/cheese",
    "https://pay.bilibili.com/",
    "https://show.bilibili.com/",
    "https://link.bilibili.com/"
  ];
  const prefix = "[live-plugin]:";
  const msg = (...args) => `${prefix} ${args}`;
  const emptyMethod = (...args) => {
    console.warn(`${prefix} run empty method...`);
  };
  const log = (...args) => console.log(msg(args));
  const warn = (...args) => console.warn(msg(args));
  const error = (...args) => console.error(msg(args));
  const douyu_address_pattern = /^https:\/\/www\.douyu\.((com)|(cn)).*/;
  const bilibili_address_pattern = /^https:\/\/.*\.bilibili\..*/;
  const huya_address_pattern = /^https:\/\/www\.huya\.((com)|(cn)).*/;
  const douyin_address_pattern = /^https:\/\/.*\.douyin\.((com)|(cn)).*/;
  const localhost = /^http:\/\/127\.0\.0\.1\.*|^http:\/\/localhost.*/;
  const local_url = window.location.href;
  const is_huya = huya_address_pattern.test(local_url);
  const is_douyu = douyu_address_pattern.test(local_url);
  const is_bilibili = bilibili_address_pattern.test(local_url);
  const is_douyin = douyin_address_pattern.test(local_url);
  const is_localhost = localhost.test(local_url);
  const wd = window.document;
  const wls = window.localStorage;
  const download_plugin_url = "https://greatest.deepsurf.us/zh-CN/scripts/449261-%E8%99%8E%E7%89%99%E7%9B%B4%E6%92%AD";
  const source_code_url = "https://github.com/wuxin0011/tampermonkey-script/tree/main/live-plugin";
  const isImage = (file) => /.*(\.(png|jpg|jpeg|apng|avif|bmp|gif|ico|cur|svg|tiff|webp))$/.test(file);
  const querySelector = (el, sel) => !!el && !!sel && el instanceof HTMLElement ? el.querySelector(sel) : el ? wd.querySelector(el) : emptyMethod;
  const querySelectorAll = (el, sel) => !!el && !!sel && el instanceof HTMLElement ? el.querySelectorAll(sel) : el ? wd.querySelectorAll(el) : emptyMethod;
  const addEventListener = (el, type, callback) => !!el && type && typeof callback === "function" ? el === wd || el instanceof HTMLElement ? el.addEventListener(type, callback, false) : false : false;
  const createElement = (tag) => !!tag && wd.createElement(tag);
  const appendChild = (el1, el2) => !!el1 && !!el2 && el1 instanceof HTMLElement && el2 instanceof HTMLElement && el1.appendChild(el2);
  const insertChild = (el1, el2) => !!el1 && !!el2 && el1 instanceof HTMLElement && el2 instanceof HTMLElement && el1.insertBefore(el2, el1.firstChild);
  const is_exculues = exculues.filter((url) => local_url.indexOf(url) !== -1).length !== 0;
  const addStyle = (str) => {
    if ((window == null ? void 0 : window.GM_addStyle) && typeof window.GM_addStyle == "function") {
      window.GM_addStyle(str);
    } else {
      let head = querySelector("head");
      let style = createElement("style");
      style.innerText = str;
      head.appendChild(style);
    }
  };
  const removeDOM = (element, realRemove = false) => {
    try {
      if (!(element instanceof HTMLElement)) {
        element = querySelector(element);
      }
      if (element instanceof HTMLElement) {
        if (realRemove) {
          element.remove();
        } else {
          element.style.display = "none";
        }
      }
    } catch (e) {
      error(e);
    }
  };
  const isArray = (a) => a && (a == null ? void 0 : a.length) > 0;
  const getLocalStore = (k, type = Array.name, isParse = true) => {
    let obj = wls.getItem(k);
    if (type === Array.name) {
      if (isParse && obj) {
        obj = JSON.parse(obj);
      }
      return Array.isArray(obj) ? obj : [];
    }
    if (type === Object.name) {
      if (isParse && obj) {
        obj = JSON.parse(obj);
      }
      return obj ? obj : {};
    }
    if (type === String.name) {
      return obj ? obj : "";
    }
    if (type === Boolean.name) {
      return obj === "true" || obj === true;
    }
    return obj;
  };
  const addLocalStore = (k, v = [], type = Array.name, isParse = true) => (type === Object.name || type === Array.name) && isParse ? wls.setItem(k, JSON.stringify(v)) : wls.setItem(k, v);
  const removeVideo = (selector, time1 = 1e3, maxCount = 10) => {
    let count = 0;
    let video_timer = setInterval(() => {
      try {
        const video2 = querySelector(selector);
        if (video2 && video2 instanceof HTMLVideoElement) {
          video2.pause();
        }
        removeDOM(video2, false);
        if (count >= maxCount) {
          clearInterval(video_timer);
        }
        count = count + 1;
      } catch (e) {
      }
    }, time1);
  };
  const throttle = (wait, func) => {
    let timerId = null;
    let lastArgs = null;
    const throttled = (...args) => {
      lastArgs = args;
      if (!timerId) {
        timerId = setTimeout(() => {
          func(...lastArgs);
          timerId = null;
          lastArgs = null;
        }, wait);
      }
    };
    throttled.cancel = () => {
      clearTimeout(timerId);
      timerId = null;
      lastArgs = null;
    };
    return throttled;
  };
  const intervalRemoveElement = (selectors, time = 160, maxCount = 1e3) => {
    if (!isArray(selectors)) {
      warn(`selectors 必须是数组 : ${selectors}`);
      return;
    }
    let count = 0;
    let timer = setInterval(() => {
      selectors.forEach((sel) => {
        removeDOM(sel, true);
      });
      if (count >= maxCount) {
        clearInterval(timer);
        return;
      }
      count = count + 1;
    }, time);
  };
  const loopDo = (callback, count = 100, wait = 100) => {
    if (typeof callback != "function") {
      warn("callback is a function!");
      return;
    }
    let timer = setInterval(() => {
      count--;
      if (count === 0) {
        clearInterval(timer);
      } else {
        callback(timer);
      }
    }, wait);
  };
  const findMark = (selector, callback, count = 100, wait = 100) => {
    if (!selector) {
      warn("selector not allow  or null !");
      return;
    }
    if (typeof callback != "function") {
      warn("callback is a function!");
      return;
    }
    loopDo((timer) => {
      try {
        let element = selector instanceof HTMLElement ? selector : querySelector(selector);
        if (element && element instanceof HTMLElement) {
          if (!element.mark) {
            callback(element);
            element.mark = true;
          } else {
            clearInterval(timer);
          }
        }
      } catch (e) {
        clearInterval(timer);
        error(e);
      }
    }, 100, 100);
    setTimeout(() => {
      let element = selector instanceof HTMLElement ? selector : querySelector(selector);
      if (element && element instanceof HTMLElement) {
        let isMark = element.getAttribute("mark");
        if (!isMark) {
          element.setAttribute("mark", true);
          callback(element);
        }
      }
    }, 5e3);
  };
  const backgroundNone = (element, selectors = [".layout-Main"], time = 100, maxCount = 500) => {
    if (!(element instanceof HTMLElement) || !isArray(selectors)) {
      warn(`element 参数应是 元素, selector 应该是元素选择器集合`);
      return;
    }
    let count = 0;
    let timer = setInterval(() => {
      selectors.forEach((sel) => {
        let b = querySelector(element, sel);
        if (!(b instanceof HTMLElement)) {
          return;
        }
        b.style.backgroundImage = "none";
      });
      if (count >= maxCount) {
        clearInterval(timer);
        return;
      }
      count = count + 1;
    }, time);
  };
  const uploadImage = (file, callback) => {
    try {
      if (!isImage(file == null ? void 0 : file.name)) {
        return alert("图片格式不正确!");
      }
      let fileReader = new FileReader();
      fileReader.readAsDataURL(file);
      fileReader.onerror = (e) => {
        return alert("图片解析失败!" + JSON.stringify(e));
      };
      fileReader.onload = (e) => {
        let base64 = e.target.result;
        let str = base64.slice(base64.indexOf(",") + 1);
        if (atob) {
          str = atob(str);
          let bytes = str.length;
          const size = (bytes / (1024 * 1024)).toFixed(2);
          if (size > 5) {
            if (confirm("图片保存失败,浏览器最大只能保存5MB大小图片,确认查看原因?")) {
              window.location.href = "https://developer.mozilla.org/zh-CN/docs/Web/API/File_and_Directory_Entries_API/Introduction";
            }
            return;
          }
          callback(base64);
        } else {
          alert("保存失败,当前浏览器不支持!");
        }
      };
    } catch (e) {
      alert("图片解析失败!");
    }
  };
  const findButton = (sel = "body", key = "full_screen_button_class_or_id", text = "全屏", tagName = "div") => {
    var _a, _b;
    const container = querySelector(sel);
    let classId = "";
    if (container) {
      const fullButton = querySelector(container, key);
      if (fullButton && fullButton instanceof HTMLElement && ((fullButton == null ? void 0 : fullButton.textContent) === text || (fullButton == null ? void 0 : fullButton.title) === text)) {
        classId = `${sel} ${fullButton.id ? fullButton.id : fullButton.className}`;
      }
      if (!classId) {
        const nodes = querySelectorAll(container, tagName);
        if (isArray(nodes)) {
          for (let i = 0; i < nodes.length; i++) {
            if (nodes[i] && nodes[i] instanceof HTMLElement && (((_a = nodes[i]) == null ? void 0 : _a.title) === text || ((_b = nodes[i]) == null ? void 0 : _b.textContent) === text)) {
              classId = `${sel} ${nodes[i].id ? nodes[i].id : nodes[i].className}`;
            }
          }
        }
      }
    }
    if (key && classId) {
      addLocalStore(key, classId, String.name, false);
    }
    return classId || key;
  };
  const addFullScreenEvent = (callback) => {
    if (typeof callback != "function") {
      returnn;
    }
    document.addEventListener("fullscreenchange", callback);
    document.addEventListener("webkitfullscreenchange", callback);
    document.addEventListener("mozfullscreenchange", callback);
    document.addEventListener("MSFullscreenChange", callback);
  };
  const handlerPromise = (result, callback) => {
    if (typeof callback !== "function") {
      warn("回调函数不能为空!");
      return;
    }
    if (!result) {
      warn("请求结果为空!");
      callback(result);
      return;
    }
    if (result instanceof Promise) {
      result.then((res) => {
        callback(res);
      }).catch((e) => {
        error(e);
      });
    } else {
      callback(result);
    }
  };
  const handlerDisplay = (element, isBlock) => {
    if (!(element && element instanceof HTMLElement)) {
      return;
    }
    if (isBlock) {
      if (!element.classList.contains("m-container-display-block")) {
        element.classList.add("m-container-display-block");
      }
      if (element.classList.contains("m-container-display-none")) {
        element.classList.remove("m-container-display-none");
      }
    } else {
      if (element.classList.contains("m-container-display-block")) {
        element.classList.remove("m-container-display-block");
      }
      if (!element.classList.contains("m-container-display-none")) {
        element.classList.add("m-container-display-none");
      }
    }
  };
  const support = {
    supportSearch() {
      return !is_douyin;
    },
    supportAdd() {
      return !is_douyin;
    },
    supportReset() {
      return !is_douyin;
    },
    supportBg() {
      return !is_douyin && !is_bilibili;
    },
    supportMenu() {
      return !is_douyin && !is_bilibili;
    },
    supportGift() {
      return !is_douyin && !is_bilibili;
    },
    supportAutoFullScreen() {
      return true;
    },
    supportAutoViewMaxPro() {
      return true;
    },
    supportTable() {
      return !is_douyin;
    },
    supportTheme() {
      return !is_douyin;
    }
  };
  class HostUser {
    constructor(roomId, name) {
      this.roomId = roomId;
      this.name = name;
    }
  }
  const isShowBg = () => wls.getItem("bg_is_first_key") === null ? true : getLocalStore("bg_show_key", Boolean.name);
  const isRisk = (obj) => obj ? JSON.stringify(obj).indexOf("非法访问") !== -1 : false;
  const isBVId = (keywords) => /.*\/BV(.*)/.test(keywords);
  const getBVId = (url) => {
    try {
      let videoBVId = "BV";
      if (/.*\/BV(.*)/.test(url)) {
        videoBVId += /.*\/BV(.*)\/.*/.test(url) ? url.match(/.*\/BV(.*)/)[1].match(/(.*)\/{1}.*/)[1] : url.match(/.*\/BV(.*)/)[1];
      }
      return videoBVId;
    } catch (error2) {
      warn("通过房间号获取up信息失败!,请检查是否 https://www.bilibili.com/video/xxxxxxx 空间地址...");
      return null;
    }
  };
  const isUserId = (keywords) => /https:\/\/space\.bilibili\.com\/\d+.*/.test(keywords) || /\d+/.test(keywords);
  const getUserId = (keywords) => {
    let isMatch = keywords.match(/https:\/\/space\.bilibili\.com.*\/(\d+).*/);
    if (isMatch) {
      try {
        return isMatch[1];
      } catch (error2) {
        warn("通过房间号获取up信息失败!,请检查是否 https://space.bilibili.com 空间地址...");
        return null;
      }
    }
    return keywords;
  };
  const getBiliBiliInfoByVideoID = async (url = window.location.href) => {
    if (!url) {
      return null;
    }
    let videoBVId = null;
    if (isBVId(url)) {
      videoBVId = getBVId(url);
    } else {
      videoBVId = url;
    }
    if (!videoBVId) {
      return null;
    }
    return await fetch(`https://api.bilibili.com/x/web-interface/wbi/view?bvid=${videoBVId}`, {
      method: "get",
      mode: "cors"
    }).then((res) => res.json());
  };
  const getBiliBiliInfoByUserId = async (userId) => {
    if (!isUserId(userId)) {
      return null;
    }
    userId = getUserId(userId);
    if (!userId) {
      return null;
    }
    log("user Id", userId);
    return await fetch(`https://api.bilibili.com/x/space/wbi/acc/info?mid=${userId}`, {
      method: "get",
      mode: "cors"
    }).then((res) => res.json());
  };
  const douyu = [
    "body",
    ".wm-general-bgblur",
    ".layout-Module-container",
    ".layout-Cover-list"
  ];
  const huya = [
    "body",
    ".js-responded-list",
    " #J_mainWrap",
    "#main_col",
    ".layout-Module-container"
  ];
  const darkImageCss = [.../* @__PURE__ */ new Set([...douyu, ...huya])];
  const cssUpdate = () => {
    darkImageCss.forEach((selector) => {
      const ele = querySelector(selector);
      if (ele) {
        ele.style.backgroundColor = isShowBg() ? "" : isNeedDark() ? "var(--w-bg-darker)" : "";
      }
    });
  };
  const DARK_THEME_KEY = "wx_dark_theme_key";
  const THEME_IS_AUTO = "wx_dark_theme_is_auto";
  const THEME_TYPE_KEY = "wx_dark_theme_type_key";
  const DARK_COLOR_VARIABLE = "--w-bg-darker";
  const theme = {
    light: "light",
    dark: "dark"
  };
  const DARK_THEME_TYPE = {
    "DEFAULT": "DEFAULT",
    "ORDINARY": "ORDINARY",
    "BLACK0": "BLACK0",
    "BLACK1": "BLACK1",
    "BLACK2": "BLACK2",
    "BLACK3": "BLACK3"
  };
  const DARK_TYPE = {
    [DARK_THEME_TYPE.DEFAULT]: {
      "name": "默认",
      "color": "#343b44"
    },
    [DARK_THEME_TYPE.ORDINARY]: {
      "name": "普通",
      "color": "#37404c"
    },
    [DARK_THEME_TYPE.BLACK0]: {
      "name": "深黑1",
      "color": "#22272e"
    },
    [DARK_THEME_TYPE.BLACK1]: {
      "name": "深黑2",
      "color": "#232222"
    },
    [DARK_THEME_TYPE.BLACK2]: {
      "name": "深黑3",
      "color": "#171514"
    },
    [DARK_THEME_TYPE.BLACK3]: {
      "name": "深黑4",
      "color": "#121212"
    }
  };
  const isDark = () => wls.getItem(DARK_THEME_KEY) === theme.dark;
  const isAutoDark = () => wls.getItem(THEME_IS_AUTO) === THEME_IS_AUTO || wls.getItem(THEME_IS_AUTO) === null;
  const LOCAL_THEME_TYPE = wls.getItem(THEME_TYPE_KEY) === null ? DARK_THEME_TYPE.DEFAULT : wls.getItem(THEME_TYPE_KEY);
  const darkColor = () => {
    let type = wls.getItem(THEME_TYPE_KEY) === null ? DARK_THEME_TYPE.DEFAULT : wls.getItem(THEME_TYPE_KEY);
    let l1 = DARK_TYPE[type];
    return (l1 == null ? void 0 : l1.color) ?? "#121212";
  };
  const updateStyleColor = (key, value) => document.documentElement.style.setProperty(key, value);
  const updateDarkStyleType = (type) => {
    wls.setItem(THEME_TYPE_KEY, type);
    updateDarkClass();
  };
  const toggleColorMode = (event, isClick = false) => {
    if (!event) {
      return;
    }
    try {
      const isAppearanceTransition = (document == null ? void 0 : document.startViewTransition) && !window.matchMedia("(prefers-reduced-motion: reduce)").matches;
      if (!isAppearanceTransition) {
        log("不支持快照切换...,将使用普通方式切换主题");
        isClick ? clickUpdateTheme() : updateDarkClass();
        return;
      }
    } catch (error2) {
      isClick ? clickUpdateTheme() : updateDarkClass();
      return;
    }
    const x = event.clientX;
    const y = event.clientY;
    const endRadius = Math.hypot(
      Math.max(x, innerWidth - x),
      Math.max(y, innerHeight - y)
    );
    const transition = document.startViewTransition(() => {
      isClick ? clickUpdateTheme() : updateDarkClass();
    });
    transition.ready.then(() => {
      const clipPath = [
        `circle(0px at ${x}px ${y}px)`,
        `circle(${endRadius}px at ${x}px ${y}px)`
      ];
      document.documentElement.animate(
        {
          clipPath: isNeedDark() ? [...clipPath].reverse() : clipPath
        },
        {
          duration: 400,
          easing: "ease-out",
          pseudoElement: isNeedDark() ? "::view-transition-old(root)" : "::view-transition-new(root)"
        }
      );
    });
  };
  const clickUpdateTheme = () => {
    const classList = document.documentElement.classList;
    if (!classList.contains("dark")) {
      classList.add("dark");
      wls.setItem(DARK_THEME_KEY, theme.dark);
    } else if (classList.contains("dark")) {
      classList.remove("dark");
      wls.setItem(DARK_THEME_KEY, theme.light);
    }
    cssUpdate();
  };
  const autoDarkType = () => {
    let hour = (/* @__PURE__ */ new Date()).getHours();
    console.log("current hours:", hour);
    let type = DARK_THEME_TYPE.DEFAULT;
    if (isAutoDark()) {
      if (hour >= 0 && hour <= 7) {
        type = DARK_THEME_TYPE.BLACK3;
      } else if (hour > 7 && hour <= 17)
        ;
      else if (hour > 17 && hour < 18) {
        type = DARK_THEME_TYPE.ORDINARY;
      } else if (hour >= 18 && hour < 19) {
        type = DARK_THEME_TYPE.BLACK0;
      } else if (hour >= 19 && hour < 20) {
        type = DARK_THEME_TYPE.BLACK1;
      } else if (hour >= 21 && hour < 22) {
        type = DARK_THEME_TYPE.BLACK2;
      } else if (hour >= 22 && hour <= 23) {
        type = DARK_THEME_TYPE.BLACK3;
      }
    }
    return type;
  };
  const autoDarkColor = () => {
    let color = "";
    if (isAutoDark()) {
      let type = autoDarkType();
      color = DARK_TYPE[type].color;
    } else {
      color = darkColor();
    }
    return color;
  };
  const isNeedDark = () => ((/* @__PURE__ */ new Date()).getHours() < 7 || (/* @__PURE__ */ new Date()).getHours() >= 17) && isAutoDark() || isDark();
  const updateDarkClass = () => {
    if (!support.supportTheme()) {
      return;
    }
    if (isNeedDark()) {
      updateStyleColor(DARK_COLOR_VARIABLE, autoDarkColor());
    }
    const classList = document.documentElement.classList;
    if (!classList.contains("dark") && isNeedDark()) {
      classList.add("dark");
    } else if (classList.contains("dark") && !isNeedDark()) {
      classList.remove("dark");
    }
    cssUpdate();
  };
  const themeOptions = () => {
    let str = "";
    let local_theme = LOCAL_THEME_TYPE;
    for (let [k, v] of Object.entries(DARK_TYPE)) {
      str += `<option value="${k}" ${local_theme == k ? "selected " : ""} class="m-select-option">${v.name}</option>`;
    }
    return str;
  };
  const root$1 = `
html {
  --w-brand: #3aa675;
  --w-light: #e5e7eb;
  --w-brand-light: #349469;
  --w-bg: #22272e;
  --w-bg-light: #2b313a;
  --w-bg-lighter: #262c34;
  --w-bg-dark: #343b44;
  --w-bg-darker: #37404c;
  --w-bg-darker: var(--w-bg-dark);
  --w-text: #adbac7;
  --w-text-light: #cbd4dc;
  --w-text-lighter: #cdd6dd;
  --w-text-lightest: #8094a8;
  --w-border: #3e4c5a;
  --w-border-dark: #34404c;
  --w-blue-link-hover:#00aeec;
  --w-skeleton:#494f57;
  --w-white: #fff;
}


::view-transition-old(root),
::view-transition-new(root) {
  animation: none;
  mix-blend-mode: normal;
}
::view-transition-old(root) {
  z-index: 10;
}
::view-transition-new(root) {
  z-index: 10000;
}
.dark::view-transition-old(root) {
  z-index: 10000;
}
.dark::view-transition-new(root) {
  z-index: 10;
}


.m-container-display-block{
  display:block !important ;
}
.m-container-display-none{
  display:none  !important ;
}




::-webkit-scrollbar {
  width: 6px !important;
  background-color: teal !important;
}

::-webkit-scrollbar-track {
  background-color: #eee !important;
}

::-webkit-scrollbar-thumb {
  background-color: var(--w-blue-link-hover) !important;
  border-radius: 6px !important;
}


.dark ::-webkit-scrollbar {
  width: 6px !important;
  background-color: teal !important;
}

.dark ::-webkit-scrollbar-track {
  background-color: var(--w-text) !important;
}

.dark ::-webkit-scrollbar-thumb {
  background-color: var(--w-bg-light) !important;
  border-radius: 6px !important;
}



`;
  const liveDarkCss = `

${root$1}


  .dark.m-container {
    --m-container-background-color: var(--w-bg-darker);
  }
  

  .dark .m-select-dark-option,
  .dark .m-select-dark,.dark .m-dark-type-select,
  .dark.m-container {
    background-color: var(--m-container-background-color) ;
    color:var(--w-text-light) ;
  }


  .dark.m-container .m-link,
  .dark.m-container .m-link:visited {
    color: var(--w-text) ;
  }
  


  .dark.m-container table tr,
  .dark.m-container table tbody tr:nth-child(1) 
   {
    border-color: var(--w-text-light) ;
   }





`;
  const css$5 = `
${root$1}
.m-container,
  .m-container .btn,
  .m-container table,
  .m-container table tbody,
  .m-container table thead,
  .m-container table tr {
    margin: 0 ;
    padding: 0 ;
    border: none;
    outline: none;
  }
  
  .m-container {
    --m-font-color: #fff;
    --m-container-background-color: #fff;
    --m-container-width: 800px;
    --m-container-height: 400px;
    --m-container-operation-right-width: 150px;
    --m-container-input-width: ${is_bilibili ? "200px" : "100px"};
    --m-container-box-transition: all 0.5s ease-in-out;
    --m-container-select-width: var(--m-container-input-width);
    --m-container-input-outline: 1px solid rgba(8, 125, 235, 0.6) ;
  }
  
  .m-container {
    box-sizing: border-box ;
    position: fixed ;
    flex-direction: column ;
    width: var(--m-container-width) ;
    height: var(--m-container-height) ;
    top: 100px ;
    left: 50% ;
    border-radius: 10px ;
    overflow: hidden ;
    font-size:14px;
    background-color: var(--m-container-background-color) ;
    z-index: ${is_douyin ? "10" : "100000000"} ;
    padding: 15px ;
    transition: var(--m-container-box-transition) ;
    box-shadow: 20px 20px 10px rgba(0, 0, 0, 0.1),
      -1px -2px 18px rgba(0, 0, 0, 0.1) ;
  
    opacity: 0;
    font-family: "Arial","Microsoft YaHei","黑体","宋体",sans-serif;
    transform: translate(-50%, -150%);
  }
  
  .m-container-is-active {
    opacity: 1;
    transform: translate(-50%, 0%);
    z-index:100000000 ;
  }
  
  .m-container-box {
    display: flex ;
    flex-direction: column ;
    width: 100% ;
    height: 100% ;
  }
  
  .m-container .operation {
    box-sizing: border-box ;
    height: auto ;
    justify-content: start ;
  }
  
  
  .m-container input[type="text"] {
    width: var(--m-container-input-width) ;
    box-sizing: border-box ;
    border: 1px solid rgba(8, 125, 235, 0.6) ;
    outline: none ;
    padding: 5px 10px ;
    border-radius: 20px ;
    transition: var(--m-container-box-transition);
  }
  
  .m-container input:focus {
    border: 1px solid rgba(8, 125, 235, 1) ;
  }
  
  .m-container .operation input[type="checkbox"] {
    display: inline ;
  }
  
  .m-container .operation input[type="file"] {
    display: none ;
  }
  
  .m-container table {
    position: relative ;
    box-sizing: border-box ;
    overflow: hidden ;
    text-align: left ;
    flex: 1 ;
    display: flex ;
    flex-direction: column ;
  }
  
  .m-container table tr {
    margin: 5px 0 ;
    display: flex ;
    border-bottom: 1px solid rgba(0, 0, 0, 0.4) ;
    justify-content: space-between;
  }
  
  .m-container table tr td:nth-child(1),
  .m-container table thead th:nth-child(1) {
    width: 50px;
    text-align: center ;
  }
  
  .m-container table tr td:nth-child(2),
  .m-container table tr td:nth-child(3),
  .m-container table tr td:nth-child(4),
  .m-container table thead th:nth-child(2),
  .m-container table thead th:nth-child(3),
  .m-container table thead th:nth-child(4) {
    flex: 1 ;
    text-align: center ;
    white-space: nowrap ;
    overflow: hidden ;
    text-overflow: ellipsis ;
  }
  
  .m-container table tbody {
    flex: 1 ;
    overflow: auto ;
  }
  
  .m-container table th,
  .m-container table td {
    padding: 10px ;
    font-size:14px;
  }
  
  .m-container table tbody tr:nth-child(1) {
    border-bottom: 1px solid rgba(0, 0, 0, 0.4) ;
  }
  
  .m-container .m-link,
  .m-container .m-link:visited {
    color: teal ;
  }
  
  .m-container .m-link:hover {
    color: blue ;
    text-decoration: underline ;
  }
  
  .m-container .btn {
    cursor: pointer ;
    padding: 5px 8px ;
    border: none ;
    max-width:50px ;
    color: var(--m-font-color) ;
    font-size: 12px ;
    border-radius: 20px ;
    margin: 0 ;
    background-color: rgba(166, 169, 173, 1) ;
    z-index: 1000 ;
    outline: none ;
    font-family: "Arial","Microsoft YaHei","黑体","宋体",sans-serif;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4), 0px 0px 1px rgba(0, 0, 0, 0.4) ;
  }
  
  .m-container .btn:hover {
    box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1) ;
  }
  
  .m-container .btn:hover {
    background-color: rgba(166, 169, 173, 0.6) ;
  }
  
  .m-container .btn-primary {
    background-color: rgba(64, 158, 255, 1) ;
  }
  
  .m-container .btn-primary:hover {
    background-color: rgba(64, 158, 255, 0.6) ;
  }
  
  .m-container .btn-success {
    background-color: rgba(103, 194, 58, 1) ;
  }
  
  .m-container .btn-success:hover {
    background-color: rgba(103, 194, 58, 0.6) ;
  }
  
  .m-container .btn-info {
    background-color: rgba(119, 119, 119, 1) ;
  }
  
  .m-container .btn-info:hover {
    background-color: rgba(119, 119, 119, 0.6) ;
  }
  
  .m-container .btn-warning {
    background-color: rgba(230, 162, 60, 1) ;
  }
  
  .m-container .btn-warning:hover {
    background-color: rgba(230, 162, 60, 0.6) ;
  }
  
  .m-container .btn-danger {
    background-color: rgba(245, 108, 108, 1) ;
  }
  
  .m-container .btn-danger:hover {
    background-color: rgba(245, 108, 108, 0.6) ;
  }
  
  #m-container-box1 {
    position: absolute ;
    z-index: 10000000 ;
    transition: var(--m-container-box-transition) ;
    width: 100% ;
    height: 100% ;
  }
  
  #m-container-box2 {
    position: absolute ;
    z-index: 9999 ;
    transition: var(--m-container-box-transition) ;
    width: 100% ;
    height: 100% ;
  }
  
  .m-ani-left-is-active {
    transform: translateX(0) ;
    visibility: visible ;
    opacity: 1 ;
  }
  
  .m-ani-left-is-close {
    transform: translateX(-100%) ;
    visibility: hidden ;
    opacity: 0 ;
  }
  
  .m-ani-right-is-active {
    transform: translateX(0) ;
    visibility: visible ;
    opacity: 1 ;
  }
  
  .m-ani-right-is-close {
    transform: translateX(100%) ;
    visibility: hidden ;
    opacity: 0 ;
  }
  
  .m-type-container .m-type-item {
    display: flex ;
    height: 30px ;
  }
  
  .m-type-container .m-type-item .m-type-item-left {
    flex: 1 ;
    position: relative ;
    box-sizing: border-box ;
    overflow: hidden ;
  }
  
  .m-type-container .m-type-item .m-type-item-right {
    width: var(--m-container-operation-right-width);
    text-align: center ;
  }
  
  .m-type-container .m-type-item .m-type-item-left .m-select-option-container,
  .m-type-container .m-type-item .m-type-item-left .m-select-input-container {
    transition: var(--m-container-box-transition) ;
    position: absolute ;
    width: 100% ;
  }
  
  .m-type-container .m-select {
    display: flex ;
  }
  
  .m-type-container .m-select .m-select-item {
    margin-right: 10px ;
  }
  
  .m-type-container .m-select .m-select-item:last-child {
    margin-right: 0 ;
  }
  
  .m-type-container .m-select select {
    width: 100px ;
    color: rgba(119, 119, 119, 0.9) ;
  }
  
  .m-type-container .m-select select::placeholder {
    color: rgba(119, 119, 119, 0.9) ;
  }
  
  .m-type-container .m-tag-select {
    width: calc(var(--m-container-select-width)/2) ;
    outline: none ;
    border: 1px solid rgba(8, 125, 235, 0.6) ;
    padding: 5px 8px ;
    padding: 5px 10px ;
  }
  
  .m-container select {
    border: 1px solid rgba(8, 125, 235, 1) ;
  }
  
  
  .m-type-container .m-select .m-option-default {
    color: rgba(119, 119, 119, 0.6) ;
  }
  
  .m-type-container input[type="text"] {
    width: 350px ;
  }
  
  .m-type-container .m-select input {
    width: var(--m-container-input-width) ;
  }
  
  .m-type-container .m-search-msg {
    color: red ;
  }
  

  .m-container-display-block{
     display:block !important;
  }
  .m-container-display-none{
     display:none !important;
  }

  .m-container .m-link:hover {
    color: var(--w-text-light) ;
    text-decoration: underline ;
  }
  
  


  ${liveDarkCss}

`;
  const htmlTemplate = (isShowBg2, isShowMenu, isShowFullScreen, isShowGift, isShowLogo, isMaxPro = true) => {
    return `
    <div class="m-container-box" id="m-container-box2">
        <div class="operation">
            ${support.supportSearch() ? `<input type="text" placeholder="房间号或者名称...">` : ``}
            ${support.supportAdd() ? `<button class="btn btn-primary add-room" title="复制地址栏房间号,手动添加房间,也可以通过点击房间名称添加">添加</button>` : ``}
            ${support.supportReset() ? `<button class="btn btn-success clear-room" title="重置表格数据">重置</button>` : ``}
            ${support.supportTheme() ? `<button class="btn btn-info room-theme" title="${isNeedDark() ? "点击切换到白天模式" : "点击切换到黑夜模式"}">${isNeedDark() ? "白天" : "黑夜"}</button>` : ``}
            ${support.supportBg() ? `<button class="btn btn-warning bg-btn" title="上传背景图">背景</button>` : ``}
            ${support.supportBg() ? `<input type="file" id="file">` : ``}
            ${support.supportBg() ? `<input type="checkbox" id="checkbox1" ${isShowBg2 ? "checked" : ""} class="checkbox" title="是否显示背景" />背景` : ``}
            ${support.supportMenu() ? `<input type="checkbox" id="checkbox2" ${isShowMenu ? "checked" : ""} class="checkbox" title="是否显示左侧菜单"/>菜单 ` : ``}
            ${` <input type="checkbox" id="checkbox3" ${isShowFullScreen ? "checked" : ""} class="checkbox" title="自动全屏"/>全屏`}
            ${support.supportGift() ? `<input type="checkbox" id="checkbox4" ${isShowGift ? "checked" : ""} class="checkbox" title="显示礼物栏"/>礼物` : ``}
            <input type="checkbox" id="checkbox5" ${isShowLogo ? "checked" : ""} class="checkbox" title="关闭或者显示插件Logo. ctrl+alt+j 可唤醒"/>logo
            ${`<input type="checkbox" id="checkbox6" ${isMaxPro ? "checked" : ""} class="checkbox" title="自动最高画质"/>画质`}
            ${support.supportTheme() ? `<input type="checkbox" id="m-dark-is-auto" ${isAutoDark() ? "checked" : ""} class="checkbox" title="自动调整主题,根据时间段改变"/>自动` : ``}
            ${support.supportTheme() ? `<select class="m-dark-type-select" id="m-dark-select">
                                            ${themeOptions()}
                                        </select>` : ``}
            <a class="m-link" href="https://greatest.deepsurf.us/zh-CN/scripts/449261-%E8%99%8E%E7%89%99%E7%9B%B4%E6%92%AD" target="_blank" title="更新、反馈">更新</a>
            <button class="btn btn-info btn-close-container" title="关闭 , ctrl+alt+j 可唤醒" >关闭</button>
        </div>
        <table class="${support.supportTable() ? "" : "m-container-display-none"}">
            <thead>
                <th>序号</th>
                <th>名称</th>
                <th>房间号</th>
                <th>操作</th>
            </thead>
            <tbody>
            </tbody>
        </table>
        </div>
`;
  };
  class LivePluginElement extends HTMLElement {
    constructor() {
      super();
      this.attachShadow({ mode: "open" });
      const style = document.createElement("style");
      style.innerHTML = css$5;
      this.shadowRoot.appendChild(style);
    }
    createContainer(isShowBg2, isShowMenu, isShowFullScreen, isShowGift, isShowLogo, isMaxPro = true) {
      const livePlugin = document.createElement("live-plugin-element");
      const container = document.createElement("div");
      container.className = `${isNeedDark() ? "dark" : ""} m-container`;
      container.innerHTML = htmlTemplate(isShowBg2, isShowMenu, isShowFullScreen, isShowGift, isShowLogo, isMaxPro);
      livePlugin.shadowRoot.appendChild(container);
      document.querySelector("body").append(livePlugin);
      return container;
    }
  }
  const iconLogo = () => {
    let logo = "none";
    if (is_douyu) {
      logo = `<svg t="1694231763777" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5947" width="40" height="40"><path d="M838.45600394 295.68265482c63.56182914-60.97275259 162.72346075-74.95376592 162.72346075-74.95376593s-6.08432987-74.95376592-101.10343901-106.41104592c-136.57378765-43.49648592-212.17482272 19.41807408-212.17482272 19.41807406S517.15160494 3.24645925 346.53146074 92.18123852s-291.27111111 332.04906667-291.27111111 332.04906666c65.63309037 81.03809581 234.31142717 82.9799032 234.31142717 81.68536495-20.0653432 4.66033778-51.5226232 28.73874963-49.58081582 28.73874962-71.58796642-20.71261235-236.25323457 74.95376592-210.88028445 141.88139456 26.14967309 66.92762864 257.74256987 49.58081581 257.74256989 49.58081582s47.50955457 35.47034864 37.54160988 35.47034863c-124.53458173-10.09739852-144.59992494 55.53569185-144.59992494 57.60695309 31.45728 0 222.27222124 51.5226232 222.27222122 51.52262321s31.45728 135.92651852 61.62002173 137.86832592c29.51547259 2.07126124 55.53569185-49.58081581 55.53569185-51.5226232 37.54160987-37.54160987 27.44421136-116.50844445 24.07841186-120.52151309 18.12353581-10.09739852 101.10343902-35.47034864 245.70336395-187.44914172s55.40623803-349.3958795 49.45136197-353.40894815z m-805.97952789 371.53248394c0-81.03809581 186.15460347-140.5868563 186.80187259-124.53458173-24.07841185 56.95968395 0 96.44310124 0 96.44310124l-37.54160988 33.52854123 51.52262321 2.07126125s29.51547259 41.55467852 31.45728 43.49648592c-131.91344987 11.9097521-228.87436642-14.23992098-232.24016592-51.00480791zM223.29141728 653.10467161v8.67340642h-8.02613728l8.02613728-8.67340642z m204.14868544 121.16878222c-2.07126124 6.08432987-20.71261235 12.03920592-20.71261236 12.03920592l-4.01306864-12.03920592c-0.12945383 0 26.66748839-5.30760691 24.725681 0z" fill="#999999" p-id="5948"></path><path d="M361.80701235 124.28578765c-48.80409283 0-88.41696395 36.76488691-88.41696396 82.97990321s39.48341728 82.9799032 88.41696396 82.97990322 88.41696395-36.76488691 88.41696395-82.97990322-39.61287111-82.9799032-88.41696395-82.97990321z m0 141.88139457c-11.3919368 0-23.43114272-3.3657995-32.75181827-10.09739852 11.3919368 0 20.71261235-9.32067555 20.71261234-20.71261234s-9.32067555-20.71261235-20.71261234-20.71261234c-10.74466765 0-19.41807408 8.02613728-20.71261236 18.1235358-4.01306864-8.02613728-6.08432987-16.6995437-6.08432987-26.14967309 0-32.75181827 26.79694222-58.90149136 59.5487605-58.90149136h5.3076069c-11.3919368 6.08432987-19.41807408 18.12353581-19.41807407 32.10454913 0 20.0653432 16.6995437 36.76488691 36.76488691 36.76488692 16.05227457 0 30.16274173-10.09739852 34.82307951-24.72568099 1.29453827 4.66033778 2.07126124 10.09739852 2.07126123 14.7577363 0 33.52854124-26.79694222 59.5487605-59.54876048 59.54876049z m-22.13660445 204.14868543s27.44421136 18.12353581 75.60103506 0l-18.1235358-25.37295012c0.12945383 0-57.47749925 25.37295013-57.47749926 25.37295012z m115.21390618-62.91456c-14.11046717 14.11046717-49.58081581 31.45728-49.58081581 31.45728s51.5226232 29.51547259 63.56182914 21.35988149c12.03920592-7.24941431-9.96794469-50.74590025-13.98101333-52.81716149z m43.49648592-33.3990874c-12.03920592 11.3919368-37.54160987 29.51547259-37.54160987 29.51547258l47.50955456 35.47034865c10.09739852-12.16865975-1.94180741-64.98582124-9.96794469-64.98582123z m22.00715061-31.45728c-2.07126124 9.32067555-13.33374419 23.43114272-17.34681283 26.14967308 10.74466765 5.30760691 28.73874963 24.72568098 28.73874963 24.72568098 11.3919368-16.05227457-3.23634569-48.1568237-11.3919368-50.87535406z" fill="#FFFFFF" p-id="5949"></path><path d="M777.48325136 240.7942321c8.02613728-2.07126124 53.59388445 45.56774717 47.50955456 47.50955457 77.6722963-85.05116445 146.54173235-82.9799032 146.54173235-85.05116445-20.0653432-51.5226232-113.14264494-74.95376592-113.14264494-74.95376592-140.5868563-25.37295013-158.7103921 37.54160987-162.72346075 39.48341728-162.72346075-118.45025185-317.29133037-47.50955457-315.34952295-49.5808158 105.11650765 23.43114272 75.60103506 108.48230717 75.60103506 108.48230716s-14.11046717 85.05116445-111.07138371 73.01195853c-97.09037037-12.03920592-81.03809581-120.52151309-81.0380958-120.5215131-97.7376395 78.96683457-186.80187259 241.04302617-186.8018726 241.04302616 10.09739852 16.05227457 119.09752098 53.59388445 154.56786964 55.53569186 210.23301531-4.01306864 325.31746765-217.61188347 329.33053629-217.61188345 44.79102419 73.01195852 33.52854124 148.61299358-12.03920593 187.44914173-48.54518518 41.55467852-186.41351111 44.14375506-186.4135111 44.14375506 20.0653432 52.16989235 161.29946864 30.81001086 161.29946865 30.81001086C519.09341235 592.13191902 360.38302024 615.56306173 354.42814419 615.56306173 519.09341235 688.57502025 655.6672 539.96202667 657.60900741 537.89076543c-9.32067555 71.58796642-112.49537581 117.15571358-114.43718322 117.15571359 12.03920592 56.95968395-99.03217778 153.9206005-140.58685629 145.8944632-101.10343902-43.49648592-170.74959803 2.07126124-170.74959804 2.07126125l93.07730174 25.37295011s97.09037037 10.09739852 101.10343901 49.58081581 37.54160987 86.99297185 41.55467853 86.99297185c97.09037037-70.94069728 47.50955457-133.85525728 47.50955456-133.85525729s184.73061136-73.01195852 287.9053116-271.07631408-33.52854124-317.29133037-25.50240394-319.23313777zM730.62096592 181.89274075c-31.45728-8.02613728-7.37886815-24.07841185 18.1235358-37.54160989 86.99297185-28.73874963 129.84218864 6.73159902 127.90038124 6.73159901-100.45616987-41.55467852-146.02391703 30.81001086-146.02391704 30.81001088z" fill="#D8D8D8" p-id="5950"></path><path d="M331.64427061 613.62125431c98.38490864-27.44421136 117.80298272-50.22808494 117.80298272-50.22808492s-91.0060405-56.18296098-139.93958717-56.95968396c-48.80409283-0.64726914-111.84810667 68.22216691-92.43003258 105.76377679 61.62002173 132.56071902 178.77573531 147.96572445 178.7757353 147.96572445 89.06423309-8.02613728 107.05831506-86.99297185 109.1295763-91.0060405-107.70558419 2.07126124-169.97287506-49.45136197-173.33867457-55.53569186z m-80.26137283 35.47034866c10.09739852-26.79694222 70.94069728-79.6141037 70.94069728-79.61410372-10.74466765-10.09739852-70.94069728-29.51547259-70.94069728-29.51547258 14.11046717-6.08432987 81.03809581 20.71261235 81.0380958 20.71261235 60.19602963-32.75181827 66.2803595-16.6995437 66.2803595-16.69954371-40.90740939 9.45012939-147.31845531 105.11650765-147.3184553 105.11650766z" fill="#FFFFFF" p-id="5951"></path><path d="M331.64427061 613.62125431c98.38490864-27.44421136 117.80298272-50.22808494 117.80298272-50.22808492s-91.0060405-56.18296098-139.93958717-56.95968396c-48.80409283-0.64726914-93.72457086 66.2803595-90.35877135 91.65330963 9.32067555 19.41807408 19.41807408 36.76488691 30.16274172 51.52262321 12.03920592-27.44421136 70.29342815-77.6722963 70.29342816-77.6722963-10.74466765-10.09739852-70.94069728-29.51547259-70.94069728-29.51547258 14.11046717-6.08432987 81.03809581 20.71261235 81.03809579 20.71261234 60.19602963-32.75181827 66.2803595-16.6995437 66.28035952-16.6995437-38.83614815 9.32067555-133.85525728 93.07730173-146.54173236 104.4692385 62.91456 84.40389531 145.8944632 95.66637827 145.89446322 95.66637829 89.06423309-8.02613728 107.05831506-73.01195852 109.12957628-77.02502717-107.18776889 1.68289975-169.45505975-49.83972347-172.82085925-55.92405334z" fill="#FFFFFF" p-id="5952"></path><path d="M839.75054222 292.96412445c63.56182914-61.62002173 163.37072987-74.95376592 163.37072987-74.95376593s-6.08432987-74.95376592-101.10343901-107.05831505c-137.2210568-43.49648592-212.82209185 20.0653432-212.82209185 20.0653432S517.79887408 0.39847506 346.40200691 89.46270815 54.48362666 421.51177482 54.48362666 421.51177482c65.63309037 81.03809581 234.31142717 82.9799032 234.31142717 82.33263407-20.0653432 4.66033778-51.5226232 28.73874963-49.58081581 28.73874963-71.58796642-21.35988148-236.25323457 74.95376592-210.88028444 141.88139457 26.14967309 66.92762864 258.38983902 49.58081581 258.389839 49.5808158s47.50955457 35.47034864 37.54160989 35.47034864c-124.53458173-9.32067555-144.59992494 55.53569185-144.59992495 57.60695308 32.10454914 0 222.91949037 51.5226232 222.91949038 51.52262322s32.10454914 136.57378765 61.62002173 138.51559506c30.16274173 2.07126124 55.53569185-49.58081581 55.53569185-51.5226232 37.54160987-37.54160987 28.0914805-116.50844445 24.07841185-120.5215131 18.12353581-10.09739852 101.10343902-35.47034864 246.35063309-188.09641086 144.59992494-151.84933925 55.66514569-350.04314864 49.5808158-354.05621728zM31.82920691 665.14387753c0-81.03809581 186.15460347-141.23412543 186.80187259-124.53458172-24.07841185 57.60695309 0 97.09037037 0 97.09037036l-37.54160987 33.52854124 51.5226232 2.07126123s30.16274173 41.55467852 32.10454914 43.49648593c-132.56071902 11.9097521-228.87436642-14.7577363-232.88743506-51.65207704z m191.46221037-13.98101334v8.67340642h-8.02613728l8.02613728-8.67340642z m204.79595457 121.81605136c-2.07126124 6.08432987-20.71261235 12.03920592-20.71261235 12.03920593l-4.01306864-12.03920593s26.66748839-6.08432987 24.72568099 0z" p-id="5953"></path><path d="M361.80701235 120.91998815c-48.80409283 0-88.41696395 37.54160987-88.41696396 82.97990321s39.48341728 82.9799032 88.41696396 82.97990321 88.41696395-37.54160987 88.41696395-82.97990321-39.61287111-82.9799032-88.41696395-82.97990321z m0 142.65811754c-12.03920592 0-23.43114272-3.3657995-32.75181827-10.09739852 11.3919368 0 20.71261235-9.32067555 20.71261234-20.71261235s-9.32067555-20.71261235-20.71261234-20.71261235c-10.74466765 0-19.41807408 8.02613728-20.71261236 18.1235358-4.01306864-8.02613728-6.08432987-16.6995437-6.08432987-26.14967309 0-32.75181827 26.79694222-59.5487605 59.5487605-59.54876049h6.08432987c-11.3919368 6.08432987-19.41807408 18.12353581-19.41807407 32.10454914 0 20.0653432 16.6995437 36.76488691 36.76488691 36.76488692 16.05227457 0 30.16274173-10.74466765 34.82307951-24.725681 1.29453827 4.66033778 2.07126124 10.09739852 2.07126123 14.7577363-0.77672297 33.39908741-27.57366518 60.19602963-60.32548345 60.19602964z m-22.13660445 204.79595456s28.0914805 18.12353581 75.60103506 0l-18.1235358-25.37295012c0.12945383-0.12945383-57.47749925 25.37295013-57.47749926 25.37295012z m115.8611753-63.56182914c-14.11046717 14.11046717-50.22808494 31.45728-50.22808493 31.45728s52.16989235 29.51547259 63.56182914 22.13660444c12.03920592-8.15559111-9.32067555-51.65207703-13.33374421-53.59388444z m43.49648594-33.52854124c-12.03920592 11.3919368-37.54160987 29.51547259-37.54160989 29.5154726l47.50955458 35.47034864c10.09739852-11.3919368-1.94180741-64.98582124-9.96794469-64.98582124z m22.13660444-31.45728c-2.07126124 9.32067555-13.33374419 23.43114272-17.34681284 26.1496731 10.74466765 5.30760691 28.73874963 24.72568098 28.73874962 24.72568098 11.26248297-16.05227457-3.3657995-48.1568237-11.39193678-50.87535408z" fill="#FFFFFF" p-id="5954"></path><path d="M778.1305205 238.07570173c8.02613728-2.07126124 53.59388445 45.56774717 47.50955456 47.50955457 77.6722963-85.05116445 147.31845531-82.9799032 147.3184553-85.05116445-20.0653432-51.5226232-113.14264494-74.95376592-113.14264493-74.95376593-141.23412543-25.37295013-159.35766124 37.54160987-163.37072988 39.48341728-162.72346075-119.09752098-317.9385995-48.1568237-315.99679209-50.22808493 105.11650765 23.43114272 75.60103506 109.1295763 75.60103505 109.1295763s-14.11046717 85.05116445-111.0713837 73.01195852c-97.09037037-12.03920592-81.68536494-120.52151309-81.68536495-120.52151309C165.68446419 255.55196839 76.62023111 417.49870617 76.62023111 417.49870617c10.09739852 16.05227457 119.09752098 53.59388445 155.34459259 55.53569186 210.23301531-4.01306864 325.9647368-217.61188347 329.3305363-217.61188346 44.79102419 73.01195852 33.52854124 149.26026272-12.03920592 188.09641086-48.93354667 41.55467852-186.80187259 44.27320889-186.8018726 44.27320888 20.0653432 52.16989235 161.94673778 30.81001086 161.94673777 30.81001087-4.66033778 70.94069728-164.01799902 95.01910914-169.32560592 95.01910913 165.31253728 73.01195852 301.88632494-75.60103506 303.95758617-77.67229628-10.09739852 72.23523555-113.14264494 117.80298272-115.08445234 117.80298272 12.03920592 57.60695309-99.03217778 153.9206005-141.23412544 146.54173234-101.10343902-43.49648592-170.74959803 2.07126124-170.74959802 2.07126122l93.72457087 25.37295014s97.7376395 10.09739852 101.10343901 49.5808158c4.01306864 39.48341728 37.54160987 86.99297185 41.55467851 86.99297185 97.7376395-70.94069728 47.50955457-134.50252642 47.50955457-134.50252641s184.73061136-73.01195852 288.55258075-271.72358322-34.30526419-318.58586864-26.27912691-320.00986074z m-46.86228544-59.54876049c-32.10454914-8.02613728-7.37886815-24.07841185 18.1235358-37.54160988 87.64024098-28.73874963 130.48945778 6.73159902 128.54765037 6.73159901-100.45616987-41.55467852-146.67118617 30.81001086-146.67118617 30.81001087z" fill="#D8D8D8" p-id="5955"></path><path d="M331.64427061 611.67944691c98.38490864-27.44421136 118.45025185-50.22808494 118.45025186-50.22808494s-91.65330963-56.18296098-139.93958717-57.60695308c-48.80409283-0.64726914-112.49537581 68.22216691-92.43003258 105.7637768 61.62002173 132.56071902 178.77573531 148.61299358 178.7757353 148.61299356 89.71150222-8.02613728 107.05831506-86.99297185 109.12957629-91.00604049-108.35285333 1.94180741-170.62014419-49.58081581-173.9859437-55.53569185z m-80.26137283 35.47034864c10.09739852-26.79694222 70.94069728-80.39082667 70.94069728-80.39082666-10.74466765-10.09739852-70.94069728-29.51547259-70.94069728-29.51547259 14.11046717-6.08432987 81.68536494 20.71261235 81.68536494 20.71261234 60.97275259-32.75181827 66.2803595-16.6995437 66.2803595-16.6995437-41.55467852 10.09739852-147.96572445 105.89323061-147.96572444 105.89323061z" fill="#9A6E38" p-id="5956"></path><path d="M331.64427061 611.67944691c98.38490864-27.44421136 118.45025185-50.22808494 118.45025186-50.22808494s-91.65330963-56.18296098-139.93958717-57.60695308c-48.80409283-0.64726914-94.37184 66.2803595-91.00604049 91.65330963 9.32067555 19.41807408 19.41807408 36.76488691 30.16274172 51.52262321 12.03920592-27.44421136 70.29342815-78.31956543 70.29342816-78.31956543-10.74466765-10.09739852-70.94069728-29.51547259-70.94069728-29.5154726 14.11046717-6.08432987 81.68536494 20.71261235 81.68536494 20.71261235 60.97275259-32.75181827 66.2803595-16.6995437 66.2803595-16.6995437-38.83614815 9.32067555-133.85525728 93.07730173-146.54173235 104.46923851 62.91456 85.05116445 146.54173235 96.44310124 146.54173235 96.44310124 89.71150222-8.02613728 107.05831506-73.01195852 109.1295763-77.02502716-108.48230717 2.07126124-170.74959803-49.45136197-174.11539754-55.40623803z" fill="#FCB316" p-id="5957"></path></svg>`;
    } else if (is_huya) {
      logo = `<svg t="1694231489964" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4471" width="40" height="40"><path d="M516.032 156.352a425.408 425.408 0 0 1 162.624 22.4 388.096 388.096 0 0 1 124.224 69.632 300.16 300.16 0 0 1 78.336 99.904c12.032 25.28 20.096 52.544 23.424 80.384 2.496 21.184 2.496 43.136-4.352 63.552a104.128 104.128 0 0 1-36.928 50.816c-22.4 16.896-49.28 26.496-76.16 33.408-45.568 11.328-92.416 15.552-139.072 19.392-49.664 3.776-99.392 6.976-148.992 11.52-33.472 2.752-66.944 5.888-100.544 7.296a554.24 554.24 0 0 1-90.432-2.112c-26.304-3.328-52.928-9.728-75.584-24.064a102.592 102.592 0 0 1-39.168-45.056c-11.136-24.704-13.504-52.352-12.416-79.168 1.728-58.496 22.848-115.84 57.728-162.624 42.048-56.896 102.336-99.008 168.576-122.944a394.816 394.816 0 0 1 108.736-22.336z m-32.576 101.312a24.32 24.32 0 0 0-13.888 6.272 51.072 51.072 0 0 0-10.624 18.56 217.344 217.344 0 0 0-10.24 53.12c-2.432 30.592-1.664 61.44 2.496 91.84 2.752 18.816 6.592 37.76 14.592 55.168 3.968 8.064 9.088 16.512 17.6 20.288 8.768 3.328 18.368 1.92 27.264 0.064 19.072-4.352 37.056-12.48 54.4-21.44a447.36 447.36 0 0 0 65.92-42.304c16.448-12.992 32.576-26.88 45.056-43.904 5.632-8.192 11.648-18.304 8.384-28.608-4.16-11.584-13.312-20.544-22.144-28.8a336.704 336.704 0 0 0-55.232-38.912 399.808 399.808 0 0 0-73.152-33.536c-16.192-5.056-33.216-9.92-50.432-7.808m212.544 473.28c19.2-7.424 37.952-16.64 54.016-29.632 0.768 26.112-5.568 52.224-16.384 75.904l-1.024-1.024c-7.936-8.384-16.896-15.872-23.68-25.344a189.312 189.312 0 0 1-12.928-19.904m-285.248 46.912c-1.216-10.624-3.584-21.568-0.96-32.128 20.032 6.144 40.768 9.728 61.632 11.712-12.544 21.952-32.192 38.976-53.632 51.968a208.96 208.96 0 0 0-1.664-2.176c-0.576-9.984-4.224-19.456-5.376-29.376" fill="#F6F8F9" p-id="4472"></path><path d="M553.664 65.984c22.784-23.488 51.072-42.752 83.136-50.56 5.76-1.6 11.328 1.6 16.832 2.944 42.176 14.272 79.68 39.744 112.256 69.632a486.848 486.848 0 0 1 85.824 107.52c1.536 2.496 3.136 5.056 4.288 7.808-31.616-34.688-62.4-70.4-98.496-100.608a399.36 399.36 0 0 0-99.008-60.16c-4.288-1.6-8.192-4.544-12.864-4.8-32.192 2.88-62.976 14.272-91.968 28.224M194.176 22.72c59.648 7.168 118.912 22.656 171.904 51.456 3.84 2.24 8 4.096 11.584 6.848-8.384-1.92-16.384-5.376-24.64-7.68C308.928 60.16 262.976 50.944 216.768 52.416c-3.584 0.256-7.872-0.32-10.432 2.88-14.08 14.208-24.256 31.616-33.728 49.088a802.56 802.56 0 0 0-49.664 119.488c-3.712 10.752-6.464 21.76-9.984 32.576 6.144-74.432 31.36-146.496 67.712-211.392 4.288-7.616 8.64-15.104 13.504-22.336M406.464 151.68c99.456-33.792 210.944-27.776 307.584 12.672 39.936 16.768 77.44 39.488 110.144 67.968a323.328 323.328 0 0 1 81.408 106.944c10.944 23.552 18.88 48.576 23.104 74.176 5.696 33.408 5.056 69.12-9.344 100.416-2.24 4.736-4.352 9.6-7.872 13.568-2.368 6.08-7.04 10.88-11.008 15.936-24.128 28.288-59.136 44.544-94.208 54.72-50.56 14.4-103.232 18.944-155.456 23.36-36.48 2.816-73.024 5.184-109.44 8.128-63.168 4.928-126.272 12.352-189.696 11.52a384.896 384.896 0 0 1-77.056-8.384 177.28 177.28 0 0 1-56.192-22.528 127.552 127.552 0 0 1-45.44-49.984c-13.76-26.752-18.304-57.28-18.048-87.104 0.192-63.616 20.992-126.72 57.408-178.816 46.72-67.136 116.864-116.608 194.112-142.592z m109.568 4.672a394.816 394.816 0 0 0-108.736 22.336c-66.24 23.936-126.592 66.048-168.576 122.944a288.896 288.896 0 0 0-57.728 162.624c-1.088 26.816 1.28 54.464 12.48 79.232 8.192 18.432 21.952 34.304 39.104 44.992 22.656 14.336 49.28 20.672 75.584 24 30.016 3.52 60.352 3.584 90.432 2.112 33.6-1.344 67.072-4.48 100.544-7.232 49.6-4.608 99.264-7.744 148.928-11.52 46.656-3.84 93.568-8.064 139.072-19.392 26.88-6.912 53.76-16.512 76.16-33.408 17.024-12.736 30.4-30.528 36.928-50.816 6.912-20.416 6.912-42.368 4.352-63.552a261.504 261.504 0 0 0-23.424-80.384 300.992 300.992 0 0 0-78.336-99.904 388.096 388.096 0 0 0-124.224-69.632 426.176 426.176 0 0 0-162.56-22.4" fill="#954607" p-id="4473"></path><path d="M483.456 257.664c17.152-2.048 34.176 2.752 50.432 7.808 25.536 8.448 49.856 20.16 73.152 33.536 19.52 11.328 38.4 23.936 55.232 38.976 8.832 8.256 17.92 17.152 22.144 28.8 3.264 10.304-2.752 20.416-8.384 28.608-12.416 17.024-28.544 30.912-45.056 43.904a447.36 447.36 0 0 1-65.92 42.304 238.272 238.272 0 0 1-54.4 21.44c-8.896 1.792-18.496 3.2-27.2-0.192-8.512-3.776-13.632-12.224-17.6-20.288-8-17.344-11.84-36.352-14.592-55.104a428.608 428.608 0 0 1-2.496-91.904c1.6-17.984 4.096-36.032 10.24-53.12a49.536 49.536 0 0 1 10.624-18.496 24.128 24.128 0 0 1 13.824-6.272m430.016 270.272c1.344-0.96 2.56-2.624 4.416-2.56a404.8 404.8 0 0 1 104.256 9.472c0.768 5.376 0.96 10.88 1.344 16.32a374.4 374.4 0 0 1-5.056 79.36A549.888 549.888 0 0 0 945.92 553.6c-10.56-8.896-20.8-18.304-32.448-25.664M40.576 611.2a415.36 415.36 0 0 1 138.752-37.76 185.792 185.792 0 0 1-9.152 9.664 527.04 527.04 0 0 0-109.824 168.448 327.232 327.232 0 0 1-52.544-121.92c10.496-6.912 21.504-12.992 32.768-18.432m794.944 40.32c25.408 1.472 50.56 7.424 73.984 17.28 27.136 11.264 51.776 27.84 73.984 46.912 1.984 1.856 4.608 3.584 5.12 6.528a328 328 0 0 1-82.432 102.912c-4.928-25.6-10.24-51.264-18.432-76.096-11.584-35.136-26.944-70.016-52.224-97.536m-87.936 10.112a12.992 12.992 0 0 1 19.712 5.376c3.008 8.576-1.664 17.408-6.72 24.128 3.968 34.112-5.76 68.096-19.584 98.944a158.144 158.144 0 0 1-65.408-31.232c-6.272-4.608-11.456-10.496-17.152-15.68a575.552 575.552 0 0 1-174.4 15.488c-15.168 28.544-40.832 50.048-68.8 65.408a206.08 206.08 0 0 1-45.504-96.576c-6.08-4.864-12.416-10.24-15.232-17.728-1.024-5.312 3.52-10.112 8.32-11.712 4.864-2.048 11.776-3.072 15.36 1.792 6.464 8.192 16.32 12.48 25.728 16.384 29.568 11.456 61.44 15.488 92.928 17.152A549.184 549.184 0 0 0 640 720.768c27.712-6.464 55.296-15.104 79.872-29.696 8-4.928 16.192-10.176 21.696-17.92 1.536-3.968 1.984-8.96 6.016-11.52z m-51.584 69.312c-8.32 3.2-16.896 5.696-25.28 8.64 17.28 16.896 38.464 30.336 61.952 36.608l1.024 1.024c10.816-23.68 17.152-49.792 16.384-75.904a200.512 200.512 0 0 1-54.08 29.632z m-313.472 4.032c6.336 25.984 17.024 51.264 33.664 72.32l1.664 2.176c21.44-12.992 41.152-30.016 53.632-51.968a314.688 314.688 0 0 1-61.632-11.712 186.688 186.688 0 0 1-27.328-10.816m-202.176 4.544a240.384 240.384 0 0 1 109.248-55.36 222.72 222.72 0 0 0-24.128 50.24c-17.088 50.688-21.632 104.64-21.632 157.824a449.728 449.728 0 0 1-125.888-76.864 288 288 0 0 1 62.4-75.84" fill="#954607" p-id="4474"></path><path d="M553.664 65.984c28.928-13.952 59.776-25.344 92.032-28.096 4.608 0.32 8.576 3.264 12.864 4.8a396.288 396.288 0 0 1 99.008 60.16c36.096 30.208 66.88 65.92 98.496 100.608 10.048 10.56 20.864 20.352 30.528 31.232 68.416 74.304 117.248 168.064 132.416 268.416 2.176 15.936 4.224 32 4.48 48.064-0.384-5.44-0.64-10.88-1.344-16.32a405.056 405.056 0 0 0-104.256-9.472c-1.856-0.064-3.072 1.6-4.416 2.56 11.648 7.36 21.888 16.768 32.448 25.6 26.752 23.104 50.688 49.216 72.512 76.928a324.672 324.672 0 0 1-29.824 91.776c-0.512-2.944-3.136-4.608-5.12-6.528a277.184 277.184 0 0 0-73.984-46.912 225.28 225.28 0 0 0-73.984-17.28c25.28 27.52 40.64 62.4 52.224 97.536 8.192 24.832 13.568 50.432 18.432 76.096l0.064 0.192c-49.408 41.472-108.736 69.824-170.304 88.128-80.704 23.936-165.504 31.616-249.408 28.928-82.88-3.072-165.952-18.112-242.752-49.856v-0.256c0-53.184 4.608-107.136 21.632-157.824 5.888-17.664 14.08-34.56 24.128-50.24a240.384 240.384 0 0 0-109.248 55.36 288.832 288.832 0 0 0-62.464 75.904 358.912 358.912 0 0 1-57.536-63.872 524.928 524.928 0 0 1 109.824-168.448c3.2-3.136 6.336-6.272 9.152-9.728a413.888 413.888 0 0 0-138.688 37.76c-11.264 5.44-22.272 11.52-32.768 18.432a404.48 404.48 0 0 1 4.736-176.896 491.392 491.392 0 0 1 100.416-196.288c3.52-10.816 6.272-21.824 9.984-32.576 13.696-40.896 29.568-81.216 49.664-119.488 9.472-17.472 19.648-34.944 33.728-49.088 2.496-3.2 6.784-2.624 10.432-2.88 46.208-1.472 92.16 7.744 136.256 20.928 8.32 2.304 16.256 5.696 24.64 7.68 1.664 0.512 3.328 1.6 5.12 0.832a494.336 494.336 0 0 1 167.488-15.552l3.392-0.32z m-147.2 85.696c-77.248 25.984-147.392 75.456-194.112 142.592a316.288 316.288 0 0 0-57.408 178.816c-0.256 29.824 4.288 60.352 18.048 87.104a128 128 0 0 0 45.44 49.984c17.024 11.072 36.48 17.856 56.192 22.528 25.216 5.824 51.2 7.744 77.056 8.384 63.424 0.832 126.592-6.592 189.696-11.52 36.48-2.944 72.96-5.312 109.44-8.128 52.224-4.416 104.896-8.896 155.456-23.36 35.072-10.176 70.08-26.432 94.208-54.72 3.968-5.056 8.64-9.856 11.008-15.936 3.52-3.968 5.632-8.832 7.872-13.568 14.336-31.232 14.976-67.008 9.344-100.416a286.976 286.976 0 0 0-23.104-74.176 323.328 323.328 0 0 0-81.408-106.944 408.256 408.256 0 0 0-110.144-67.968c-96.64-40.448-208.128-46.528-307.584-12.672z m341.12 509.952c-4.032 2.56-4.48 7.552-6.144 11.584-5.504 7.744-13.76 12.992-21.696 17.92-24.576 14.592-52.16 23.232-79.872 29.696a543.488 543.488 0 0 1-143.168 12.608c-31.488-1.6-63.36-5.696-92.928-17.152-9.408-3.904-19.264-8.192-25.728-16.384-3.584-4.864-10.496-3.84-15.36-1.792-4.8 1.6-9.28 6.4-8.32 11.712 2.88 7.488 9.152 12.8 15.232 17.728 6.528 35.392 21.952 69.248 45.504 96.576 28.032-15.36 53.632-36.864 68.8-65.408a577.408 577.408 0 0 0 174.4-15.488c5.696 5.248 10.816 11.072 17.152 15.68 18.944 15.424 41.6 25.92 65.408 31.232 13.888-30.848 23.616-64.832 19.584-98.944 5.056-6.72 9.792-15.616 6.72-24.128-2.752-7.68-13.248-10.56-19.584-5.44" fill="#F49F17" p-id="4475"></path><path d="M670.72 739.648c8.384-2.944 16.96-5.44 25.28-8.64 4.032 6.784 8.064 13.632 12.992 19.904 6.72 9.472 15.68 16.96 23.68 25.344a143.232 143.232 0 0 1-61.952-36.608z m-288.192-4.672c8.768 4.352 17.984 7.872 27.328 10.752-2.688 10.56-0.256 21.504 0.96 32.128 1.088 9.984 4.8 19.456 5.44 29.44a186.56 186.56 0 0 1-33.728-72.32z" fill="#F3EBDE" p-id="4476"></path></svg>`;
    } else if (is_douyin) {
      logo = `<svg t="1694230416862" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4262" width="40" height="40"><path d="M230.4 51.2h563.2C892.416 51.2 972.8 131.584 972.8 230.4v563.2C972.8 892.416 892.416 972.8 793.6 972.8h-563.2C131.584 972.8 51.2 892.416 51.2 793.6v-563.2C51.2 131.584 131.584 51.2 230.4 51.2z" fill="#170B1A" p-id="4263"></path><path d="M511.488 323.072c0.512-57.856 0-115.712 0.512-173.568h118.272c-0.512 10.24 1.024 20.48 2.56 30.208h-87.04v470.016c0.512 19.968-4.608 39.936-14.336 57.344-15.36 26.624-44.032 45.056-74.752 47.616-19.456 1.536-39.424-2.048-56.832-11.776a97.570133 97.570133 0 0 1-33.28-29.696c30.208 16.896 69.632 15.36 98.816-3.584 28.16-17.408 46.592-50.176 46.592-83.968-0.512-100.864-0.512-201.728-0.512-302.592z m195.072-33.28c16.384 10.24 34.816 18.432 53.76 22.528 11.264 2.56 22.528 3.584 34.304 3.584v26.624c-33.792-7.68-65.024-26.624-88.064-52.736z" fill="#25F4EE" p-id="4264"></path><path d="M298.496 437.248c42.496-26.624 94.208-37.376 143.36-30.208v28.16c-13.312 0.512-26.112 2.048-39.424 4.608-31.744 6.656-61.952 19.968-88.064 39.424-28.16 20.992-49.664 49.664-64.512 81.408-14.336 30.208-21.504 63.488-20.992 97.28 0 36.864 10.24 72.704 27.648 104.96 8.192 14.848 17.408 29.184 29.696 40.96-25.088-17.408-46.08-40.96-61.44-67.584-20.992-35.328-31.232-76.8-30.208-118.272 1.536-37.888 12.288-75.264 32.256-108.032 17.408-29.184 42.496-54.784 71.68-72.704z" fill="#25F4EE" p-id="4265"></path><path d="M545.792 179.712h87.552c3.072 16.896 9.216 32.768 16.896 48.128 12.288 23.552 29.696 44.544 52.224 58.368a11.946667 11.946667 0 0 1 3.584 3.584 168.0384 168.0384 0 0 0 88.576 52.736c0.512 30.72 0 61.952 0 92.672a277.333333 277.333333 0 0 1-162.816-51.712c0 73.728 0 147.456 0.512 221.184 0 9.728 0.512 19.456 0 29.696-2.56 35.84-13.824 71.168-31.744 102.4-15.36 27.136-36.352 51.2-61.44 69.632-32.256 24.064-72.192 37.376-112.128 38.4-20.48 0.512-40.96-0.512-60.928-5.12-28.16-6.144-54.784-17.92-78.336-34.304l-1.536-1.536c-11.776-11.776-21.504-26.112-29.696-40.96-17.408-31.744-27.648-68.096-27.648-104.96-0.512-33.28 6.656-67.072 20.992-97.28 14.848-31.744 36.864-60.416 64.512-81.408 26.112-19.456 56.32-32.768 88.064-39.424 12.8-2.56 26.112-4.096 39.424-4.608 0.512 11.776 0 23.552 0.512 34.816v59.904c-14.848-5.12-31.232-5.12-46.592-1.536-18.432 4.096-35.84 12.288-50.176 24.576-8.704 7.68-16.384 16.896-21.504 27.136-9.216 17.408-12.288 37.888-10.24 57.344 2.048 18.944 10.24 37.376 22.528 51.712 8.192 10.24 18.944 17.92 29.696 25.088 8.704 12.288 19.968 22.528 33.28 29.696 17.408 9.216 37.376 13.312 56.832 11.776 30.72-2.048 59.392-20.992 74.752-47.616 9.728-17.408 14.848-37.376 14.336-57.344 1.024-157.696 0.512-314.368 0.512-471.04z" fill="#FFFFFF" p-id="4266"></path><path d="M633.344 179.712c10.24 0.512 20.48 0 31.232 0 0 34.304 10.752 68.608 30.72 96.768 2.56 3.584 5.12 6.656 7.68 9.728-22.528-13.824-40.448-34.816-52.224-58.368-7.68-14.848-13.824-31.232-17.408-48.128z m161.28 162.816c11.264 2.56 22.528 3.584 34.304 3.584v119.296c-58.368 0.512-116.736-18.944-164.352-53.248v236.544c0.512 17.92-1.024 35.84-5.12 53.248-11.264 53.248-43.008 101.376-87.04 132.608-23.552 16.896-50.176 28.672-77.824 34.816-33.792 7.68-69.12 7.168-102.4-1.536-39.424-10.24-76.288-32.256-103.936-62.464 23.552 16.896 50.176 28.16 78.336 34.304 19.968 4.608 40.448 5.632 60.928 5.12 39.936-1.024 79.872-14.336 112.128-38.4 25.088-18.432 45.568-42.496 61.44-69.632 17.92-31.232 29.184-66.56 31.744-102.4 0.512-9.728 0.512-19.456 0-29.696-0.512-73.728-0.512-147.456-0.512-221.184a277.333333 277.333333 0 0 0 162.816 51.712c-0.512-30.72 0-61.952-0.512-92.672z" fill="#FE2C55" p-id="4267"></path><path d="M442.368 434.688c11.264 0 23.04 0.512 34.304 2.048v122.368c-16.384-5.632-34.816-6.144-51.712-2.048-32.256 7.168-59.392 31.744-70.656 62.976-11.264 30.72-6.656 66.56 12.8 92.672-11.264-6.656-21.504-14.848-29.696-25.088-12.288-14.336-20.48-32.768-22.528-51.712-2.048-19.456 1.024-39.936 10.24-57.344 5.12-10.24 12.8-19.456 21.504-27.136 14.336-12.288 32.256-19.968 50.176-24.576 15.36-3.584 31.744-3.584 46.592 1.536v-59.904c-1.024-10.24-0.512-22.016-1.024-33.792z" fill="#FE2C55" p-id="4268"></path></svg>`;
    } else if (is_bilibili) {
      logo = `<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2753" width="24" height="24"><path d="M306.005333 117.632L444.330667 256h135.296l138.368-138.325333a42.666667 42.666667 0 0 1 60.373333 60.373333L700.330667 256H789.333333A149.333333 149.333333 0 0 1 938.666667 405.333333v341.333334a149.333333 149.333333 0 0 1-149.333334 149.333333h-554.666666A149.333333 149.333333 0 0 1 85.333333 746.666667v-341.333334A149.333333 149.333333 0 0 1 234.666667 256h88.96L245.632 177.962667a42.666667 42.666667 0 0 1 60.373333-60.373334zM789.333333 341.333333h-554.666666a64 64 0 0 0-63.701334 57.856L170.666667 405.333333v341.333334a64 64 0 0 0 57.856 63.701333L234.666667 810.666667h554.666666a64 64 0 0 0 63.701334-57.856L853.333333 746.666667v-341.333334A64 64 0 0 0 789.333333 341.333333zM341.333333 469.333333a42.666667 42.666667 0 0 1 42.666667 42.666667v85.333333a42.666667 42.666667 0 0 1-85.333333 0v-85.333333a42.666667 42.666667 0 0 1 42.666666-42.666667z m341.333334 0a42.666667 42.666667 0 0 1 42.666666 42.666667v85.333333a42.666667 42.666667 0 0 1-85.333333 0v-85.333333a42.666667 42.666667 0 0 1 42.666667-42.666667z" p-id="2754" fill="currentColor"></path></svg>`;
    }
    return logo;
  };
  class LivePlugin {
    constructor() {
      this.baseUrl = "/";
      this.key = "key";
      this.bg_key = "bg_key";
      this.bg_show_key = "bg_show_key";
      this.bg_is_first_key = "bg_is_first_key";
      this.full_screen_key = "full_screen_key";
      this.full_screen_is_find = true;
      this.full_screen_class_or_id = "full_screen_button_class_or_id";
      this.full_button_tag_name = "div";
      this.full_screen_button = getLocalStore(this.full_screen_class_or_id, String.name, false) || this.full_screen_class_or_id;
      this.full_screen_text = "全屏";
      this.full_cancel_text = "退出全屏";
      this.full_screen_is_first_key = "full_screen_is_first_key";
      this.default_background_image = "https://cdn.staticaly.com/gh/wuxin0011/blog-resource@main/picgo/bg5.jpg";
      this.users = [];
      this.menu = null;
      this.menu_show_key = "menu_show_key";
      this.menu_is_first_key = "menu_is_first_key";
      this.tbody = null;
      this.m_container = null;
      this.gift_key = `${this.key}_gift`;
      this.gift_tool = null;
      this.gift_is_first_key = "gift_is_first_key";
      this.logo_btn = null;
      this.btn_logo_svg = iconLogo();
      this.logo_show_key = `${this.key}_logo_show`;
      this.header_logo = "none";
      this.button_name = "";
      this.is_new = false;
      this.btn_is_first_key = "btn_is_first_key";
      this.video_player_container = ".room-player-wrap";
      this.auto_max_pro_key = "auto_max_pro_key";
      this.is_first_auto_max_pro_key = "is_first_auto_max_pro_key";
      this.auto_max_pro_class_or_id_list = "auto_max_pro_class_or_id_list";
      this.auto_max_pro_keywords = ["登录", "会员", "大会员"];
      if (is_localhost) {
        this.init();
      }
    }
    // 初始化操作方法,子类可以继承该类,实现该类中空方法,参考此操作,初始化构造器实调用该方法就可以了。。。
    init() {
      this.clickLogoShowContainer();
      this.users = getLocalStore(this.key, Array.name, true) || [];
      if (!this.removeRoom()) {
        this.create_container();
        this.detail();
        this.index();
        this.category();
        this.common();
        if (is_huya || is_douyu) {
          loopDo(() => {
            this.isShowLeftMenu();
            this.isShowGift();
          }, 10, 1e3);
        }
      }
      this.addEven();
      this.settingBackgroundImage();
    }
    /*********************************建议下面操作方法必须重写的,并且参考此步骤*****************************/
    /**
     * 公共
     */
    common() {
    }
    /**
     * 首页
     */
    index() {
    }
    /**
     * 分类
     */
    category() {
    }
    /**
     * 详情
     */
    detail() {
    }
    /**
     * 点击房间名称操作
     */
    removeRoomByClickRoomName() {
    }
    /**
     * 通过房间号获取名称
     * @param roomId 房间号
     * @returns {null} name
     */
    getNameByRoomId(roomId) {
      warn("请自定义实现通过名称获取房间号方法");
      return null;
    }
    /**
     * 通过一个地址获取房间号
     * @param url 地址
     * @returns {null} 房间号
     */
    getRoomIdByUrl(url) {
      warn("请自定义实现通过名称获取房间号方法");
      return null;
    }
    /**
     * 自动最高画质!
     */
    isAutoMaxVideoPro() {
      let that = this;
      if (!(wls.getItem(that.is_first_auto_max_pro_key) === null ? true : getLocalStore(that.auto_max_pro_key, Boolean.name))) {
        return;
      }
      log("查找播放视频画质列表", that.auto_max_pro_class_or_id_list);
      loopDo((timer) => {
        let items = querySelectorAll(that.auto_max_pro_class_or_id_list);
        if (isArray(items)) {
          for (let item of items) {
            let result = that.auto_max_pro_keywords.findIndex((key) => item.innerText.indexOf(key) !== -1);
            if (result === -1) {
              log("当前最高画质", item.innerText);
              if (is_huya) {
                item = querySelector(item, "span");
              }
              item.click();
              clearInterval(timer);
              return;
            }
          }
        }
      }, 100, 500);
    }
    updateHeaderIcon() {
    }
    /*********************************子类继承无需修改的方法******************************/
    /**
     * 容器,所有操作容器均在此容器中,
     */
    create_container() {
      let that = this;
      let isShowMenu = wls.getItem(this.menu_is_first_key) === null ? false : getLocalStore(that.menu_show_key, Boolean.name);
      let isShowFullScreen = wls.getItem(this.full_screen_is_first_key) === null ? false : getLocalStore(that.full_screen_key, Boolean.name);
      let isShowGift = wls.getItem(this.gift_is_first_key) === null ? false : getLocalStore(that.gift_key, Boolean.name);
      let isShowLogo = wls.getItem(this.btn_is_first_key) === null ? true : getLocalStore(that.logo_show_key, Boolean.name);
      let isAutoMaxPro = wls.getItem(this.is_first_auto_max_pro_key) === null ? true : getLocalStore(that.auto_max_pro_key, Boolean.name);
      that.m_container = new LivePluginElement().createContainer(isShowBg(), isShowMenu, isShowFullScreen, isShowGift, isShowLogo, isAutoMaxPro);
      if (querySelector(that.m_container, "#m-container-box2 table tbody")) {
        that.tbody = querySelector(that.m_container, "#m-container-box2 table tbody");
        that.is_new = true;
      } else {
        that.tbody = querySelector(that.m_container, ".m-container table tbody");
        that.is_new = false;
      }
      that.operationDOMButton();
      that.createRoomItem(that.users);
      that.createButton();
      log("操作面板初始化完毕!");
    }
    /**
     * 通过用户列表构建列表
     * @param {Object} arr  用户列表
     */
    createRoomItem(arr) {
      if (!isArray(arr)) {
        return;
      }
      let that = this;
      arr.forEach((item, index) => {
        let tr = createElement("tr");
        tr.innerHTML = `
                <td>${index + 1}</td>
                <td>${item.name}</td>
                <td>${item.roomId}</td>
                <td><button class="btn btn-danger" room-id="${item.roomId}">删除</button></td>
                `;
        appendChild(that.tbody, tr);
        addEventListener(querySelector(tr, "button"), "click", function(e) {
          let roomId = e.target.getAttribute("room-id");
          that.userDelete(roomId);
          handlerPromise(that.getRoomIdByUrl(local_url), (result) => {
            if (result === roomId) {
              window.location.reload();
            }
          });
          removeDOM(tr, true);
        });
      });
    }
    /**
     * 绘制表格
     * @param {Object} arr 表格数据
     */
    resetTbody(arr) {
      if (!this.tbody) {
        error("tbody 为 null !");
        return;
      }
      querySelectorAll(this.tbody, "tr").forEach((item) => removeDOM(item, true));
      this.createRoomItem(arr);
    }
    /**
     * 操作框容器
     */
    operationDOMButton() {
      let that = this;
      if (!that.m_container) {
        return;
      }
      const container = that.m_container;
      const inputValue = querySelector(container, ".operation input");
      addEventListener(inputValue, "input", () => {
        let arr = [];
        try {
          arr = that.users.filter((item) => {
            var _a, _b;
            return item && (item == null ? void 0 : item.roomId) && ((_a = item == null ? void 0 : item.roomId) == null ? void 0 : _a.indexOf(inputValue.value)) !== -1 || item && (item == null ? void 0 : item.name) && ((_b = item == null ? void 0 : item.name) == null ? void 0 : _b.indexOf(inputValue.value)) !== -1;
          });
        } catch (error2) {
          arr = [...that.users];
        }
        that.resetTbody(arr);
      });
      const addRoomBtn = querySelector(container, ".operation button.add-room");
      addEventListener(addRoomBtn, "click", function() {
        const keywords = inputValue.value.trim();
        if (!keywords) {
          return alert("请输入房间号!");
        }
        if (!that.userIsExist(keywords)) {
          if (is_bilibili) {
            that.handlerBiliBiliKeywords(keywords, inputValue);
          } else {
            handlerPromise(that.getNameByRoomId(keywords), (res) => {
              that.searchUserByRoomId(res, keywords, inputValue);
            });
          }
        } else {
          alert("该主播已添加!");
        }
      });
      const clearRoomBtn = querySelector(container, ".operation button.clear-room");
      addEventListener(clearRoomBtn, "click", function() {
        if (confirm("确认重置?")) {
          that.users = [];
          let deleteKeyList = [
            that.key,
            that.bg_key,
            that.menu_show_key,
            that.gift_key,
            that.logo_show_key,
            that.full_screen_key,
            that.bg_is_first_key,
            that.btn_is_first_key,
            that.full_screen_is_first_key,
            that.menu_is_first_key,
            that.gift_is_first_key,
            that.is_first_auto_max_pro_key,
            DARK_THEME_KEY,
            THEME_IS_AUTO
          ];
          for (let item of deleteKeyList) {
            wls.removeItem(item);
          }
          that.resetTbody(that.users);
          window.location.reload();
        }
      });
      const uploadButton = querySelector(container, ".operation #file");
      addEventListener(uploadButton, "change", function(e) {
        const file = uploadButton.files[0] || null;
        uploadImage(file, (base64) => {
          addLocalStore(that.bg_key, base64, String.name, false);
          that.settingBackgroundImage(base64);
        });
        addLocalStore(that.bg_is_first_key, false, Boolean.name);
      });
      const upload = querySelector(container, ".operation .bg-btn");
      addEventListener(upload, "click", function(e) {
        uploadButton.click();
        addLocalStore(that.bg_is_first_key, false, Boolean.name);
      });
      const close_container = querySelector(container, ".operation .btn-close-container");
      addEventListener(close_container, "click", function(e) {
        that.isShowContainer();
      });
      const close_container2 = querySelector(container, ".operation #m-close-button1");
      addEventListener(close_container2, "click", function(e) {
        that.isShowContainer();
      });
      const checkbox = querySelector(container, ".operation #checkbox1");
      addEventListener(checkbox, "change", function(e) {
        log("背景是否开启", e.target.checked ? "开启" : "关闭");
        addLocalStore(that.bg_show_key, e.target.checked, Boolean.name);
        addLocalStore(that.bg_is_first_key, false, Boolean.name);
        that.settingBackgroundImage();
      });
      const menu = querySelector(container, ".operation #checkbox2");
      addEventListener(menu, "change", function(e) {
        that.getLeftMenu(e.target.checked);
        addLocalStore(that.menu_is_first_key, false, Boolean.name);
      });
      const full_screen_btn = querySelector(container, ".operation #checkbox3");
      addEventListener(full_screen_btn, "change", function(e) {
        addLocalStore(that.full_screen_key, e.target.checked, Boolean.name);
        addLocalStore(that.full_screen_is_first_key, false, Boolean.name);
        that.isFullScreen(true);
      });
      const show_gift = querySelector(container, ".operation #checkbox4");
      addEventListener(show_gift, "change", function(e) {
        addLocalStore(that.gift_key, e.target.checked, Boolean.name);
        that.isShowGift();
        addLocalStore(that.gift_is_first_key, false, Boolean.name);
      });
      const show_logo_btn = querySelector(container, ".operation #checkbox5");
      addEventListener(show_logo_btn, "change", function(e) {
        e.preventDefault();
        if (!that.logo_btn) {
          warn("获取不到Logo哦!");
          return alert("获取不到logo");
        }
        if (that.logo_btn.style.display === "block") {
          if (confirm("确认隐藏Logo?隐藏之后不再显示哦!如需显示logo,点击直播头部Logo即可显示")) {
            that.logo_btn.style.display = "none";
            addLocalStore(that.logo_show_key, false, Boolean.name);
          }
        } else {
          that.logo_btn.style.display = "block";
          addLocalStore(that.logo_show_key, true, Boolean.name);
        }
        addLocalStore(that.btn_is_first_key, false, Boolean.name);
      });
      const auto_max_pro = querySelector(container, ".operation #checkbox6");
      addEventListener(auto_max_pro, "change", function(e) {
        addLocalStore(that.auto_max_pro_key, e.target.checked, Boolean.name);
        addLocalStore(that.is_first_auto_max_pro_key, false, Boolean.name);
        that.isAutoMaxVideoPro();
      });
      this.themeContr(container);
      this.initAnimation(container);
      log("操作按钮添加成功!");
    }
    handlerBiliBiliKeywords(keywords, inputValue) {
      let that = this;
      if (isBVId(keywords)) {
        handlerPromise(getBiliBiliInfoByVideoID(keywords), (result) => {
          var _a, _b, _c, _d;
          if (result && (result == null ? void 0 : result.code) == 0) {
            that.searchUserByRoomId((_b = (_a = result == null ? void 0 : result.data) == null ? void 0 : _a.owner) == null ? void 0 : _b.name, (_d = (_c = result == null ? void 0 : result.data) == null ? void 0 : _c.owner) == null ? void 0 : _d.mid, inputValue);
          } else if (isRisk(result)) {
            alert("服务不可用,该操作已被官方禁止,请待会再尝试吧!");
          } else {
            alert("搜索失败!请复制 https://www.bilibili.com/video/xxxxxx 地址尝试");
          }
        });
      } else if (isUserId(keywords)) {
        handlerPromise(getBiliBiliInfoByUserId(keywords), (result) => {
          var _a, _b;
          if (result && (result == null ? void 0 : result.code) == 0) {
            that.searchUserByRoomId((_a = result == null ? void 0 : result.data) == null ? void 0 : _a.name, (_b = result == null ? void 0 : result.data) == null ? void 0 : _b.mid, inputValue);
          } else if (isRisk(result)) {
            alert("服务不可用,该操作已被官方禁止,请待会再尝试吧!");
          } else {
            alert("搜索失败!请复制 https://space.bilibili.com/xxxxxxxx 地址尝试");
          }
        });
      } else {
        alert("搜索失败!请复制 https://space.bilibili.com/xxxxxxxx  或者 https://www.bilibili.com/video/xxxxxx  地址尝试");
      }
    }
    themeContr(container) {
      const theme_is_auto_box = querySelector(container, ".operation #m-dark-is-auto");
      const theme_btn = querySelector(container, ".operation .room-theme");
      const theme_select = querySelector(container, ".operation #m-dark-select");
      const cancelAutoTheme = (result = false) => {
        theme_is_auto_box.checked = result;
        wls.setItem(THEME_IS_AUTO, result ? THEME_IS_AUTO : `no_${THEME_IS_AUTO}`);
        theme_btn.innerText = isNeedDark() ? "白天" : "黑夜";
        theme_btn.title = isNeedDark() ? "点击切换到白天模式" : "点击切换到黑夜模式";
      };
      addEventListener(theme_btn, "click", function(e) {
        toggleColorMode(e, true);
        if (container.classList.contains("dark")) {
          container.classList.remove("dark");
          localStorage.setItem(DARK_THEME_KEY, theme.light);
        } else if (!container.classList.contains("dark")) {
          localStorage.setItem(DARK_THEME_KEY, theme.dark);
          container.className = `dark ${container.className}`;
        }
        cancelAutoTheme(false);
      });
      addEventListener(theme_is_auto_box, "change", function(e) {
        wls.setItem(DARK_THEME_KEY, theme.light);
        cancelAutoTheme(e.target.checked);
        toggleColorMode(e);
        if (!isNeedDark()) {
          container.classList.contains("dark") && container.classList.remove("dark");
        } else {
          !container.classList.contains("dark") && (container.className = `dark ${container.className}`);
        }
      });
      addEventListener(theme_select, "change", function(e) {
        localStorage.setItem(DARK_THEME_KEY, theme.dark);
        cancelAutoTheme(false);
        updateDarkStyleType(e.target.value);
        if (document.documentElement.classList.contains("dark")) {
          !container.classList.contains("dark") && (container.className = `dark ${container.className}`);
        }
      });
    }
    initAnimation(container) {
      let box1 = querySelector(container, "#m-container-box1");
      let box2 = querySelector(container, "#m-container-box2");
      let change1 = querySelector(container, "#m-change-box1");
      let change2 = querySelector(container, "#m-change-box2");
      let select1 = querySelector(container, ".m-type-item-left .m-select-option-container #m-select-input-address");
      let select2 = querySelector(".m-type-item-left .m-select-input-container #m-select-input-select");
      let select1_box1 = querySelector(container, ".m-type-item-left #m-select-option");
      let select2_box2 = querySelector(container, ".m-type-item-left #m-select-input");
      addEventListener(change1, "click", () => {
        if (box1 && box2) {
          box1.classList.add("m-ani-left-is-close");
          box1.classList.remove("m-ani-left-is-active");
          box2.classList.add("m-ani-right-is-active");
          box2.classList.remove("m-ani-right-is-close");
        }
      });
      addEventListener(change2, "click", () => {
        if (box1 && box2) {
          box1.classList.add("m-ani-left-is-active");
          box1.classList.remove("m-ani-left-is-close");
          box2.classList.add("m-ani-right-is-close");
          box2.classList.remove("m-ani-right-is-active");
        }
      });
      addEventListener(select1, "click", () => {
        if (select1_box1 && select2_box2) {
          select1_box1.classList.remove("m-ani-left-is-active");
          select1_box1.classList.add("m-ani-left-is-close");
          select2_box2.classList.remove("m-ani-right-is-close");
          select2_box2.classList.add("m-ani-right-is-active");
        }
      });
      addEventListener(select2, "click", () => {
        if (select1_box1 && select2_box2) {
          select1_box1.classList.add("m-ani-left-is-active");
          select1_box1.classList.remove("m-ani-left-is-close");
          select2_box2.classList.add("m-ani-right-is-close");
          select2_box2.classList.remove("m-ani-right-is-active");
        }
      });
      log("动画初始化完毕!");
    }
    searchUserByRoomId(name, roomId, inputValue) {
      let that = this;
      if (name) {
        that.addUser(roomId, name);
        inputValue.value = "";
      } else {
        if (confirm(`房间号为${roomId}的主播不存在!确定添加?`)) {
          that.addUser(roomId, roomId);
          inputValue.value = "";
        }
      }
    }
    /**
     * 右侧操作按钮
     * @param text 指定按钮文本,默认是小虎牙或者是小鱼丸
     */
    createButton() {
      let that = this;
      let body = querySelector("body");
      if (!body) {
        error("获取不到 body ");
        return;
      }
      if (!!that.logo_btn) {
        warn("button已经添加了!不能重复添加!");
        return;
      }
      let text = this.button_name;
      const btn = createElement("button");
      btn.style.cursor = "pointer";
      btn.style.position = "fixed";
      btn.style.top = "300px";
      btn.style.right = "0px";
      btn.style.zIndex = 999999999999;
      let backgroundColor = "";
      if (that.btn_logo_svg !== "none") {
        btn.innerHTML = that.btn_logo_svg;
        btn.style.backgroundColor = "transparent";
      } else {
        backgroundColor = is_bilibili ? "255,102,102" : "255, 93, 35";
        btn.style.padding = "5px 10px";
        btn.style.backgroundColor = `rgb(${backgroundColor})`;
        btn.style.borderRadius = "20px";
        btn.style.fontSize = "12px";
        btn.style.color = "#fff";
        btn.textContent = text ? text : is_huya ? "小虎牙" : is_douyu ? "小鱼丸" : is_bilibili ? "小B" : "默认";
      }
      btn.style.border = "none";
      btn.style.outline = "none";
      addEventListener(btn, "click", function() {
        that.isShowContainer();
      });
      addEventListener(btn, "mouseenter", function() {
        btn.style.backgroundColor = `rgba(${backgroundColor},0.6)`;
      });
      let flag = false;
      let x, y;
      const mouse_key = that.key + "_mouse_key";
      let { mouse_left, mouse_top } = getLocalStore(mouse_key, Object.name);
      log(`获到Logo位置信息 ${mouse_left}px, ${mouse_top}px`);
      if (!isNaN(Number(mouse_left)) && !isNaN(Number(mouse_top))) {
        btn.style.left = mouse_left + "px";
        btn.style.top = mouse_top + "px";
        btn.style.right = "auto";
      }
      addEventListener(btn, "mousedown", (event) => {
        x = event.offsetX;
        y = event.offsetY;
        log("mouseDown", x, y);
        flag = true;
        addEventListener(wd, "mousemove", move);
      });
      addEventListener(btn, "mouseup", () => {
        flag = false;
        wd.removeEventListener("mousemove", move);
        wd.onmousemove = null;
      });
      addEventListener(btn, "mouseleave", () => {
        flag = false;
        btn.style.backgroundColor = `rgba(${backgroundColor},1)`;
        wd.removeEventListener("mousemove", move);
        wd.onmousemove = null;
      });
      function move(e) {
        e.preventDefault();
        if (!flag) {
          return;
        }
        let btn_top = Math.min(Math.max(0, e.clientY - y), window.innerHeight - btn.offsetHeight);
        let btn_left = Math.min(Math.max(0, e.clientX - x), window.innerWidth - btn.offsetWidth);
        btn.style.left = `${btn_left}px`;
        btn.style.top = `${btn_top}px`;
        btn.style.right = "auto";
        addLocalStore(mouse_key, { "mouse_left": btn_left, "mouse_top": btn_top }, Object.name);
      }
      btn.style.display = wls.getItem(that.btn_is_first_key) == null || getLocalStore(that.logo_show_key, Boolean.name) ? "block" : "none";
      that.logo_btn = btn;
      appendChild(body, that.logo_btn);
      log("button 添加完毕!");
    }
    /**
     * 该房间是否已改被删除
     * @param url 房间链接地址 默认 window.location.href
     */
    removeRoom(url = local_url) {
      try {
        if (!this.isRemove(url)) {
          return false;
        }
        this.roomIsNeedRemove();
        return true;
      } catch (error2) {
        return false;
      }
    }
    /**
     * 房间已被删除之后操作
     * @param url 房间链接地址 默认 window.location.href
     */
    roomAlreadyRemove() {
      let that = this;
      removeDOM(querySelector("body"), true);
      const h2 = createElement("h3");
      let html = querySelector("html");
      let body = querySelector("body") ?? createElement("body");
      body.style.display = "flex";
      body.style.flexDirection = "column";
      body.style.justifyContent = "center";
      body.style.alignItems = "center";
      handlerPromise(this.getRoomIdByUrl(local_url), (roomId) => {
        let name = this.getUser(roomId) ? this.getUser(roomId).name : "";
        const a = createElement("a");
        a.textContent = "点击解锁";
        a.style.display = "block";
        a.style.cursor = "pointer";
        a.style.fontSize = "20px";
        a.onclick = (e) => {
          e.preventDefault();
          that.userDelete(roomId);
          window.location.reload();
        };
        h2.style.fontSize = "36px";
        h2.textContent = `主播【${name}】已被你屏蔽`;
        let title = querySelector("title");
        if (!title) {
          title = createElement("title");
        }
        title.textContent = `主播【${name}】已被你屏蔽`;
        html.appendChild(body);
        body.appendChild(h2);
        body.appendChild(a);
        let logo_show = getLocalStore(that.logo_show_key, Boolean.name);
        if (logo_show) {
          let logo = createElement("a");
          logo.textContent = "显示logo";
          logo.style.display = "block";
          logo.style.cursor = "pointer";
          logo.style.fontSize = "20px";
          logo.onclick = (e) => {
            e.preventDefault();
            logo.style.display = "none";
            addLocalStore(that.logo_show_key, false, Boolean.name);
            that.createButton();
          };
          body.appendChild(logo);
        }
        removeDOM(this.m_container, true);
        this.m_container = null;
        this.create_container();
      });
      loopDo((timer) => {
        const pause = querySelector("#room-html5-player [class^=pause]");
        if (pause) {
          pause.click();
          clearInterval(timer);
        }
      }, 20, 1e3);
    }
    /**
     * 判断链接是否应该被删除
     * @param href 房间链接地址 默认 window.location.href
     */
    isRemove(href) {
      try {
        let res = this.getRoomIdByUrl(href);
        if (res instanceof Promise) {
          return false;
        }
        return this.userIsExist(res);
      } catch (error2) {
        return false;
      }
    }
    /**
     * 设置背景图
     * @param url 背景图地址 默认 是默认地址
     * @param container 修改背景容器 默认是body
     */
    settingBackgroundImage(url, container) {
      if (!support.supportBg()) {
        log("当前平台不支持背景");
        return;
      }
      container = querySelector("body");
      if (!container || !(container instanceof HTMLElement)) {
        warn("壁纸设置失败 获取不到 container !");
        return;
      }
      if (isShowBg()) {
        url = !!url ? url : wls.getItem(this.bg_key) && isShowBg() ? wls.getItem(this.bg_key) : this.default_background_image;
        container.style.backgroundSize = "cover";
        container.style.backgroundRepeat = "no-repeat ";
        container.style.backgroundAttachment = "fixed";
        container.style.backgroundImage = `url(${url})`;
        log("背景图添加完毕!");
      } else {
        container.style.backgroundImage = "none";
        log("背景图已关闭!");
      }
      cssUpdate();
    }
    /**
     * 通过房间名称或者id判断房间是否已经保存到本地
     * @param keywords 房间名或者id
     * @param list 本地缓存数据,默认是本地缓存用户数据
     */
    userIsExist(keywords, list = this.users) {
      return !!this.getUser(keywords, list);
    }
    /**
     * 通过房间名称或者id判断房间是否已经保存到本地
     * @param keywords 房间名或者id
     * @param list 本地缓存数据,默认是本地缓存用户数据
     */
    getUser(keywords, list = this.users) {
      if (!keywords) {
        return null;
      }
      for (let i = 0; i < list.length; i++) {
        if (list[i].name && list[i].name === keywords || list[i].roomId && list[i].roomId === keywords) {
          return list[i];
        }
      }
      return null;
    }
    /**
     * 通过房间id或者房间名删除本地缓存的数据
     * @param keywords 房间名或者id
     */
    userDelete(keywords) {
      let that = this;
      if (!isArray(that.users)) {
        return;
      }
      that.users.forEach((item, index) => {
        if (keywords === item.name || keywords === item.roomId) {
          that.users.splice(index, 1);
        }
      });
      addLocalStore(this.key, this.users);
    }
    /**
     * 添加并保存直播间
     * @param id, 房间id
     * @param name 房间名
     */
    addUser(id, name) {
      if (this.userIsExist(id) || this.userIsExist(name)) {
        alert("该房间已存在!");
        return;
      }
      if (!isArray(this.users)) {
        this.users = [];
      }
      const newUser = new HostUser(id, name);
      this.users.unshift(newUser);
      addLocalStore(this.key, this.users);
      this.resetTbody(this.users);
      handlerPromise(this.getRoomIdByUrl(local_url), (res) => {
        if (id === res) {
          this.roomIsNeedRemove(local_url);
        }
      });
    }
    /**
     * @param selector video
     */
    roomIsNeedRemove(selector = querySelector("video")) {
      this.roomAlreadyRemove();
      removeVideo(selector);
      this.settingBackgroundImage();
    }
    /*
     * 操作左侧导航栏,需要传入选择器,和修改值 建议放到公共方法下执行!
     * @param {selector}  = [选择器]
     * @param {value}  = [要修改的值]
     */
    getLeftMenu(value = false) {
      let menu = querySelector(this.menu);
      if (!menu) {
        return alert("获取不到导航菜单,操作失败!");
      }
      handlerDisplay(menu, value);
      addLocalStore(this.menu_show_key, value, Boolean.name, false);
    }
    /*
     * 操作左侧导航栏,需要传入选择器,和修改值 建议放到公共方法下执行!
     */
    isShowLeftMenu() {
      let menu = this.menu ? querySelector(this.menu) : "";
      const isShow = wls.getItem(this.menu_is_first_key) != null && getLocalStore(this.menu_show_key, Boolean.name);
      handlerDisplay(menu, isShow);
    }
    /**
     * 检查是否能找到全屏按钮
     * @returns
     */
    checkFullScreenButton() {
      if (this.full_screen_is_find) {
        this.full_screen_button = findButton(this.video_player_container, this.full_screen_class_or_id, this.full_screen_text, this.full_button_tag_name);
      }
    }
    /**
     * 自动全屏
     * @param isClickFull 是否是通过点击方式触发
     */
    isFullScreen(isClickFull = false) {
      let that = this;
      let is_should_full_screen = getLocalStore(that.full_screen_key, Boolean.name);
      if (!is_should_full_screen) {
        return;
      }
      let button = null;
      if (isClickFull) {
        button = querySelector(that.full_screen_button);
        if (button && button instanceof HTMLElement) {
          button.click();
          that.isShowContainer();
        } else {
          that.checkFullScreenButton(button);
        }
      } else {
        loopDo((timer) => {
          button = querySelector(that.full_screen_button);
          log("fullScreen button", that.full_screen_button, !!button ? "找到button了" : "未找到全屏button");
          if (button && button instanceof HTMLElement) {
            let isClick = button == null ? void 0 : button.isClick;
            if (isClick) {
              clearInterval(timer);
              return;
            }
            if (!isClick) {
              log("全屏按钮自动触发了!");
              button.click();
              button.isClick = true;
            }
          } else {
            that.checkFullScreenButton(button);
          }
        }, 30, 3e3);
      }
    }
    /**
     * 是否显示礼物
     */
    isShowGift() {
      let gift = this.gift_tool ? querySelector(this.gift_tool) : "";
      handlerDisplay(gift, wls.getItem(this.gift_is_first_key) != null && getLocalStore(this.gift_key, Boolean.name));
    }
    /**
     * 是否显示容器
     */
    isShowContainer() {
      if (this.m_container && this.m_container instanceof HTMLElement) {
        if (this.is_new) {
          if (this.m_container.classList.contains("m-container-is-active")) {
            this.m_container.classList.remove("m-container-is-active");
          } else {
            this.m_container.classList.add("m-container-is-active");
          }
        } else {
          this.m_container.style.display = this.m_container.style.display === "block" ? "none" : "block";
        }
        log("container class=>", this.m_container.classList);
      }
    }
    /**
     *  点击 直播平台 Logo
     */
    clickLogoShowContainer() {
      let that = this;
      if (is_bilibili) {
        return;
      }
      if (this.header_logo === "none" || !this.header_logo) {
        warn("Logo选择器不能为 none !");
        return;
      }
      findMark(that.header_logo, (a) => {
        a.href = "javascript:;void(0)";
        a.title = "点击Logo,显示插件配置";
        if (!a.mark) {
          a.mark = true;
          addEventListener(a, "click", (e) => {
            e.preventDefault();
            that.isShowContainer();
          });
          log("logo点击按钮装置完毕!");
        }
      }, 5, 500);
    }
    addEven() {
      let that = this;
      addFullScreenEvent(() => {
        that.isShowGift();
      });
      document.addEventListener("keydown", function(event) {
        if (event.ctrlKey && event.altKey && event.key === "j") {
          that.isShowContainer();
        }
      });
    }
  }
  class TriggerLive extends LivePlugin {
    constructor() {
      super();
      this.video_player_container = ".room-player-wrap";
      this.full_screen_button = ".room-player-wrap .player-fullscreen-btn";
      this.full_button_tag_name = "span";
      this.full_screen_is_find = false;
      this.default_background_image = "https://livewebbs2.msstatic.com/huya_1682329462_content.jpg";
      this.baseUrl = "https://www.huya.com/";
      this.menu = ".mod-sidebar";
      this.header_logo = "#duya-header #duya-header-logo a";
      this.gift_tool = ".room-core #player-gift-wrap";
      this.auto_max_pro_class_or_id_list = ".player-videoline-videotype .player-videotype-list li";
      this.init();
    }
    // 首页操作
    index() {
      if (local_url === this.baseUrl || /https:\/\/.*\.huya\.*\/\?/.test(local_url)) {
        removeVideo(".mod-index-main video");
        const banner_close = querySelector(".mod-index-wrap #banner i");
        if (banner_close) {
          banner_close.click();
        }
        this.removeRoomByClickRoomName();
        this.updateHeaderIcon();
      }
    }
    // 分类页操作
    category() {
      let that = this;
      if (new RegExp(/^https:\/\/.*\.huya\.((com)|(cn))\/g(\/.*)$/).test(local_url)) {
        this.removeRoomByClickRoomName();
        Array.from(querySelectorAll(".live-list-nav dd")).forEach((node) => {
          addEventListener(node, "click", () => {
            that.removeRoomByClickRoomName();
          });
        });
      }
    }
    // 公共部分操作
    common() {
      this.autoHideMenu();
    }
    // 头部logo显示不明显问题
    updateHeaderIcon() {
      try {
        querySelector("#duya-header-logo .hy-hd-logo-1").src = "https://a.msstatic.com/huya/main3/static/img/logo.png";
        querySelector("class^=NavItem] [class^=NavItemHd] i[class*=fav]").style.backgroundImage = "url(https://a.msstatic.com/huya/hd/h5/header/components/HeaderDynamic/NavItem/img/fav-0.15b3e0b4a39185db705b7c523cd3f17c.png)";
        querySelector("[class^=NavItem] [class^=NavItemHd] i[class*=history]").style.backgroundImage = "url(https://a.msstatic.com/huya/hd/h5/header/components/HeaderDynamic/NavItem/img/history-0.2b32fba04f79057de5abcb2b35cd8eec.png)";
      } catch (error2) {
      }
    }
    // 详情操作
    detail() {
      let that = this;
      if (!new RegExp(/^https:\/\/www\.huya\.com(\/\w+)$/).test(local_url)) {
        return;
      }
      findMark(".host-name", (hostName) => {
        hostName.title = `点击屏蔽主播【${hostName == null ? void 0 : hostName.textContent}】🧹`;
        addEventListener(hostName, "click", () => {
          if (confirm(`确认屏蔽主播【${hostName == null ? void 0 : hostName.textContent}】?`)) {
            that.addUser(that.getRoomIdByUrl(local_url), hostName.textContent);
          }
        });
      });
      let ads = [
        ".main-wrap .room-mod-ggTop",
        "#chatRoom .room-gg-chat",
        "#huya-ab"
      ];
      intervalRemoveElement(ads, 500, 20);
      this.isFullScreen();
      this.isAutoMaxVideoPro();
      findMark("#J-room-chat-shield", (item) => {
        if (item.className.indexOf("shield-on") === -1) {
          item.click();
          log("自动点击了弹幕礼物显示工具");
        }
      }, 100, 1e3);
    }
    // 通过地址获取房间号
    getRoomIdByUrl(url = local_url) {
      try {
        return url && url.match(/https:\/\/www\.huya\.com\/(.*)/) ? url.match(/https:\/\/www\.huya\.com\/(.*)/)[1] : "";
      } catch (error2) {
        warn("url 匹配失败 请检查" + url);
        return "";
      }
    }
    // 通过房间号查找名称
    getNameByRoomId(roomId) {
      let that = this;
      let hostName = querySelector(".host-name");
      if (!hostName) {
        warn(`获取不到hostname`);
        return "";
      }
      const rooms = querySelectorAll(".game-live-item");
      if (!isArray(rooms)) {
        return "";
      }
      for (let room of rooms) {
        const a = querySelector(room, "a");
        if (a && a.href) {
          const id = that.getRoomIdByUrl(a.href);
          const user = querySelector(room, ".txt i");
          if (id === roomId) {
            hostName = user;
          }
        }
      }
      return (hostName == null ? void 0 : hostName.textContent) || "";
    }
    // 通过点击直播间名称删除直播间
    removeRoomByClickRoomName() {
      const that = this;
      const addClick = () => {
        Array.from(querySelectorAll(".game-live-item:not([mark=true])")).forEach((li) => {
          if (!(li instanceof HTMLElement) || li.mark) {
            return;
          }
          const a = querySelector(li, "a");
          if (!a) {
            return;
          }
          const roomId = that.getRoomIdByUrl(a.href);
          const user = querySelector(li, ".txt i");
          const name = user.textContent || "";
          user.title = `点击屏蔽主播【${name}】 🧹`;
          li.mark = true;
          if (that.userIsExist(roomId) || that.userIsExist(name)) {
            removeDOM(li, true);
            return;
          }
          user.mark = "true";
          addEventListener(user, "click", () => {
            that.addUser(roomId, name);
            removeDOM(li, true);
          });
        });
      };
      addClick();
      loopDo(() => {
        addClick();
      }, 5, 5e3);
    }
    autoHideMenu() {
      const isShow = wls.getItem(this.menu_is_first_key) != null && getLocalStore(this.menu_show_key, Boolean.name);
      if (isShow) {
        return;
      }
      loopDo((timer) => {
        const b = querySelector("body");
        const clickM = querySelector("#sidebar-hide-btn");
        if (b instanceof HTMLElement && clickM instanceof HTMLElement) {
          if (!b.classList.contains("sidebar-min")) {
            clickM.click();
            log("左侧侧边栏自动收起!");
          }
          clearInterval(timer);
        }
      }, 100, 100);
    }
  }
  const getInfo = async (roomId = local_url) => {
    if (douyu_address_pattern.test(roomId)) {
      roomId = FishLive.prototype.getRoomIdByUrl(roomId);
    }
    return await fetch(`https://www.douyu.com/betard/${roomId}`, {
      mode: "cors",
      cache: "default",
      method: "GET"
    }).then((res) => res.json());
  };
  class FishLive extends LivePlugin {
    constructor() {
      super();
      this.video_player_container = "#room-html5-player";
      this.baseUrl = "https://www.douyu.com/";
      this.default_background_image = "https://sta-op.douyucdn.cn/dylamr/2022/11/07/1e10382d9a430b4a04245e5427e892c8.jpg";
      this.menu = "#js-aside";
      this.full_screen_button = "[class^=controlbar] [class^=fs]";
      this.gift_tool = ".layout-Player-main #js-player-toolbar";
      this.header_logo = "#js-header .Header-left .Header-logo";
      this.auto_max_pro_class_or_id_list = "#js-player-video .room-Player-Box [class^=rate] ul>li";
      this.init();
    }
    // 公共部分页面操作
    common() {
      this.autoHideMenu();
    }
    //首页操作
    index() {
      let that = this;
      if (!(window.location.href === that.baseUrl || new RegExp(/https:\/\/www\.douyu\.com\/\?.*/).test(local_url))) {
        return;
      }
      window.scroll(0, 0);
      findMark(".layout-Section.layout-Slide-banner", (a) => {
        a.href = "javascript:;void(0)";
        addEventListener(a, "click", (e) => e.preventDefault());
      }, 10, 100);
      loopDo((timer) => {
        const pause = querySelector("#room-html5-player #__controlbar [class^=pause]");
        if (pause) {
          pause.click();
          clearInterval(timer);
        }
      }, 50, 500);
      let topBtn = querySelector(".layout-Main .ToTopBtn");
      if (topBtn) {
        topBtn.style.display = "block";
      }
      function runIndex() {
        console.log("window index run ...");
        Array.from(querySelectorAll("li.layout-List-item")).forEach((li) => {
          const user = querySelector(li, ".DyCover-user");
          const a = querySelector(li, ".DyCover");
          if (!a) {
            return;
          }
          const name = (user == null ? void 0 : user.textContent) || "";
          if (that.isRemove(a == null ? void 0 : a.href) || that.userIsExist(name)) {
            removeDOM(li);
            return;
          }
          if (li.mark) {
            return;
          }
          a.setAttribute("href", "javascript:;void(0)");
          addEventListener(user, "click", (e) => {
            e.preventDefault();
            that.addUser(that.getRoomIdByUrl(a == null ? void 0 : a.href), name);
            removeDOM(li);
          });
          li.mark = true;
        });
      }
      runIndex();
      window.onscroll = throttle(500, runIndex);
    }
    // 分类页面操作
    category() {
      let that = this;
      if (!new RegExp(/https:\/\/www.douyu.com(\/((directory.*)|(g_.*)))$/).test(local_url)) {
        return;
      }
      Array.from(querySelectorAll(".layout-Module-filter .layout-Module-label")).forEach((label) => {
        addEventListener(label, "click", (e) => {
          e.preventDefault();
          let to_link = label && label.href ? label.href : null;
          if (to_link) {
            window.location.href = to_link;
          } else {
            window.location.href = "https://www.douyu.com/g_" + local_url.match(RegExp(
              /subCate\/.*/g
            ))[0].replace("subCate", "").match(new RegExp(
              /\w+/g
            ))[0];
          }
        });
      });
      function runCategory() {
        Array.from(querySelectorAll(".layout-Cover-item")).forEach((li) => {
          if (li.mark) {
            return;
          }
          const link = querySelector(li, ".DyListCover-wrap");
          if (!link) {
            return;
          }
          link.setAttribute("href", "javascript:;void(0)");
          const user = querySelector(link, ".DyListCover-userName");
          const name = user.textContent || "";
          const roomId = that.getRoomIdByUrl(link == null ? void 0 : link.href);
          if (that.isRemove(roomId) || that.userIsExist(name)) {
            removeDOM(li, true);
          } else {
            if (!user.mark && roomId && name) {
              user.mark = "mark";
              link.title = `点击移除主播:${name}`;
              addEventListener(user, "click", (e) => {
                e.preventDefault();
                that.addUser(roomId, name);
                removeDOM(li);
              });
            }
          }
          addEventListener(li, "mouseenter", () => {
            const a = querySelector(li, ".DyListCover-wrap.is-hover");
            if (!a) {
              return;
            }
            const user2 = querySelector(a, ".DyListCover-userName");
            const id = that.getRoomIdByUrl(a.href);
            if (!user2 || !roomId || user2.mark) {
              return;
            }
            a.title = `点击移除主播:${user2.textContent}`;
            a.setAttribute("href", "javascript:;void(0)");
            addEventListener(a, "click", (e) => {
              e.preventDefault();
            });
            addEventListener(user2, "click", (e) => {
              e.preventDefault();
              if (id && user2.textContent) {
                removeDOM(li);
                that.addUser(id, user2.textContent);
              }
            });
            user2.mark = "is-mark";
          });
          li.mark = "mark";
        });
      }
      runCategory();
      window.addEventListener("scroll", throttle(1e3, runCategory));
    }
    // 详情页操作
    detail() {
      let that = this;
      if (!new RegExp(/.*douyu.*(\/((.*rid=\d+)|(\d+)).*)$/).test(local_url)) {
        return;
      }
      findMark(".Title-roomInfo h2.Title-anchorNameH2", (hostName) => {
        hostName.title = `点击屏蔽主播【${hostName == null ? void 0 : hostName.textContent}】`;
        addEventListener(hostName, "click", () => {
          that.addUser(that.getRoomIdByUrl(local_url), hostName.textContent);
        });
      });
      loopDo(() => {
        let closeBtn = querySelector(".roomSmallPlayerFloatLayout-closeBtn");
        if (closeBtn) {
          closeBtn.click();
        }
      }, 30, 1e3);
      if (new RegExp(/.*douyu.*\/topic(\/(.*rid=\d+).*)/).test(local_url)) {
        let backgroundNones = [".wm-general-wrapper.bc-wrapper.bc-wrapper-player", ".wm-general-bgblur"];
        Array.from(querySelectorAll("#root>div")).forEach((element) => {
          if (!!querySelector(element, ".layout-Main")) {
            backgroundNone(element, backgroundNones);
          } else {
            removeDOM(element, true);
          }
        });
      }
      if (new RegExp(/.*douyu.*(\/(\d+)).*/).test(local_url)) {
        removeDOM(".layout-Main .ToTopBtn", true);
      }
      this.isFullScreen();
      this.isAutoMaxVideoPro();
      findMark(".ChatToolBar .ShieldTool-enter .ShieldTool-listItem", (item) => {
        if (item.className.indexOf("is-noChecked") !== -1) {
          item.click();
          log("自动点击了弹幕礼物显示工具");
        }
      }, 100, 1e3);
    }
    // 通过房间号获取直播间name
    async getNameByRoomId(keywords) {
      var _a;
      let that = this;
      let searchResult = await getInfo(keywords);
      if ((searchResult == null ? void 0 : searchResult.room) && ((_a = searchResult == null ? void 0 : searchResult.room) == null ? void 0 : _a.nickname)) {
        log(`搜索到主播 ${searchResult.room.nickname}`);
        return searchResult.room.nickname;
      }
      let hostName = querySelector(".Title-blockInline .Title-anchorName h2");
      if (!hostName) {
        Array.from(querySelectorAll(".layout-List-item")).forEach((room) => {
          const id = that.getRoomIdByUrl(querySelector(room, "a").href);
          const user = querySelector(room, ".DyCover-user");
          if (id === keywords) {
            hostName = user;
          }
        });
        if (!hostName) {
          Array.from(querySelectorAll(".layout-Cover-item")).forEach((room) => {
            const id = that.getRoomIdByUrl(querySelector(room, "a").href);
            const user = querySelector(room, ".DyListCover-userName");
            if (id === keywords) {
              hostName = user;
            }
          });
        }
      }
      return (hostName == null ? void 0 : hostName.textContent) || "";
    }
    // 通过房间地址获取房间号
    getRoomIdByUrl(url = local_url) {
      try {
        if (new RegExp(/.*rid=(\d+).*/).test(url)) {
          return url.match(new RegExp(/rid=(\d+)/))[1];
        }
        if (/https:\/\/www\.douyu\.com\/(\d+).*/.test(url)) {
          return url.match(new RegExp(/https:\/\/www\.douyu\.com\/(\d+)/))[1];
        }
        return null;
      } catch (e) {
        return null;
      }
    }
    isFullScreen() {
    }
    autoHideMenu() {
      const isShow = wls.getItem(this.menu_is_first_key) != null && getLocalStore(this.menu_show_key, Boolean.name);
      if (isShow) {
        return;
      }
      loopDo((timer) => {
        const clickM = querySelector(".Aside-toggle");
        const leftSider = querySelector("#js-aside");
        if (leftSider instanceof HTMLElement && clickM instanceof HTMLElement) {
          const leftSiderWidth = Number(window.getComputedStyle(leftSider).width.split("px")[0]);
          if (leftSiderWidth > 80) {
            clickM.click();
            log("左侧侧边栏自动收起!");
          }
          clearInterval(timer);
        }
      }, 100, 100);
    }
  }
  class BiliBili extends LivePlugin {
    constructor() {
      super();
      this.header_logo = ".bili-header .bili-header__bar ul>li>a";
      this.video_player_container = "#bilibili-player";
      this.fullScreenText = "进入全屏 (f)";
      this.full_screen_is_find = false;
      this.full_screen_button = ".bpx-player-ctrl-btn.bpx-player-ctrl-full";
      this.auto_max_pro_class_or_id_list = ".bpx-player-ctrl-btn.bpx-player-ctrl-quality .bpx-player-ctrl-quality-menu>.bpx-player-ctrl-quality-menu-item";
      this.init();
    }
    // init() {
    //     this.clickLogoShowContainer()
    //     this.users = getLocalStore(this.key, Array.name, true) || []
    //     if (!this.removeRoom()) {
    //         this.create_container()
    //         this.detail()
    //         this.index()
    //         this.category()
    //         this.common()
    //     }
    //     this.addEven()
    //     this.settingBackgroundImage()
    // }
    /**
     * 重写 button
     * @returns
     */
    createButton() {
      let that = this;
      loopDo(() => {
        if (!!that.logo_btn) {
          return;
        }
        let buttonBoxs = querySelector(".palette-button-wrap .storage-box .storable-items");
        let btn = createElement("button");
        btn.className = "primary-btn";
        btn.style.fontSize = "16px";
        if (!buttonBoxs) {
          buttonBoxs = document.querySelector("body");
          btn = createElement("div");
          btn.style.display = "none";
          btn.className = "m-bilibili-btn";
          btn.style.cursor = "pointer";
          btn.style.position = "fixed";
          btn.style.bottom = "220px";
          btn.style.right = "6px";
          btn.style.display = "block";
          btn.style.zIndex = 9999999;
          window.onscroll = () => {
            if (window.scrollY >= 530) {
              btn.style.display = "block";
            } else {
              btn.style.display = "none";
            }
          };
        }
        btn.title = "点击显示";
        btn.innerHTML = iconLogo();
        that.logo_btn = btn;
        addEventListener(btn, "click", function() {
          that.isShowContainer();
        });
        insertChild(buttonBoxs, that.logo_btn);
      }, 20, 500);
    }
    async getRoomIdByUrl(href) {
      var _a, _b;
      try {
        if (isBVId(href)) {
          let result = await getBiliBiliInfoByVideoID(local_url);
          if (result.code === 0 && ((_a = result == null ? void 0 : result.owner) == null ? void 0 : _a.mid)) {
            return (_b = result == null ? void 0 : result.owner) == null ? void 0 : _b.mid;
          }
        }
        if (isUserId(href)) {
          return href.match(/https:\/\/space\.bilibili\.com\/(\d+).*/)[1];
        }
      } catch (error2) {
      }
      return this.getBilibiliRoomId(href);
    }
    getBilibiliRoomId(href) {
      return !!href && href.replace(/https:\/\/.*\.bilibili.com\/(.*?)/, "$1").replace(/\//ig, "");
    }
    // 添加删除按钮
    addDeleteRoomButton(time = 1e3) {
      let that = this;
      const scan = () => {
        const scanVideo = (sc = true) => {
          Array.from(querySelectorAll(".feed-card")).forEach((feed) => {
            var _a, _b;
            const isMark = !!querySelector(feed, ".m-span-text");
            if (feed.ok && isMark && sc) {
              return;
            }
            let item = querySelector(feed, "div.bili-video-card__info--bottom");
            const name = (_a = querySelector(item, "span.bili-video-card__info--author")) == null ? void 0 : _a.textContent;
            const href = (_b = querySelector(item, ".bili-video-card__info--owner")) == null ? void 0 : _b.href;
            const id = that.getBilibiliRoomId(href);
            if (!isMark) {
              createSpan(feed, item, id, name);
            }
            if (this.userIsExist(id) || this.userIsExist(name)) {
              removeDOM(feed, true);
              return;
            }
            feed.ok = true;
          });
          Array.from(querySelectorAll(".bili-video-card")).forEach((feed) => {
            var _a, _b, _c, _d;
            const isMark = !!querySelector(feed, ".m-span-text");
            if (feed.ok && isMark && sc) {
              return;
            }
            let item = querySelector(feed, ".bili-video-card__info--bottom");
            let isLive = false;
            if (!item) {
              isLive = true;
              item = querySelector(feed, ".bili-live-card__info--text");
            }
            const name = !isLive ? (_a = querySelector(item, "span.bili-video-card__info--author")) == null ? void 0 : _a.textContent : (_b = querySelector(item, "a.bili-live-card__info--uname span")) == null ? void 0 : _b.textContent;
            const href = !isLive ? (_c = querySelector(item, ".bili-video-card__info--owner")) == null ? void 0 : _c.href : (_d = querySelector(item, "a.bili-live-card__info--uname")) == null ? void 0 : _d.href;
            const id = this.getBilibiliRoomId(href);
            if (!isMark) {
              createSpan(feed, item, id, name);
            }
            if (this.userIsExist(name) || this.userIsExist(id)) {
              removeDOM(feed, true);
            }
            feed.ok = true;
          });
        };
        const createSpan = (container, place, id, name = id, message = "确认屏蔽up主 ", remove = true) => {
          if (!container || !place || !id || !name) {
            return;
          }
          if (!!container.querySelector(".m-span-text")) {
            return;
          }
          const span = createElement("span");
          span.classList = "m-span-text";
          addEventListener(span, "click", (e) => {
            e.preventDefault();
            if (remove) {
              removeDOM(container, true);
            }
            that.addUser(id, name);
            scanVideo(false);
          });
          appendChild(place, span);
        };
        loopDo(() => {
          scanVideo();
        }, 10, 500);
      };
      scan();
      window.addEventListener("scroll", throttle(500, scan));
      findMark(".feed-roll-btn .roll-btn", (btn) => {
        addEventListener(btn, "click", () => {
          scan();
        });
      });
    }
    clickLogoShowContainer() {
      let that = this;
      super.clickLogoShowContainer();
      window.addEventListener("scroll", () => {
        if (parseInt(window.scrollY) > 90) {
          operationLogo();
        } else {
          super.clickLogoShowContainer();
        }
      });
      const operationLogo = () => {
        if (!(wls.getItem(that.btn_is_first_key) == null || getLocalStore(that.logo_show_key, Boolean.name))) {
          return;
        }
        findMark(that == null ? void 0 : that.header_logo, (logo) => {
          logo.setAttribute("href", "javascript:;void(0)");
          logo.setAttribute("title", "点击Logo,显示插件配置");
          addEventListener(logo, "click", (e) => {
            e.preventDefault();
            that.isShowContainer();
          });
        });
      };
    }
    common() {
      this.addDeleteRoomButton();
    }
    index() {
    }
    detailLeftVideoList(sel = ".video-page-card-small") {
      const scanVideoList = (sc) => {
        Array.from(querySelectorAll(sel)).forEach((videoDom) => {
          var _a;
          const isMark = !!videoDom.getAttribute("mark");
          const isAdd = !!videoDom.querySelector(".m-span-text");
          if (isMark && isAdd && !sc) {
            return;
          }
          videoDom.setAttribute("mark", true);
          const playinfo = querySelector(videoDom, ".playinfo");
          const link = querySelector(videoDom, ".upname a");
          const id = !!link && (link == null ? void 0 : link.href) && this.getBilibiliRoomId(link.href);
          const name = (_a = querySelector(videoDom, ".upname .name")) == null ? void 0 : _a.textContent;
          if (this.userIsExist(id) || this.userIsExist(name)) {
            removeDOM(videoDom, true);
            log("up主", name, "已经被移除!UUID=>", id);
          } else if (!isMark) {
            const span = createElement("span");
            span.classList = "m-span-text";
            addEventListener(span, "click", () => {
              this.addUser(id, name);
              scanVideoList(true);
            });
            appendChild(playinfo, span);
          }
        });
      };
      setTimeout(() => {
        scanVideoList(false);
        let button = querySelector(".rec-footer");
        addEventListener(button, "click", () => {
          scanVideoList(false);
        });
      }, 5e3);
    }
    async detail() {
      var _a, _b;
      if (!/https:\/\/www\.bilibili\.com\/video\/(.*)/.test(local_url)) {
        return;
      }
      this.detailLeftVideoList();
      this.detailLeftVideoList(".video-page-operator-card-small");
      this.isFullScreen();
      this.isAutoMaxVideoPro();
      const result = await getBiliBiliInfoByVideoID(local_url);
      if (result && (result == null ? void 0 : result.code) === 0 && this.userIsExist((_a = result == null ? void 0 : result.owner) == null ? void 0 : _a.mid) || this.userIsExist((_b = result == null ? void 0 : result.owner) == null ? void 0 : _b.name)) {
        this.roomIsNeedRemove();
      }
    }
    async getNameByRoomId(keywords) {
      var _a, _b, _c;
      if (isBVId(keywords)) {
        let result = await getBiliBiliInfoByVideoID(keywords);
        if (result && (result == null ? void 0 : result.code) === 0) {
          return (_b = (_a = result == null ? void 0 : result.data) == null ? void 0 : _a.owner) == null ? void 0 : _b.name;
        }
      } else if (isUserId(keywords)) {
        let result = await getBiliBiliInfoByUserId(keywords);
        if (result && (result == null ? void 0 : result.code) === 0) {
          return (_c = result == null ? void 0 : result.data) == null ? void 0 : _c.name;
        }
      } else {
        warn(" getNameByRoomId can not find result !");
        return null;
      }
    }
  }
  class DouYin extends LivePlugin {
    constructor() {
      super();
      this.header_logo = "#root .N_HNXA04 .HQwsRJFy a";
      this.full_screen_class_or_id = ".xgplayer-page-full-screen .xgplayer-icon";
      this.full_button_tag_name = "div";
      this.full_screen_text = "进入全屏";
      this.full_cancel_text = "退出全屏";
      this.auto_max_pro_class_or_id_list = "#slidelist .gear .virtual>.item";
      this.init();
    }
    removeRoomByClickRoomName() {
      this.notSupport();
    }
    getNameByRoomId(roomId) {
      return this.notSupport();
    }
    getRoomIdByUrl(url) {
      return this.notSupport();
    }
    notSupport() {
      log("抖音暂时不支持该操作!");
      return null;
    }
    common() {
      this.isFullScreen();
      this.isAutoMaxVideoPro();
    }
  }
  const login$1 = () => {
    const addStyle2 = (str) => {
      const head = document.querySelector("head");
      const s = document.createElement("style");
      s.innerHTML = str;
      head.appendChild(s);
    };
    const login_box = "login-box";
    const login_btn = "login-btn";
    const cancel_btn = "cancel-btn";
    const localUrl = window.location.href;
    const huyaLogin = () => /https?:\/\/.*\.huya\.com\/.*/.test(localUrl);
    const douyinLogin = () => /https?:\/\/.*\.douyin\.com\/.*/.test(localUrl);
    const hy = [{
      [login_box]: "#UDBSdkLgn",
      [login_btn]: "[class^=HeaderDynamic] [class^=Login] [class^=LoginHd] span",
      [cancel_btn]: "#close-udbLogin"
    }];
    const douyin = [{
      [login_box]: "[id^=login-full-panel]",
      [login_btn]: "#_7hLtYmO>button",
      [cancel_btn]: ".dy-account-close"
    }, {
      [login_box]: "[id^=login-full-panel]",
      [login_btn]: "#tcTjz3nj",
      [cancel_btn]: ".dy-account-close"
    }];
    let LOGIN_BOX = [];
    const addLoginCancel = (loginSelector, loginBtnCancel) => {
      let loginContainer = document.querySelector(loginSelector);
      if (!(loginContainer instanceof HTMLElement)) {
        return;
      }
      if (loginContainer.classList.contains("m-display-block")) {
        loginContainer.classList.remove("m-display-block");
      }
      console.log("login cancel 扫描中...");
      let timer = setInterval(() => {
        let closeBtn = loginContainer.querySelector(loginBtnCancel);
        if (closeBtn && closeBtn.mark) {
          clearInterval(timer);
          return;
        }
        if (closeBtn && !closeBtn.mark) {
          console.log("cancel button 已经找到了", closeBtn);
          closeBtn.mark = true;
          closeBtn.addEventListener("click", () => {
            console.log("click me!", loginContainer);
          });
        }
      }, 1e3);
    };
    const handlerLogin = (loginSelector, loginBtnSelector, loginBtnCancel) => {
      let loginContainer = null;
      let timer = setInterval(() => {
        loginContainer = document.querySelector(loginSelector);
        if (!loginContainer) {
          return;
        }
        if (loginContainer.mark) {
          clearInterval(timer);
          return;
        }
        loginContainer.mark = true;
        if (loginContainer && !loginContainer.classList.contains("m-display-none")) {
          loginContainer.classList.add("m-display-none");
        }
      }, 100);
      let timer1 = setInterval(() => {
        const btn = document.querySelector(loginBtnSelector);
        if (btn && btn.mark) {
          clearInterval(timer1);
          return;
        }
        if (btn && !btn.mark) {
          btn.mark = true;
          btn.addEventListener("click", () => {
            loginContainer = document.querySelector(loginSelector);
            if (loginContainer) {
              if (loginContainer.classList.contains("m-display-none")) {
                loginContainer.classList.remove("m-display-none");
                if (!loginContainer.classList.contains("m-display-block")) {
                  loginContainer.classList.add("m-display-block");
                }
                addLoginCancel(loginSelector, loginBtnCancel);
              } else {
                if (loginContainer.classList.contains("m-display-block")) {
                  loginContainer.classList.remove("m-display-block");
                }
                if (!loginContainer.classList.contains("m-display-none")) {
                  loginContainer.classList.add("m-display-none");
                }
              }
            }
            console.log("click me login !", loginContainer);
          });
        }
      }, 100);
    };
    const initbox = () => {
      if (huyaLogin()) {
        LOGIN_BOX = [...hy];
      } else if (douyinLogin()) {
        LOGIN_BOX = [...douyin];
      } else
        ;
      LOGIN_BOX.forEach((item) => {
        handlerLogin(item[login_box], item[login_btn], item[cancel_btn]);
      });
    };
    initbox();
    const loginCss = `
  .m-display-block {
      display:block !important;
  }
  .m-display-none {
      display:none !important;
  }
`;
    addStyle2(loginCss);
  };
  const isDouyuDetail = () => /.*douyu.*(\/((.*rid=\d+)|(\d+)).*)$/.test(local_url);
  const isCreate = () => local_url.indexOf("https://www.douyu.com/creator") !== -1;
  const createDark = isCreate() ? `
  .dark * {
    background-color: var(--w-bg-darker) !important;
    border-color: var(--w-text) !important;
    color: var(--w-text-light) !important;
  }
  
  ` : ``;
  const loadingLazy = isDouyuDetail() ? `` : `
.dark .LazyLoad{
  background: var(--w-bg-dark) !important;
}
`;
  const darkCss$1 = `
${createDark}
${loadingLazy}
.dark .DyCover-pic,
.dark .Search-backTop {
  background: var(--w-bg-dark) !important;
}


.dark  .Horn4Category-popWrap 
 {
  background: var(--w-bg) !important;
  background-image:none !important;
  border:1px solid var(--w-text-light) !important;
}

.dark  #lazyModule9 .layout-Module-container,
.dark .layout-Section.layout-Header,
.dark .layout-Slide-bannerInner,
.dark .layout-Module-head.is-fixed,
.dark .layout-List-item,.dark .layout-List-item .DyCover,
.dark .Header-wrap,.dark .AnchorRank-more,
.dark .Elevator,.dark .Elevator-item,.dark .Elevator-item.is-active>span::before,.dark .public-DropMenu-drop,
.dark .Category-item,.dark .DropMenuList-linkAll,.dark .GiftInfoPanel-brief,
.dark .Header-menu-wrap,.dark .DyListCover-wrap,
.dark .layout-Module-label--hasList.is-active, .dark .layout-Module-label,
.dark .ListFooter .dy-Pagination-next, .dark .ListFooter .dy-Pagination-prev,
.dark .ListFooter .dy-Pagination .dy-Pagination-item,.dark .ListFooter .dy-Pagination .dy-Pagination-item-active,.dark .ListFooter .ListFooter-btn-wrap,
.dark .layout-Player-title,.dark .layout-Player-aside,
.dark .layout-Player-asideMain,.dark .layout-Player-barrage,.dark .layout-Player-toolbar,
.dark .Barrage-listItem,.dark .Barrage-EntranceIntroduce, .dark .Barrage-roomVip--super,
.dark .DiamondsFansBarrage, .dark #js-floatingbarrage-container li, .dark #js-fansflating-barrage,
.dark .Barrage-EntranceIntroduce-Anchor, .dark .Barrage-EntranceIntroduce-Goodgame, .dark .FollowGuide,
.dark .BarrageBuffer,
.dark .Barrage-FansHome-content,.dark .Barrage-FansHome,
.dark .ChatSend-txt,.dark .layout-Classify-card,.dark .cate2TagB-item,
.dark .PlayerToolbar-signCont,.dark .dy-Modal-content,.dark .CustomGroupCommon .dy-Modal-title,
.dark .CustomGroupManager-title,.dark .FilterKeywords,
.dark .Barrage-toolbarClear .Barrage-toolbarText,.dark .Barrage-toolbarLock:hover .Barrage-toolbarText,
.dark .dy-ModalRadius-content, .dark .categoryTab-item, .dark customizeModal-submit, .dark .customizeModal-cancel, .dark .search-ipt,
.dark .addedCategory-item, .dark .Search, .dark .Header-wrap.is-start .Search, .dark .Search-historyList>li, .dark .Search-text,
.dark .ListHeader-hero-header,.dark .layout-Module-label--hasList,.dark .ListHeader-pop,.dark .layout-Module-filter-more,
.dark .Barrage-toolbarClear, .dark .Barrage-toolbarLock,.dark .AssembleExpressHeader-head, .dark .Emotion, .dark .ShieldTool-list,.dark .BarrageTips,
.dark .BarrageTips .BarrageTips--active,.dark .FansMedalDialog-normal, .dark .ChatBarrageCollect .ChatBarrageCollect-tip,.dark .AssembleExpressHeader,
.dark .TagItem,.dark .ChatBarrageCollectPop , .dark .Horn4Category-popWrap,.dark .Horn4Category-inputor,.dark .ChatFansBarragePop,
.dark .PopularBarrage .PopularBarragePanel-foot, .dark .PopularBarrage .PopularBarragePanelStyle, .dark .BarrageWordPanel-card,
.dark .BarrageWordPanel-btn,.dark .BarrageWordPanel-header h2,.dark .BarrageWordPanel-header,.dark .CustomGroupManager-saveBtn,
.dark .DyRecCover-wrap,.dark .CustomGroupCommon .dy-Modal-header,.dark .CustomGroupCommon .dy-Modal-close-x,
.dark .CustomGroupCommon .dy-Modal-close,.dark .CustomGroupCommon,.dark .dy-Modal-close,.dark .dy-Modal-header,
.dark .dy-Modal-footer button,.dark .FilterSwitchStatus-switch,.dark .LevelFilKeyTab .tab.active,.dark .LevelFilterLimit,
.dark .BarrageFilter-fkbutton, .dark .FilterKeywords-edit-input, .dark .LevelFilterLimit-input,.dark .LevelFilKeyTab,
.dark .Search-recommend:hover,.dark .DropPaneList.HistoryList .DropPaneList-title,.dark .index-listWrap-jz2Rt,
.dark .layout-Card-horizon,.dark .layout-Tab-container .layout-Tab-item.is-active,.dark .layout-Tab-container .layout-Tab-item,
.dark .SearchChannel-item,.dark SearchChannel-item-detail,.dark .layout-Tab-container.is-fixed,
.dark .layout-Player-chat,.dark .AnchorRank-item,
.dark layout-Player-chat *,
.dark #js-footer
{
  background-color: var(--w-bg-darker) !important;
  color: var(--w-text-light) !important;
}




.dark .Elevator-item.is-active>span,
.dark .Elevator-item:nth-child(odd)
 {
  background-color: rgba(var(--w-bg-darker),0.7) !important;
}

.dark .SearchAnchorVideo-title,
.dark .dy-ModalRadius-header, .dark .addedCategory-count,
.dark .RoomList .layout-Module-title, .dark .RoomList .layout-Module-title a,.dark layout-Module-title span,
.dark .AnchorRank .layout-Module-title,.dark  .AnchorRank .layout-Module-title a,
.dark .DyCover-intro,.dark .DyCover-user,.dark .DyCover-zone,.dark a, .dark .layout-Module-title a,
.dark .DyRecCover-zone,.dark .DyRecCover-intro,.dark .DyRecCover-userName,.dark .DyRecCover-tag,
.dark .Category-item,.dark .DropMenuList-name, .dark .DropMenuList-linkAll,.dark .ListHeader-title,
.dark .layout-Module-label--hasList.is-active, .dark .layout-Module-label.is-active,
.dark .DyListCover-intro,.dark .DyListCover-zone,.dark .DyListCover-hot,.dark .DyListCover-userName,
.dark .ListFooter .dy-Pagination .dy-Pagination-item-active a,
.dark .ListFooter .dy-Pagination .dy-Pagination-item,
.dark .ListFooter .dy-Pagination .dy-Pagination-item-active,
.dark .ListFooter .ListFooter-btn-input,.dark .ListFooter-btn,.dark .ListFooter-btn-label,
.dark .Title-header,.dark .Title-report,.dark .Title-anchorName,
.dark .Barrage-main .Barrage-content,.dark .Barrage-roomVip--super,
.dark .PlayerToolbar span,.dark .Title-followNum, .dark .PlayerToolbar-signCont,
.dark .Barrage-EntranceIntroduce-Anchor, .dark .Barrage-EntranceIntroduce-Goodgame ,.dark .Barrage-EntranceIntroduce-Content,
.dark .SwipeTabsContent .tabItem ,.dark .layout-Classify-card>strong ,.dark .secondCateCard-hot,
.dark .layout-Classify-card.secondCateCard,.dark .layout-Classify-card.secondCateCard.secondCateCark-hoverCard,.dark .HoverCark-wrap,
.dark .PlayerToolbar-signCont .RoomText-list .SignBaseComponent-text-link,.dark .customizeModal-title>h3,.dark .Search-label, .dark .Search-historyList>li,
.dakr .Search-hotList li,.dark .Search-linkIcon svg,.dark .categoryTab-tab,.dark .ListHeader-hero-content-tag,
.dark .Barrage-toolbarClear, .dark .Barrage-toolbarLock,.dark .Barrage-toolbarText,.dark .ShieldTool-listItem,.dark .BarrageTips,.dark .ChatBarrageCollectPop-title,
.dark .FansBarrageColor-item-txt,.dark .ChatFansBarragePop-txt,
.dark .PopularBarrage .PopularBarragePanel-descFansPrivilege,
.dark .PopularBarrage .PopularBarragePanel-descFansRenew,
.dark .PopularBarrage .PopularBarragePanel-descLock,.dark .dy-Modal-close,
.dark .ChatFansBarragePop-diamondsTxt,.dark .BarrageWordPanel-example,.dark .BarrageWordPanel-feedbackTips,
.dark .BarrageWordPanel-block h3,.dark .BarrageWordPanel-reward,.dark .BarrageWordPanel-tips,
.dark .CustomGroupManager-title strong,.dark .CustomGroupManager-groupItem,.dark .CustomGroupManager-checkItem>span,
.dark .CustomGroupManager,.dark .LevelFilKeyTab .tab, .dark .layout-Result,
.dark .FKNokeywords-title, .dark .Search-recommend-info p,.dark .layout-Module-title,
.dark .Search-keyword, .dark .Search-anchor.is-horizon .Search-anchor-info .Search-anchor-recommendTitle,
.dark .Search-anchor .Search-anchor-info .Search-anchor-recommendTitle,.dark SearchAnchorVideo-title,
.dark .Search-anchor-info h1,.dark .Search-anchor-info h2,.dark .Search-anchor-info h3,.dark .Search-anchor-info h4,.dark .Search-anchor-info h5,.dark .Search-anchor-info h6,
.dark .DropPaneList-live.is-live,.dark .Search-category h3,.dark .Search-category p,.dark .Search-category p span,
.dark .FilterKeywords-allText, .dark .FilterKeywords-intelligentText,
.dark .SearchChannel-item-detail-name,.dark .SearchChannel-item-detail-name span,
.dark .SearchChannel-item-detail-desc.SearchChannel-item-detail-isCate,.dark .SearchChannel-item-detail-desc.SearchChannel-item-detail-isCate span,
.dark .Search-yuba .des .name,.dark .layout-Search-input>input
{
  color: var(--w-text-light) !important;
}


.dark .Search-recommend-info h3,.dark .Search-feedback-section,.dark .Search-feedback-section,
.dark .Header-menu-link.active a:hover,
.dark .RoomList .layout-Module-title:hover,
.dark .RoomList .layout-Module-title a:hover,
.dark .DyCover-intro:hover,
.dark .DyCover-user:hover,
.dark .DyCover-zone:hover,
.dark a:hover,.dark .FilterSwitchStatus h3,.dark .FilterSwitchStatus-status,
.dark .layout-Module-title a:hover,
.dark .DropMenuList-name:hover,
.dark .DropMenuList-linkAll:hover,
.dark .ListHeader-title,
.dark .layout-Module-label--hasList.is-active:hover, 
.dark .layout-Module-label.is-active:hover,
.dark .ListFooter .dy-Pagination .dy-Pagination-item-active a:hover,
.dark .ListFooter .dy-Pagination .dy-Pagination-item:hover,
.dark .ListFooter .dy-Pagination .dy-Pagination-item-active:hover,
.dark .Title-anchorName:hover,.dark .Title-row-icon,.dark .Title-row-text,
.dark .SwipeTabsContent .tabItem:hover,.dark .SwipeTabsContent .tabItem.active,
.dark .layout-Classify-card>strong:hover,.dark .secondCateCard-hot:hover,
.dark .Barrage-toolbarClear:hover, .dark .Barrage-toolbarLock:hover,
.dark .ShieldTool-listItem.is-checked .ShieldTool-checkText,.dark .BarrageTips .BarrageTips--active,
.dark .ChatFansBarragePop-txt span,.dark .dark .ChatFansBarragePop-diamondsTxt span,.dark .ChatFansBarragePop-diamondsTxt span,
.dark .PopularBarrage .PopularBarragePanel-descFansPrivilege:hover,
.dark .PopularBarrage .PopularBarragePanel-descFansRenew:hover,.dark .DropPaneList-name,
.dark .PopularBarrage .PopularBarragePanel-descLock:hover,.dark .DropPaneList span,
.dark .Search-content-title, .dark .Search-default-title, .dark .Search-history-title, .dark .Search-hot-title,
.dark .FilKeyTab .tab.active,.dark Search-anchor-data,.dark .Search-anchor.is-horizon .Search-anchor-info p,
.dark .Search-anchor .Search-anchor-info,.dark Search-anchor-cate,.dark .Search-anchor-info,
.dark .Search-anchor-info h4.is-official,.dark .Search-anchor-info h3.is-official,.dark .Search-anchor-info h2.is-official,.dark .Search-anchor-info .is-official
{
  color: var(--w-text) !important;
}




.dark .dark .CustomGroupManager-saveBtn,.dark .CustomGroupCommon .dy-Modal-header,
.dark .Search-historyList>li,.dark .layout-List-item,.dark .DyListCover-wrap,
.dark .ListFooter .dy-Pagination-item,.dark .ListFooter .dy-Pagination-next,.dark .ListFooter .dy-Pagination-prev,
.dark .ListFooter .dy-Pagination .dy-Pagination-item,.dark .ListFooter .dy-Pagination .dy-Pagination-item-active,
.dark .layout-Player-aside,.dark .layout-Player-asideMain, .dark .layout-Player-barrage,
.dark .PopularBarrage .PopularBarragePanel-foot,.dark .BarrageWordPanel-card,.dark .BarrageWordPanel-btn,
.dark .dy-Modal-footer button,.dark .LevelFilterLimit-input,
.dark .layout-Classify-card, .dark customizeModal-submit,.dark .layout-Menu, 
.dark .layout-Player-asideMain, .layout-Player-toolbar,
.dark .customizeModal-cancel,.dark .ChatBarrageCollect .ChatBarrageCollect-tip
{
  border: 1px solid var(--w-border) !important;
}




.dark .Header-wrap,.dark .layout-Player-title,
.dark .ChatSend-txt,
.dark .public-DropMenu-drop-main:before,.dark .Search-anchor-avatar,
.dark .categoryTab-head,.dark .ListHeader-hero-header,.dark .ListHeader-hero-content-icon,
.dark .EmotionTab,.dark .ChatFansBarragePop-describe,.dark .FansMedalPanel-container,
.dark .LevelFilterLimit,.dark .FKNokeywords-title
{
  border-color:var(--w-border) !important;
}



.dark .Category-item,
.dark .layout-Module-label--hasList.is-active, 
.dark .layout-Module-label,
.dark .DropMenuList-linkAll,
.dark .ListFooter .ListFooter-btn-wrap,
.dark .cate2TagB-item,
.dark .PlayerToolbar-signCont .RoomText-list .SignBaseComponent-text-link,
.dark .categoryTab-item,.dark .Header-wrap.is-start .Search ,.dark .addedCategory-item .dark .search-ipt,
.dark .layout-Module-filter-more,.dark .Barrage-toolbarClear, .dark .Barrage-toolbarLock,
.dark .ShieldTool-list,.dark .BarrageTips,.dark .ChatBarrageCollect .ChatBarrageCollect-tip:hover,
.dark .AssembleExpressHeader,.dark .TagItem,
.dark .dy-Modal-footer button:hover,.dark .FilterSwitchStatus-switch,
.dark .BarrageWordPanel-btn,.dark .LevelFilterLimit-input:focus,
.dark .BarrageFilter-fkbutton, .dark .FilterKeywords-edit-input, .dark .LevelFilterLimit-input,
.dark .FilterKeywords-edit-input:focus, .dark .LevelFilterLimit-input:focus
{
  border: 1px solid var(--w-text-light) !important;
}


.dark .Category-item:hover,
.dark .layout-Module-label--hasList.is-active:hover, 
.dark .layout-Module-label:hover,
.dark .DropMenuList-linkAll:hover,
.dark .categoryTab-item:hover,
.dark .addedCategory-item:hover,
.dark .Barrage-toolbarClear:hover, .dark .Barrage-toolbarLock:hover,
.dark .ChatBarrageCollect .ChatBarrageCollect-tip:hover,.dark .TagItem:hover,
.dark .BarrageWordPanel-btn:hover
{
  border: 1px solid var(--w-text) !important;
}


.dark .Barrage-roomVip--super,
.dark .Barrage {
  border: none !important;
}

.dark .Search-direct,
.dark .DyCover,.dark .Search-yuba,
.dark .layout-Card-history, .dark .layout-Card-rank,
.dark .layout-Cover-item,.dark .Search-input-pane,
.dark .ListRecommend-refresh,.dark .ListHeader-pop-label,
.dark layout-Module-label,.dark .Search-default-item,
.dark .Search-recommend .Search-direct,.dark Search-category,
.dark .layout-Search-input,.dark .layout-Search-btn,
.dark .Search-feedback-textarea,.dark .VideoCollectionMix .layout-videoCollection-item,
.dark .categoryBoxB-editB .edit,.dark .layout-Nav-backTop,.dark .ChatSend-button,
.dark .MuteStatus.is-noLogin,
.dakr .Search-direct {
  background-color: var(--w-bg-darker) !important;
  border:1px solid var(--w-text) !important;
  color: var(--w-text-light) !important;
}


.dark .DyCover:hover,.dark .layout-Search-btn:hover,
.dark .ChatSend-button:hover,
.dark .dark Search-category:hover,.dark .categoryBoxB-editB .edit:hover,
.dark .Search-default-item:hover,.dark .Search-recommend .Search-direct:hover,
.dark .Category-item:hover,.dark .ListRecommend-refresh:hover,
.dakr .Search-direct:hover,.dark .ListHeader-pop-label:hover,
.dark .Search-topicRecommend:hover,.dark layout-Module-label:hover,
.dark .Search-direct:hover,
.dark .Search-recommend:hover {
  background-color: var(--w-bg) !important;
  border:1px solid var(--w-text-light) !important;
  color: var(--w-text) !important;
}


.dark .dy-ModalRadius-footer button,
.dark .layout-Tab-item,.dark .dy-ModalRadius-close,
.dark .DropPaneList>a{
  background-color: var(--w-bg-dark) !important;
  border: none !important;
  color: var(--w-text-light) !important;
}

.dark .dy-ModalRadius-close:hover,.dy-ModalRadius-footer button:hover,
.dark .layout-Tab-item.is-active,.dark .layout-Tab-item:hover,
.dark .Search-rank-wrapper:hover .Search-rank,
.dark .YubaMessage-link:hover,
.dark .layout-Tab-item:hover,
.dark .Search-hotList li:hover,
.dark .DropPaneList>a:hover {
  background-color: var(--w-bg) !important;
  color: var(--w-text) !important;
}

`;
  const headerDarkCss = `
.layout-Section.layout-Header {
  background-color:#000  !important;
}
`;
  const css$4 = is_douyu ? `

.layout-List-item .DyCover-content .DyCover-user,.layout-Cover-item .DyListCover-userName,.Title-blockInline .Title-anchorName h2{
  cursor:pointer !important;
}
.layout-List-item .DyCover-content .DyCover-user:hover,.layout-Cover-item .DyListCover-userName:hover,.Title-blockInline .Title-anchorName h2:hover {
  color:rgb(255, 135, 0) !important;
}


.layout-Section.layout-Slide,
.Header-broadcast-wrap,
#lazyModule3,
#lazyModule4,
#lazyModule5,
#lazyModule6,
#lazyModule7,
#lazyModule8,
#lazyModule23,
#lazyModule24,
#js-room-activity,
#js-right-nav,
#js-bottom,
#js-header .Header .HeaderNav,
#js-header .Header .HeaderGif-left,
#js-header .Header .HeaderGif-right,
.Header-download-wrap,
.AnchorInterToolsUser,
.RechangeJulyPopups,
li.Header-menu-link,
.layout-Main .layout-Customize,
.HeaderCell-label-wrap,
.Title-AnchorLevel,.RoomVipSysTitle,
.Aside-nav .Aside-nav-item,
.Title-roomInfo .Title-row,
#player-marvel-controller+div,
.layout-Player-main .GuessGameMiniPanelB-wrapper,
#js-player-asideMain #layout-Player-aside .FirePower,
.layout-Player-video .layout-Player-videoAbove .ChargeTask-closeBg,
#bc4-bgblur,.Search-ad,
.SignBaseComponent-sign-ad, 
.SignBaseComponent-sign-ad .LazyLoad,
.list-Banner-adv,
.Baby-image.is-achievement,
.multiBitRate-da4b60{
  display:none !important;
}


li.Header-menu-link:nth-child(1),
li.Header-menu-link:nth-child(2),
li.Header-menu-link:nth-child(3),
.Aside-nav .Aside-nav-item:nth-child(1)
{
  display:inline-block !important;
}


.SupremeRightIconJSX,.AnchorLevel,
.Barrage-main  .UserLevel,
.Barrage-main  .js-user-level,
.Barrage-main  .Barrage-icon,
.Barrage-main  .Motor,
.Barrage-main  .Motor-flag,
.Barrage-main  .Barrage-hiIcon,
.Barrage-main  .UserGameDataMedal,
.Barrage-main  .ChatAchievement,
.Barrage-main  .Barrage-notice,
.layout-Player .layout-Player-announce,
.layout-Player .layout-Player-rank,
.MatchSystemTeamMedal,
#js-player-video .ScreenBannerAd,
.layout-Main #layout-Player-aside .BarrageSuspendedBallAd,
.layout-Main #layout-Player-aside .SignBarrage,
#js-player-video-case .VRTips~div,
.layout-Main .Title-roomInfo .Title-row,
.layout-Main .ToTopBtn,
.Header-right .public-DropMenu-drop .DropPane-ad,
.Header-right .CloudGameLink,
.Header-menu-wrap .DropMenuList-ad,
.public-DropMenu-drop-main div.Header-UserPane-top~div,
#js-player-dialog .LiveRoomLoopVideo,
.Header-search-wrap .Search  label,
.RedEnvelopAd.RedEnvelopAdMouseDisable,
.Barrage .Barrage-userEnter{
display:none !important;
}

/* 一般禁用模式 */
.layout-Player-main #js-player-toolbar{
display:block;
}
#root div.layout-Main{
  margin-top:70px !important;
  display:block !important;
  width:auto !important;
  max-width:auto !important;
}
#root>div,
#root>div .wm-general-bgblur
{
background-image:none !important;
}

.Title-roomInfo .Title-row:nth-child(1),
.Title-roomInfo .Title-row:nth-child(2) {
 display:block !important;
}

 .layout-Player-main .Title-roomInfo .is-normal .Title-blockInline,
 .layout-Player-main .Title-roomInfo .is-normal:nth-child(2)

  {
  display:none !important;
}

.layout-Player-main .Title-roomInfo .is-normal .Title-blockInline:nth-child(0),
.layout-Player-main .Title-roomInfo .is-normal .Title-blockInline:nth-child(1),
.layout-Player-main .Title-roomInfo .is-normal .Title-blockInline:nth-child(2)
 {
  display:inline-block !important;
 }

.Barrage-main .Barrage-content {
color:#333 !important;
}
.Barrage-main .Barrage-nickName{
color:#2b94ff !important;
}
.Barrage-listItem{
color: #333 !important;
background-color: #f2f5f6 !important;
}

.Header-search-wrap input#header-search-input::placeholder {
   color: transparent !important;
   opacity:0 !important;
}

#js-aside,
.layout-Player-main #js-player-toolbar {
   display:none;
}
.js-noblefloating-barragecont {
  background: none !important;
  border: none !important;
}

${headerDarkCss}
${darkCss$1}


` : "";
  const darkCss = `
/* 修改背景和字体颜色 */
.dark .room-core,
.dark input,
.dark input:focus,
.dark textarea,
.dark textarea:focus,
.dark .hy-header-style-normal .duya-header-wrap,
.dark .duya-header,
.dark .duya-header .duya-header-bd,
.dark #J_liveListNav dl dd [class^=role],
.dark #J_liveListNav dl dd [class^=role]:hover,
.dark #J_liveListNav dl dd div li,
.dark #J_liveListNav dl dd div li:hover,
.dark [class^=emoticon] [class^=emot],
.dark .program-preview-box .preview-bd,
.dark .game-live-item,
.dark .game-live-item .txt .num,
.dark .game-live-item .txt .game-type a,
.dark .game-live-item .txt .game-type,
.dark .live-box .box-hd .more-list li,
.dark #J_duyaHeaderRight ul li a,
.dark [class^=Category] [class^=SecTitle],
.dark [class^=listItem],.dark [class^=listItem] span,
.dark .nav-expand-list,
.dark .nav-expand-list-more ,
.dark #js-game-list li,
.dark .mod-list .box-hd .filter dd .tag-layer,
.dark .room-hd,.dark .room-core-r,
.dark .room-sidebar,.dark .room-player-gift-placeholder,
.dark #chat-room__wrap #chat-room__list div,.dark #chat-room__wrap #chat-room__list div a,
.dark #js-preview-box,.dark #recom-banners,.dark #tipsOrchat,
.dark .banners-box,.dark .box-recom .recom-banners,.dark .box-recom .recom-moments,
.dark .hotMoment-box .moment-item .moment-comment .comment-item,
.dark .chat-room__input,.dark .chat-room__ft,
.dark .room-panel,
.dark .subscribe-live-item,.dark .list-hd .follow-ctrl,
.dark .btn-more,.dark #js-search-main .host-item,.dark #js-search-main .host-item .desc,
.dark .search-left .superStar-item,.dark .chat-room__input .btn-sendMsg ,
.dark .nav-expand-list.nav-expand-game span a,.dark .chat-room__ft .chat-emot div,
.dark #tipsOrchat ._PortalChatPanelRoot div, .dark .ddJUGO,
.dark .laypageskin_default a,.dark .laypage_main button,.dark .laypage_main input,
.dark .player-gift-wrap,
.dark [class^=checkbox][class^=checked] i,
.dark .chat-room__bd .chat-room__scroll .clearBtn,
.dark .chat-room__bd .chat-room__scroll .lockBtn,
.dark [class^=panel],
.dark [class^=Panel],
.dark [class^=PanelHd],
.dark [class^=PanelBd],
.dark [class^=PanelFt],
.dark [class^=PopMsg],.dark [class^=PopMsg] [class^=title],.dark [class^=PopMsg] [class^=desc],
.dark [class^=PopMsg] [class^=PopMsgArr],
.dark .room-hd .host-control .subscribe-entrance .subscribe-hd.sub-off,
.dark .duya-header-search input,.dark .inpage-advice-list li:hover,
.dark #play2 .content .content-aside>div,.dark #play2 .content .content-aside>div h2,
.dark #play2 .content .content-aside>div .more,.dark .main-info,
.dark .comment-container textarea, .dark .main-vplayer .vplayer-wrap .video_embed .video_embed_flash,
.dark .loGrI3HWkrL4-I82d11qx,
.dark .loGrI3HWkrL4-I82d11qx ._5zt-PSmfE5nKpsIw9OQE,
.dark .loGrI3HWkrL4-I82d11qx ._5zt-PSmfE5nKpsIw9OQE .MuTvmvGkEFS9kogNu9hjs, 
.dark .loGrI3HWkrL4-I82d11qx ._5zt-PSmfE5nKpsIw9OQE .MuTvmvGkEFS9kogNu9hjs:focus,
.dark #play2, .dark .duya-header-bd,.dark .aside-danmulist .danmulist-header,
.dark .search-suggest, .dark .search-suggest ,
.dark .search-suggest .search-item:hover,
.dark .search-suggest .search-item.current,
.dark #J_liveListNav dl dd span,
.dark #player-gift-wrap,.dark .player-all-gift-panel,
.dark #player-box-panel,
.dark .more-attivity-panel,.dark [class^=roomBlockWords],
.dark [class*=msg-of-king],
.dark [class^=ButtonMon][class^=fans] [class^=btn],
.dark #player-gift-tip .mic-name-color,
.dark #player-gift-tip .make-friend-people-switch,
.dark .huya-footer{
  background-color: var(--w-bg-darker) !important;
  color: var(--w-text-light) !important;
  outline: none !important;
}


/* 修改字体颜色 */
.dark .hy-nav-item-on .hy-nav-link,
.dark .hy-nav-link:hover {
  background-color: none !important;
  color: #fff !important;
}


/* 修改border */

.dark .loGrI3HWkrL4-I82d11qx ._5zt-PSmfE5nKpsIw9OQE,
.dark .search-suggest .search-item:hover,
.dark .search-suggest .search-item.current {
  background-color:none !important;
  border:1px solid var(--w-text-light) !important;
  outline: none !important;
}

/* 修改字体颜色 */
.dark .duya-header a, .dark p,.dark span,
.dark h1,.dark h2, .dark h3,.dark h4,.dark h5,.dark h6
.dark .duya-header-nav .hy-nav-item a,
.dark .duya-header-right a,
.dark .liveList-title a,
.dark .game-live-item .title,
.dark .game-live-item .txt,
.dark  .duya-header i,
.dark .video-funny .title span,
.dark .live-box .box-hd .title a,
.dark .hy-header-style-skr .hy-nav-link,
.dark [class^=Category] [class^=Item] a,
.dark #js-game-list li a .g-gameCard-fullName,
.dark .box-hd .title,
.dark .mod-list .box-hd .filter dd .tag-layer,
.dark .room-hd .host-info .host-title,
.dark .room-hd .host-name,
.dark .recom-title,
.dark .page-ctrl,
.dark .page-ctrl .ctrl-left,
.dark .page-ctrl .ctrl-right,
.dark .page-ctrl .ctrl-page,
.dark #chat-room__wrap #chat-room__list div a,
.dark #chat-room__wrap #chat-room__list div a span,
.dark .program-preview-box .preview-list .preview-item .preview-link,
.dark .program-preview-box .preview-hd .title,
.dark .program-preview-box .preview-list .preview-item .preview-line,
.dark .chat-room__list .msg-bubble span.msg,
.dark .subscribe-live-item .txt .msg-row .nick,
.dark .subscribe-live-item .txt .msg-row .intro,
.dark .subscribe-live-item .txt .msg-row .num,
.dark .list-hd .title,
.dark .list-hd .follow-ctrl .icon,
.dark .search-left .superStar-item .nick,
.dark .search-left .superStar-item .recommend,
.dark .search-left .superStar-item .room,
.dark .chat-room__list .msg-bubble .colon,
.dark .chat-room__list .msg-bubble .msg,
.dark .chat-room__input .btn-sendMsg,
.dark #tipsOrchat .live-tips,
.dark #tipsOrchat ._PortalChatPanelRoot div p,
.dark #tipsOrchat ._PortalChatPanelRoot div span,
.dark #tipsOrchat ._PortalChatPanelRoot div i,
.dark [class^=checkbox] i,
.dark [class^=checkbox] span,
.dark [class^=listItem],.dark [class^=listItem] span,
.dark [class^=barrageBox] [class^=title],
.dark [class^=barrageBox] [class^=panel], 
.dark [class^=panel],
.dark .chat-room__ft span,.dark .chat-room__ft p,
.dark .duya-header-right a i,
.dark .duya-header-right a span,
.dark #player-gift-tip .super-fans-gift .super-fans-gift-content i,
.dark #player-gift-tip .motorcade-gather-gift,.dark #player-gift-tip .mic-name,
.dark .chat-room__bd .chat-room__scroll .clearBtn,
.dark .chat-room__bd .chat-room__scroll .lockBtn,
.dark .search-advice-list li a,.dark .search-header .find-result,
.dark #play2 .crumb,.dark #play2 .crumb a,.dark .live-box .box-hd .more-list li a,
.dark .aside-videolist .video-item .item-detail .detail-nick span, dark .aside-videolist .video-item .item-detail .detail-playcount span
.dark .live-box .box-hd .more-list li a{
  color: var(--w-text-light) !important;
}


/* 修改字体颜色 hover */
.dark .liveList-title a:hover,.dark .game-live-item .title:hover,.dark .game-live-item .txt:hover,.dark .live-box .box-hd .title a:hover,.dark .live-box .box-hd .more-list li a:hover,
.dark #js-game-list li a .g-gameCard-fullName:hover,.dark .box-hd .title:hover,.dark .game-live-item .txt i:hover,.dark .host-name:hover,.dark .mod-list .box-hd .filter dd .tag-layer:hover,
.dark .subscribe-live-item .txt .msg-row .nick:hover,.dark .subscribe-live-item .txt .msg-row .intro:hover,.dark .list-hd .title:hover,.dark  #js-search-main .host-item .nick,
.dark .search-main .type-keyword,.dark #tipsOrchat .live-tips i,.dark .duya-header-right a:hover,.dark .duya-header-right a i:hover,.dark .duya-header-right a span:hover,.dark .chat-room__bd .chat-room__scroll .clearBtn:hover,
.dark .chat-room__bd .chat-room__scroll .lockBtn:hover,.dark .main-info .info-video .video-detail .video-title,
.dark .main-info .info-video .video-author h3,
.dark .search-header .find-result em,.dark .aside-videolist .video-item:hover .item-detail h3,
.dark dark [class^=FavoritePresenter] [class^=subscribe],
.dark dark [class^=FavoritePresenter] [class^=subscribe] [class^=subscribe],
.dark dark [class^=Category] [class^=Item] a:hover
{

  color: var(--w-text) !important;
}



/* 修改border */
.dark .program-preview-box,.dark .recom-banners,.dark .recom-moments,.dark .game-live-item,.dark .nav-expand-list,
.dark #js-game-list li,.dark .g-gameCard-item,.dark .room-sidebar,.dark .list-hd .follow-ctrl,.dark .btn-more,.dark #js-search-main .host-item,.dark .subscribe-live-item,
.dark .chat-room__input .btn-sendMsg,.dark .laypageskin_default a,.dark .chat-room__bd .chat-room__scroll .clearBtn,.dark .chat-room__bd .chat-room__scroll .lockBtn,
.dark .main-info .info-draw,.dark .main-info .info-comment,.dark .main-info .info-comment h2,
.dark #chat-room__wrap #chat-room__list [class^=RoomMessageRichText]{
  border:1px solid var(--w-border) !important;
  outline: none !important;
}


.dark .room-hd .host-control .subscribe-entrance .subscribe-hd.sub-off:hover,
.dark .nav-expand-list.nav-expand-game span:hover {
  background-color: var(--w-bg-darker) !important;
  color: var(--w-text-light) !important;
  outline: none !important;
}


.dark .hy-header-style-normal .duya-header-wrap,.dark #player-gift-wrap,
.dark .duya-header,.dark .player-all-gift-panel,.dark .player-all-gift-panel .arrow,
.dark .chat-room__input,.dark #player-gift-tip,.dark .player-face li .player-superfans-card-count,
.dark .player-face li .plaer-face-icon-bg,.dark .player-face li .player-superfans-card-count,
.dark #player-gift-tip,.dark #player-gift-tip .make-friend-people-switch,
.dark #player-gift-tip .make-friend-unsubscribe,
.dark #player-gift-tip .make-friend-line,
.dark #player-gift-tip .bottom,.dark #player-pc-watch-btn,
.dakr .inpage-advice-list li,.dark #play2 .content .content-aside>div .more
{
  background-color: var(--w-bg-darker) !important;
  border-color:var(--w-border) !important;
  outline: none !important;
}


/* 只修改border-color */
.dark .chat-room__input,
.dark .chat-room__ft .chat-room__ft__chat,
.dark ._2uc0_gzwdW4cbL_UOgWDJd,
.dark #tipsOrchat{
  border-color:var(--w-border) !important;
  outline: none !important;
}

.dark #duya-header,
.dark #chat-room__wrap #chat-room__list div a,
.dark #chat-room__wrap #chat-room__list div a span {
  border:none !important;
  outline: none !important;
}

.dark .laypageskin_default a:hover,
.dark .comment-container textarea,.dark .player-face li .plaer-face-icon-bg,
.dark .room-hd .host-control .subscribe-entrance .subscribe-hd.sub-off .subscribe-count,
.dark .nav-expand-list.nav-expand-game span a:hover{
  border-color:var(--w-text-light) !important;
}


/* 修改border color background */
.dark .laypage_main button:hover,
.dark .laypageskin_default .laypage_curr,
.dark #J_duyaHeaderRight ul li a,
.dark .chat-room__bd .load-more-msg,
.dark .ixyGIy,
.dark #J_RoomChatSpeaker textarea,
.dark .laypageskin_default a:hover {
  color: var(--w-text);
  border-color:var(--w-text) !important;
  background-color: var(--w-bg-darker) !important;
}

.dark .chat-room__bd .chat-room__scroll .clearBtn,
.dark .chat-room__bd .chat-room__scroll .lockBtn,
.dark .hy-header-style-normal .duya-header-search input,
.dark .comment-container textarea:focus,.dark #pub_msg_input,
.dark .room-hd .host-control .subscribe-entrance .subscribe-hd.sub-off
{
  border:1px solid var(--w-text-light) !important;
  outline: none !important;
}


.dark [class^=ChatSpeaker] textarea:focus,
.dark .hy-header-style-normal .duya-header-search input:focus {
  border:1px solid var(--w-text) !important;
  outline: none !important;
}



.dark [class^=MmdPopPanel],
.dark .msg-of-king,.dark [class^=roomBlockWords] [class^=btn],
.dark [class^=SubConfirmPop],
.dark [class^=SubConfirmPop] span,
.dark [class^=SubConfirmPop] [class^=control] span,
.dark [class^=colorNormal],
.dark #player-danmu-report,
.dark #pc-watch-download-tips,.dark #pc-watch-download-tips,
.dark [class^=colorNormal][class^=lock],
.dark [class^=ucard],
.dark .chat-room__list .msg-timed span,
.dark [class^=roomBlockWords-list] li,
.dark .hy-nav-item-on .hy-nav-link, .dark .hy-nav-link:hover,
.dark #search-bar-input,.dark [class^=barrageBox],
.dark .room-hd .host-control .subscribe-entrance .subscribe-hd.sub-on,
.dark .room-hd .host-control .subscribe-entrance .subscribe-hd.sub-off
 {
  background-color: var(--w-bg-darker) !important;
  border:1px solid var(--w-text) !important;
  color: var(--w-text-light) !important;
  outline: none !important;
}


.dark [class^=SubConfirmPop] span:hover,
.dark #J_liveListNav dl dd ul li ul li:hover,
.dark [class^=SubConfirmPop] [class^=control] span:hover,
.dark .room-hd .host-control .subscribe-entrance .subscribe-hd.sub-on:hover,
.dark .room-hd .host-control .subscribe-entrance .subscribe-hd.sub-off:hover{
  background: var(--w-bg) !important;
  border:1px solid var(--w-text-light) !important;
  color: var(--w-text) !important;
  outline: none !important;
}

.dark .host-item .avatar .avatar-mask,
.dark .superStar-item .avatar .avatar-mask {
  background:none !important;
}


.dark #J_liveListNav dl dd span:hover,
.dark #J_duyaHeaderRight ul li a:hover,
.dark .g-gameCard-link:hover{
  background: var(--w-bg) !important;
  color: var(--w-text) !important;
  outline: none !important;
}

.dark .chat-room__ft .chat-room__ft__pannel .room-chat-tool-color {
  width: 20px !important;
  height: 20px !important;
  background: var(--w-bg-darker) !important;
  border:1px solid var(--w-text) !important;
  color: var(--w-text-light) !important;
  border-radius:50%; !important;
  position:relative !important;
}

.dark #J-room-chat-color::before {
  content: '饰';
  left:50% !important;
  top:50% !important;
  position: absolute !important;
  transform: translate(-50%,-50%) !important;
}

.dark #msg_send_bt {
  border-left : 1px solid var(--w-text) !important;
}



`;
  const css$3 = is_huya ? `

.game-live-item i,.host-name {
  cursor:pointer;
}
.game-live-item .txt i:hover,.host-name:hover {
  color:rgb(255, 135, 0);
}
.helperbar-root--12hgWk_4zOxrdJ73vtf1YI,[class^=helperbar-root],
.mod-index-wrap .mod-index-main .main-bd,
.mod-index-wrap .mod-index-main .main-hd,
.mod-index-wrap #js-main,#J_treasureChestContainer,
.mod-index-wrap #banner,.player-banner-activity,
.mod-index-wrap .mod-game-type,
.mod-index-wrap .mod-actlist,
.mod-index-wrap .mod-news-section,
.mod-index-wrap .mod-index-list .live-box #J_adBnM,
.mod-index-wrap .mod-index-recommend,
.mod-index-wrap .mod-news-section,
.mod-index-wrap .recommend-wrap,
#player-marquee-wrap,.small-handle-tip,
#player-marquee-wrap .player-marquee-noble-item,
#player-marquee-wrap .player-banner-enter,
#player-marquee-wrap [id^=player-banner-enter],
#player-marquee-wrap [id^=player-marquee],
.RoomPublicMessage--n3v61Bk0DehYuR0xEQ9S1,[class^=RoomPublicMessage],
#huya-ab-fixed,
#huya-ab,
.liveList-header-r,
.room-footer,
.J_roomSideHd,
 #J_roomSideHd,
 #match-cms-content,
 #matchComponent2,
.hy-nav-item,
.list-adx,
.layout-Banner,
 #J_duyaHeaderRight>div>div>div,
 .nav-expand-list .third-clickstat,
 #main_col .special-bg,
 .player-recommend.recommend-ab-mode .end-ab-wrap,
 .chat-wrap-panel.wrap-income,
 .match-room .match-nav,
 .host-detail.J_roomHdDetail span,
 .host-detail.J_roomHdDetail .host-video,
 .room-hd-r .jump-to-phone,
 .room-hd-r #share-entrance,
 .room-hd-r #J_illegalReport,
 .room-hd-r .gamePromote.J_gamePromote,
 .main-wrap .room-mod-ggTop,
 #chatRoom .room-gg-chat,
 .room-core .room-business-game,
 .room-backToTop.j_room-backToTop,
 .end-ab-banner,
 .player-app-qrcode,
 .player-play-big, .chat-room__list .msg-nobleSpeak-decorationPrefix,
 #main_col #matchComponent2,
.room-weeklyRankList{
    display:none !important;
 }

 .ssr-wrapper .mod-sidebar, .room-core #player-gift-wrap, {
   display:none;
 }

 .hy-nav-item:nth-child(1),
 .hy-nav-item:nth-child(2),
 .hy-nav-item:nth-child(3),
 #J_duyaHeaderRight>div>div>div:nth-child(3),
 #J_duyaHeaderRight>div>div>div:nth-child(4)
 {
   display:inline-block !important;
 }
 .mod-index-wrap .mod-index-list{
   margin-top:80px !important;
 }
 .duya-header{
   background: hsla(0,0%,100%,.95)  !important;
   border-bottom: 1px solid #e2e2e2 !important;
   box-shadow: 0 0 6px rgb(0 0 0 / 6%) !important;
 }
 .duya-header a,.duya-header i{
  color:#000 !important;
 }
 /*******直播间样式*****/
 #main_col,
.chat-room__list .msg-normal,.chat-room__list .msg-bubble,#J_mainRoom{
   background:none !important;
 }
 #wrap-ext,
.chat-room__list .msg-normal-decorationPrefix,
.chat-room__list .msg-normal-decorationSuffix,
.chat-room__list .msg-bubble-decorationPrefix,
.chat-room__list img,
.chat-room__list .msg-noble,
.chat-room__list .msg-sys,
.chat-room__list .msg-auditorSys,
.J_box_msgOfKing,
.chat-room__list .msg-onTVLottery{
    display: none !important;
 }
.chat-room__list .msg-bubble span.msg{
    color: #333 !important;
    background:none!important;
 }
.chat-room__list .msg-bubble .colon,
.chat-room__list .msg-bubble .msg,
.chat-room__list .name{
    color: #3c9cfe !important;
    background:none!important;
  }

  #search-bar-input::placeholder{
     color: transparent !important;
     opacity:0 !important;
  }
  
 .mod-sidebar,
.room-core #player-gift-wrap{
  display:none ;
}

 #player-ctrl-wrap {
  opacity: 0;
  transition: all 500ms ease-in 0s !important;
  bottom: 16px;
 }
#J_playerMain:hover #player-ctrl-wrap{
   opacity: 1;
}

[class^=NavItem] span[class^=NavText] {
  color:#555 !important;
}
.duya-header-search input {
  background-color: #e5e7eb;
}
[class^=NavItem] [class^=NavItemHd] i[class*=fav] {
  background-image:url('https://a.msstatic.com/huya/hd/h5/header/components/HeaderDynamic/NavItem/img/fav-0.15b3e0b4a39185db705b7c523cd3f17c.png') !important;
}

[class^=NavItem] [class^=NavItemHd] i[class*=history] {
  background-image:url('https://a.msstatic.com/huya/hd/h5/header/components/HeaderDynamic/NavItem/img/history-0.2b32fba04f79057de5abcb2b35cd8eec.png') !important;
}

${darkCss}

` : "";
  const css$2 = is_douyin ? `
    #related-video-card-login-guide,
    #captcha_container,
    .JsAsIOEV,
    #login-full-panel{
       display:none !important;
    }

    .login-mask-enter-done,
    .box-align-center, {
      display:none ;

    }

    .m-douyin-login{
        display:block !important;
    }

    ::-webkit-scrollbar {
        width: 6px !important;
        background-color: teal !important;
      }
      
      ::-webkit-scrollbar-track {
        background-color: var(--w-bg) !important;
      }
      
      ::-webkit-scrollbar-thumb {
        background-color: var(--w-bg-light) !important;
        border-radius: 6px !important;
      }
      
  
` : "";
  const anime = /.*:\/\/www\.bilibili\.com\/anime\/.*/.test(local_url) ? `
.dark .home-cell-desc-title[data-v-350d21cc],
.dark .home-cell-desc-title,
.dark .home-cell-desc-subtitle[data-v-350d21cc], 
.dark .home-cell-desc-subtitle, 
.dark .with-up-space,
.dark .with-up-space[data-v-350d21cc]
 {
  color:var(--w-text-light) !important;
}


.dark .nav-tool-container .section,
.dark .nav-tool-container .section[data-v-3b26ecb6] {
  border: 1px solid var(--w-border) !important;
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
}



.dark .nav-tool-container .section:hover,
.dark .nav-tool-container .section[data-v-3b26ecb6]:hover {
  color:var(--w-blue-link-hover) !important;
  border-color: var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important;
}







` : ``;
  const blackboard = `

.dark .q-textarea {
  background-color : var(--w-bg-darker) !important;
  color : var(--w-text-light) !important;
  border :1px solid var(--w-text-light) !important;
}
.dark .activity-questions-list-wrap .activity-questions-item .activity-questions-item-title .title,
.dark .activity-questions-list-wrap .activity-questions-item .activity-questions-item-required,
.dark .activity-questions-item-index,
.dark .activity-questions-list-wrap .activity-questions-item {
  color : var(--w-text-light) !important;
}


`;
  const comment = `
 .dark .player-left-components *,
 .dark .bb-comment *,
 .dark .bb-comment, .dark .comment-bilibili-fold,
 .dark .bb-comment .comment-send-lite .comment-emoji,
 .dark .bb-comment .comment-send.comment-send-lite,
 .dark .bb-comment .comment-send-lite.comment-send-lite,
 .dark .comment-bilibili-fold .comment-send .comment-emoji,
 .dark .comment-bilibili-fold .comment-send-lite .comment-emoji,
 .dark .comment-bilibili-fold .comment-send.comment-send-lite,
 .dark .comment-bilibili-fold .comment-send-lite.comment-send-lite,
 .dark .bili-rich-textarea__inner,.dark .bili-emoji__footer,
 .dark .bili-emoji__pkg,.dark .bili-emoji,.dark .emoji-box
 {
  background:var(--w-bg-darker) !important;
  color:var(--w-text) !important;
}



.dark .bili-emoji,.dark .emoji-box .emoji-title,
.dark .bb-comment,
.dark .bb-comment .comment-header,
.dark .bb-comment .comment-header .tabs-order,
.dark .bb-comment .comment-header .tabs-order li,
.dark .bb-comment .comment-send .dynamic-repost, 
.dark .bb-comment .comment-send-lite .dynamic-repost, 
.dark .comment-bilibili-fold .comment-header .tabs-order li,
.dark .comment-bilibili-fold .comment-send .dynamic-repost, 
.dark .comment-bilibili-fold .comment-send-lite .dynamic-repost {
  color:var(--w-text-light) !important;
}




.dark .bb-comment .comment-send-lite .comment-emoji,
.dark .bb-comment .comment-header, 
.dark .bb-comment .comment-list .list-item .con,
.dark .bb-comment .bottom-page.center,
.dark .comment-bilibili-fold .comment-header,
.dark .comment-bilibili-fold .comment-send .comment-emoji,
.dark .comment-bilibili-fold .comment-send-lite .comment-emoji,
.dark .comment-bilibili-fold .comment-list .list-item .con{
  border-color: var(--w-border) !important;
}



.dark .emoji-box,.dark .emoji-box .emoji-tabs,.dark .bili-emoji__pkg.active,
.dark .bb-comment .operation .opera-list,
.dark .bb-comment .comment-send .comment-emoji, 
.dark .bb-comment .comment-send .textarea-container .ipt-txt, 
.dark .bb-comment .comment-send-lite .textarea-container .ipt-txt, 
.dark .bb-comment .comment-list .list-item .info .reply-tags span, 
.dark .comment-bilibili-fold .comment-send .textarea-container .ipt-txt,
.dark .comment-bilibili-fold .comment-list .list-item .info .reply-tags span,
.dark .comment-bilibili-fold .comment-send-lite .textarea-container .ipt-txt,
.dark .comment-bilibili-fold .operation .opera-list{
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
  border-color: var(--w-text) !important;
}


.dark .bb-comment .comment-list .list-item .reply-box .view-more .btn-more:hover, .comment-bilibili-fold .comment-list .list-item .reply-box .view-more .btn-more:hover,
.dark .btn.idc-btn.primary:hover {
  color:var(--w-blue-link-hover) !important;
  border-color: var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important;
}

.dark .btn.idc-btn.default:hover,.dark .bili-emoji__list__item:hover,
.dark .emoji-box .emoji-wrap .emoji-pic:hover,
.dark .emoji-list.emoji-text.emoji-pic:hover,
.dark .emoji-box .emoji-tabs .tab-link:hover,
.dark .emoji-box .emoji-tabs .tab-link.on {
  color:var(--w-blue-link-hover) !important;
  border:1px solid var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important;
}

`;
  const dialog = `
.dark .bili-dialog-bomb,.dark .bili-dialog-bomb .appeal-box,
.dark .bili-dialog-bomb .appeal-box .header,
.dark .bili-dialog-bomb .appeal-box .wrap .container .textarea .textarea-wrap textarea,
.dark .bili-dialog-bomb .appeal-box .submit
 {
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
}

.dark .bili-dialog-bomb .appeal-box .wrap .container .question {
  color:var(--w-text-light) !important;
}



`;
  const footer = `
.bili-footer {
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
}

.dark .bili-footer p {
  color:var(--w-text-light) !important;
}

`;
  const header = `
.bb-comment, .comment-bilibili-fold {
  
}

`;
  const login = `

.dark .tab__form,
.dark .tab__form .form__item input ,
.dark .tab__form .form__item input::placeholder,
.dark .tab__form .form__item input:focus,
.dark .bili-mini-content-wp {
  background:var(--w-bg-darker) !important;
  color:var(--w-text) !important;
}


.dark .tab__form {
  border:1px solid var(--w-text) !important;
}


.dark .bili-mini-customer-title,
.dark .bili-mini-content-wp .login-scan-title,
.dark .bili-mini-content-wp .login-scan-desc p,
.dark .login-tab-item[data-v-35ff7abe],
.dark .login-tab-item, .dark .login-sns-name,
.dark .login-agreement-wp p,
.dark .tab__form .form__item .form_info {
  color:var(--w-text) !important;
}

.dark .btn_primary.disabled[data-v-327e145a],
.dark .btn_primary.disabled,
.dark .btn_primary,
.dark .btn_primary[data-v-327e145a],
.dark .btn_other,
.dark .btn_other[data-v-327e145a] {
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
  border:1px solid var(--w-text-light) !important;
}

.dark .btn_other:hover,
.dark .btn_primary:hover,
.dark .btn_primary[data-v-327e145a]:hover,
.dark .btn_other[data-v-327e145a]:hover {
  color:var(--w-blue-link-hover) !important;
  border-color: var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important;
}


.dark .tab__form .form__item input ,
.dark .tab__form .form__item input::placeholder,
.dark .tab__form .form__item input:focus {
  border:none !important;
}



`;
  const page_num = `


.dark .be-pager-options-elevator {
  color:var(--w-text-light) !important;
}

.dark .be-pager-item-active,
.dark .be-pager-options-elevator input {
  background:var(--w-bg-darker) !important;
}

.dark .be-pager-next, 
.dark .be-pager-prev,
.dark .be-pager-item {
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
  border:1px solid var(--w-text-light) !important;
}


.dark .be-pager-next:hover,
.dark .be-pager-prev:hover,
.dark .be-pager-item:hover
{
  color:var(--w-blue-link-hover) !important;
  border-color: var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important;
}

.dark .be-pager-item .be-pager-item-active,
.dark .be-pager-item-active {
  color :var(--w-blue-link-hover) !important;
  border-color :var(--w-blue-link-hover) !important;
}

`;
  const videoToolsDarkCss = `

.dark .main-container .tool-bar *,
.dark .main-container .ep-list-wrapper *,
.dark .ep-section-module *,
.dark .nav-tools *,
.dark .toolbar *,

.dark .main-container .review-module .review-list *,
.dark .main-container .tool-bar .mobel-info .mobel-more {
  color:var(--w-text-light) !important;
  border-color: var(--w-border) !important;
  outline-color: var(--w-border) !important;
  background-color:var(--w-bg-darker) !important;
}

`;
  const root = `
:root {
  --w-brand: #3aa675;
  --w-light: #e5e7eb;
  --w-white: #fff;
  --w-brand-light: #349469;
  --w-bg: #22272e;
  --w-bg-light: #2b313a;
  --w-bg-lighter: #262c34;
  --w-bg-dark: #343b44;
  --w-bg-darker: #37404c;
  --w-bg-darker: var(--w-bg-dark);
  --w-text: #adbac7;
  --w-text-light: #cbd4dc;
  --w-text-lighter: #cdd6dd;
  --w-text-lightest: #8094a8;
  --w-border: #3e4c5a;
  --w-border-dark: #34404c;
  --w-blue-link-hover:#00aeec;
  --w-skeleton:#494f57;
}
.dark body,
.dark #app {
  --v_bg1: var(--w-bg-darker);
  --v_bg2: var(--w-bg-darker);
  --v_bg3: var(--w-bg-darker);
  --v_bg1_float: var(--w-bg-darker);
  --v_bg2_float: var(--w-bg-darker);
  --v_text_white: var(--w-white);
  --v_text1: var(--w-text);
  --v_text2: var(--w-text-light);
  --v_text3: var(--w-text-lighter);
  --v_text4: var(--w-text-lightest);
  --v_line_light:  var(--w-text-lighter);
  --v_line_regular: var(--w-text-lighter);
  --v_line_bold:  var(--w-text-lightest);
  --v_graph_white:var(--w-text);
  --v_graph_bg_thin: var(--w-bg-darker);
  --v_graph_bg_regular: var(--w-bg-darker);
  --v_graph_bg_thick: var(--w-bg);
  --v_graph_weak:  var(--w-text);
  --v_graph_medium:  var(--w-text-light);
  --v_graph_icon: var(--w-text-lightest);
  --v_shadow: var(--w-text);
  --v_text_hover: var(--w-blue-link-hover);
  --v_text_active:var(--w-blue-link-hover);
  --v_text_disabled: #C9CCD0 ;
  --v_line_border: var(--w-text-lighter);
  --v_line_bolder_hover:  var(--w-text-lightest);
  --v_line_bolder_active: var(--w-text-lightest);
  --v_line_bolder_disabled: var(--w-text);
 

}

.dark body,
.dark #app {
  --bg1:  var(--v_bg1);
  --bg2:  var(--v_bg2);
  --bg3:  var(--v_bg3);
  --bg1_float: var(--v_bg1_float);
  --bg2_float: var(--v_bg2_float);
  --text_white: var(--v_text_white);
  --text1:  var(--v_text1);
  --text2: var(--v_text2);
  --text3:  var(--v_text3);
  --text4:  var(--v_text4);
  --line_light:  var(--v_line_light);
  --line_regular: var(--v_line_regular);
  --line_bold: var(--v_line_bold);
  --graph_white: var(--v_graph_white);
  --graph_bg_thin: var(--v_graph_bg_thin);
  --graph_bg_regular: var(--v_graph_bg_regular);
  --graph_bg_thick: var(--v_graph_bg_thick);
  --graph_weak: var(--w-text);
  --graph_medium: var(--w-text-light);
  --graph_icon: var(--w-text-lightest);
  --shadow: var(--w-text);
  --text_hover: var(--v_text_hover);
  --text_active: var(--v_text_active);
  --text_disabled:  var(--v_text_disabled);
  --line_border: var(--v_line_border);
  --line_bolder_hover: var(--v_line_bolder_hover);
  --line_bolder_active: var(--v_line_bolder_active);
  --line_bolder_disabled:  var(--v_line_bolder_disabled);
  --b_text1: var(--text1);
  --b_text2: var(--text2);
  --b_text3: var(--text3);
  --b_text4: var(--text4);
}




`;
  const common = `
${root}
${header}
${footer}
${login}
${page_num}
${comment}
${dialog}
${videoToolsDarkCss}
`;
  const douga = /.*:\/\/www\.bilibili\.com\/v\/douga\/.*/.test(local_url) ? `


.dark .home-cell-desc-title[data-v-350d21cc],.dark .home-cell-desc-title,
.dark .home-cell-desc-subtitle[data-v-350d21cc], .with-up-space,.dark .home-cell-desc-subtitle[data-v-350d21cc], .with-up-space[data-v-350d21cc]
 {
  color:var(--w-text-light) !important;
}


.dark .channel-layout,
.dark channel-nav{
  border: 1px solid var(--w-border) !important;
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
}



.dark .nav-tool-container .section:hover,
.dark .nav-tool-container .section[data-v-3b26ecb6]:hover {
  color:var(--w-blue-link-hover) !important;
  border-color: var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important;
}

.dark .channel-layout,
.dark channel-nav,
.dark .bili-rank-list-video .bili-rank-list-video__item:nth-of-type(2n) {
   background:var(--w-bg-darker) !important;
}


.dark .bili-rank-list-video .bili-rank-list-video__item:nth-of-type(2n + 1) {
  background-color:var(--w-bg) !important;
}





` : ``;
  const guochuang = /.*:\/\/www\.bilibili\.com\/guochuang\/.*/.test(local_url) ? `
.dark .spread-module .t,.dark .spread-module,
.dark .pgc-rank-list .rank-item .ri-detail .ri-title,.dark .pgc-rank-list .rank-item .ri-detail .ri-point,
.dark .name, .dark .new-stat-module .zone-title .headline .name,.dark .headline .name, 
.dark .index-entry-wrapper .filter-block-title span,
.dark .block-area,.dark .block-area .timeline-title .headline .name,
.dark .block-area .block-left .block-header .block-title,
.dark .video-item-biref .biref-info .biref-title,
.dark .handpick-right-module .block-header .block-title {
  color:var(--w-text-light) !important;
}

.dark .video-item-biref .biref-info .biref-title:hover {
  color:var(--w-blue-link-hover) !important;
}

.dark .spread-module .num {
  background:var(--w-bg-darker) !important;
  color:var(--w-text-light) !important;
}

.dakr .block-area .timeline-toggle-block .timeline-toggle-btn {
  background: none !important;
}



.dark .timeline-box .timeline-item .item-right p.num a, 
.dark .timeline-box .timeline-item .item-right p.num span,
.dark .new-stat-module .zone-title .headline .new-stat-more,
.dark .back-top-tools .tool-item,.dakr .block-area .timeline-toggle-block .timeline-toggle-btn,
.dark .sec-rank .more-link,.dark .pgc-rank-dropdown,.dark .pgc-rank-dropdown .dropdown-list,
.dark .random-change {
  border: 1px solid var(--w-border) !important;
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
}

.dakr .block-area .timeline-toggle-block .timeline-toggle-btn:hover,
.dark .new-stat-module .zone-title .headline .new-stat-more:hover,
.dark .timeline-box .timeline-item .item-right p.num a:hover, 
.dark .timeline-box .timeline-item .item-right p.num span:hover,
.dark .sec-rank .more-link:hover,.dark .back-top-tools .tool-item:hover,
.dark .random-change:hover {
  color:var(--w-blue-link-hover) !important;
  border-color: var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important;
}







` : ``;
  const home = `

/* 黑色主题模式下骨架屏 */
.dark .bili-video-card__skeleton--cover,
.dark .bili-video-card__skeleton,
.dark .bili-video-card__skeleton--right,
.dark .bili-video-card__skeleton hide,
.dark .bili-video-card__skeleton--text.short,
.dark .bili-video-card__skeleton--light,
.dark .bili-video-card__skeleton--text {
  background:var(--w-skeleton) !important;
}


/* 黑色主题模式下不显示壁纸 */
.dark #bili-header-banner-img {
  display:none !important;
}



.dark body,.dark #header-v3,.dark .app-v1,.dark .app-v2,.dark .app-v3,.dark .app-v4,.dark .app-v5,
.dark #app,.dark .v-img, .dark .bili-header * ,
.dark .header-channel,.dark .header-channel-fixed-right-item,
.dark .bili-video-card__wrap,.dark .bili-header .game,
.dark .large-header,
.dark .bili-header .slide-down,
.dark .bili-header .bili-header__channel .channel-entry-more__link, 
.dark .bili-header .bili-header__channel .channel-link,
.dark .bili-header .bili-header__channel .channel-items__left,
.dark .bili-header .bili-header__channel,
.dark .bili-header .manga,
.dark .bili-header .manga-right-title,
.dark .bili-header .header-fav-card__image,
.dark .bili-header .header-fav-card,
.dark .bili-header .search-panel,
.dark .bili-header .center-search-container .center-search__bar #nav-searchform.is-actived .nav-search-content, 
.dark .bili-header .center-search-container .center-search__bar #nav-searchform.is-focus .nav-search-content,
.dark .history-panel-popover,.dark .bili-header .bili-header__banner,
.dark .bili-header .center-search-container .center-search__bar #nav-searchform,
.dark .bili-header .center-search-container .center-search__bar .nav-search-content .nav-search-input:focus,
.dark .bili-header .avatar-panel-popover .level-item .level-item__bar .level-progress__inner,
.dark .bili-header .avatar-panel-popover .level-item .level-item__lv0,
.dark .bili-header .avatar-panel-popover .split-line,
.dark .bili-header .avatar-panel-popover .logout-item,
.dark .video-container-v1 .danmaku-box .danmaku-wrap,
.dark #i_cecream {
  background:var(--w-bg-darker) !important;
  color:var(--w-text) !important;
}


.dark .bili-header .header-avatar-wrap .header-avatar-wrap--container .bili-avatar,
.dark .bili-header .game-left,.dark .bili-header .game-right,
.dark .bili-header .bili-header__channel .channel-items__left {
  border-color:var(--w-border-dark) !important;
}


.dark .feed-roll-btn .primary-btn,
.dark .header-channel-fixed-right-item,
.dark .bili-header .bili-header__channel .channel-entry-more__link, 
.dark .bili-header .bili-header__channel .channel-link {
  border:1px solid var(--w-text-light) !important;
}


.dark .bili-header .search-panel {
  border-color:1px solid var(--w-border) !important;
}



.dark .header-channel-fixed-right-item:hover,
.dark .bili-header,
.dark .bili-header .live-left-list,
.dark .bili-header .bili-header__channel .channel-entry-more__link, 
.dark .history-panel-popover .header-tabs-panel__item,
.dark .bili-header .avatar-panel-popover .vip-item .senior,
.dark .bili-header .avatar-panel-popover .coins-item .coin-item__text ,
.dark .bili-header .avatar-panel-popover .coins-item .coin-item__num ,
.dark .bili-header .avatar-panel-popover .level-item .level-item__bar--tag>span,
.dark .bili-header .center-search-container .center-search__icon,
.dark .bili-header .bili-header__channel .channel-link {
  border-color: var(--w-text) !important;
}


.dark a,.dark .roll-btn,
.dark .bili-header .left-entry .download-wrapper .download-top-title .main,
.dark .bili-header .left-entry .download-wrapper .download-top-title .sub,
.dark .bili-header .left-entry .download-wrapper .download-bottom,
.dark .bili-header .right-entry__outside .right-entry-icon ,
.dark .bili-header .slide-down .left-entry .mini-header__title, 
.dark .bili-header .slide-down .left-entry .entry-title, 
.dark .bili-header .slide-down .left-entry .default-entry,
.dark .bili-header .slide-down .left-entry .default-entry span,
.dark .bili-header .slide-down .left-entry .loc-mc-box__text,
.dark .bili-header .slide-down .left-entry .download-entry,
.dark .bili-header .slide-down .left-entry .loc-entry ,
.dark .bili-video-card .bili-video-card__info--date,
.dark .bili-video-card .bili-video-card__info--author,
.dark .bili-header .bili-header__channel .channel-link__right,
.dark .bili-header .bili-header__channel .channel-link__left,
.dark .right-entry-text,.dark .channel-entry-popover .name, .dark .more-channel-popover .name ,
.dark .icon-title,.dark .bili-header .slide-down .right-entry .right-entry__outside .right-entry-icon,
.dark .bili-header .live .title,.dark .bili-header .live-left-list-item,
.dark .bili-header .live-left-list-item-text,
.dark .bili-header .game-right-title,
.dark .bili-header .game-left-panel-item-title, 
.dark .bili-header .game-left-banner-title,
.dark .bili-header .manga-right-list-item-text,
.dark .bili-header .header-fav-card__info--name,
.dark .favorite-panel-popover__nav *,
.dark .favorite-panel-popover__nav .tab-item,
.dark .favorite-panel-popover__nav .tab-item__num,
.dark .bili-header .header-fav-card__info--title,
.dark .dark .history-panel-popover .header-tabs-panel__content--date,
.dark .history-panel-popover .header-history-card__info--title,
.dark .header-tabs-panel *,
.dark .header-tabs-panel,
.dark .header-tabs-panel__content--date,
.dark .bili-header .center-search-container .center-search__bar .nav-search-content .nav-search-input,
.dark .bili-header .avatar-panel-popover .links-item .single-link-item,
.dark .bili-header .avatar-panel-popover .vip-item__link,
.dark .bili-header .avatar-panel-popover .vip-item .senior,
.dark .bili-header .center-search-container .center-search__bar .nav-search-content .nav-search-clean svg,
.dark .bili-header .avatar-panel-popover .level-item .level-item__text,
.dark .bili-video-card .bili-video-card__info--tit>a {
  color:var(--w-text) !important;
}



.dark .v-inline-window__close-icon,.dark .bili-header .center-search-container .center-search__bar .nav-search-btn,
.dark .vip-entry-desc-subtitle,.dark .vip-entry-desc-title,.dark .vip-entry-desc-subtitle,
.dark .bili-header .avatar-panel-popover .coins-item .coin-item__num,
.dark .bili-header .avatar-panel-popover .counts-item .single-count-item .count-num {
  color:var(--w-text-light) !important;
}

.dark a:hover,.dark .roll-btn:hover,
.dark .vip-entry-desc-subtitle:hover,
.dark .bili-header .avatar-panel-popover .counts-item .single-count-item:hover .count-text,
.dark .bili-header .avatar-panel-popover .counts-item .single-count-item:hover .count-num ,
.dark .bili-header .avatar-panel-popover .vip-item__link:hover,
.dark .bili-header .manga-right-title:hover,
.dark .bili-header .game-right-list-item:hover,
.dark .bili-header .manga-right-list-item-text:hover,
.dark .bili-header .header-fav-card__info--name:hover,
.dark .bili-header .header-fav-card__info--title:hover,
.dark .bili-header .left-entry .download-wrapper .download-bottom:hover ,
.dark .bili-header .live-left-list-item-text:hover,
.dark .bili-header .game-right-title:hover,
.dark .bili-header .game-left-panel-item-title:hover, 
.dark .bili-header .slide-down .left-entry .default-entry span:hover,
.dark .bili-video-card .bili-video-card__info--date:hover,
.dark .bili-header .bili-header__channel .channel-link__right:hover,
.dark .bili-header .bili-header__channel .channel-link__left:hover,
.dark .bili-video-card .bili-video-card__info--author:hover,.dark .right-entry-text:hover,
.dark .icon-title:hover,.dark .bili-header .slide-down .right-entry .right-entry__outside .right-entry-icon:hover,
.dark .history-panel-popover .header-history-card__info--title:hover
.dark .bili-video-card .bili-video-card__info--tit>a:hover {
  color:var(--w-blue-link-hover) !important;
}


.dark .header-channel-fixed-right-item:hover,
.dark .channel-entry-popover .name:hover, .dark .more-channel-popover .name:hover,
.dark .bili-header .bili-header__channel .channel-entry-more__link:hover, 
.dark .bili-header .bili-header__channel .channel-link:hover,
.dark .channel-panel__item:hover,
.dark .dynamic-video-item:hover,
.dark .bili-header .header-dynamic-list-item .header-dynamic__box--right:hover,
.dark .bili-video-card .bili-video-card__info--tit>a:hover {
  color:var(--w-blue-link-hover) !important;
  border-color: var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important;
}



/* all */
/* background 和 白色 border 和 白色 link */
.dark .bili-header .live,
.dark .bili-header .avatar-panel-popover,
.dark .history-tip,
.dark .bili-video-card .bili-video-card__info--icon-text,
.dark .v-popover-content,.dark .wnd_bottom .r-l,
.dark .history-panel-popover .header-tabs-panel__content .view-all-history-btn,
.dark .bili-header .histories .history-item,
.dark .bili-header .left-entry .download-wrapper .download-top-content .button,
.dark .bili-header .avatar-panel-popover .links-item .link-red-tip,
.dark .bili-header .avatar-panel-popover .links-item .link-beta-tip,
.dark .vip-entry-containter,.dark vip-entry-btn,
.dark .vip-entry-btn[data-v-ae740c54],
.dark .bili-header .center-search-container .center-search__bar #nav-searchform,
.dark .feed-roll-btn .primary-btn{
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
  border:1px solid var(--w-text-light) !important;
}



/* background 和 蓝色 border 和 蓝色 link */
.dark .wnd_bottom .r-l:hover,
.dark .vip-entry-containter:hover,.dark vip-entry-btn:hover,
.dark .vip-entry-btn[data-v-ae740c54]:hover,
.dark .bili-video-card .bili-video-card__info--icon-text:hover,
.dark .bili-header .game-right-list-item:hover,
.dark .history-panel-popover .header-tabs-panel__content .view-all-history-btn:hover,
.dark .bili-header .message-entry-popover .message-inner-list__item:hover,
.dark .bili-header .left-entry .download-wrapper .download-top-content .button:hover,
.dark .bili-header .histories .history-item:hover,
.dark .bili-header .center-search-container .center-search__bar .nav-search-btn:hover,
.dark .feed-roll-btn .primary-btn:hover{
 color:var(--w-blue-link-hover) !important;
  border-color: var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important; 
}
/******************************************************************/


/* background 和 蓝色 border */
.dark .trending-item:hover,
.dark .header-history-card:hover,
.dark .header-dynamic-list-item:hover,
.dark .header-history-card .header-history-video:hover,
.dark .bili-header .avatar-panel-popover .links-item .single-link-item:hover,
.dark .bili-header .header-fav-card:hover {
  border:1px solid var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
}



/* 蓝色border */
.dark .bili-header .center-search-container .center-search__bar #nav-searchform.is-focus,
.dark .suggest-item:hover {
  border:1px solid var(--w-text) !important;
  background:var(--w-bg-darker) !important;
}



/* border none */
.dark .bili-header .center-search-container .center-search__bar .nav-search-content,
.dark .bili-header .center-search-container .center-search__bar .nav-search-content .nav-search-input:focus,
.dark .bili-header .search-panel {
  border: none !important;
}


/* fill */
.dark .bili-header .avatar-panel-popover .level-item .level-item__bar--next svg .level-bg {
  fill: var(--w-text); !important;
}

`;
  const commonDark = `
.dark * {
  color:var(--w-text-light) !important;
  border-color: var(--w-border) !important;
  background-color:var(--w-bg-darker) !important;
  outline-color: var(--w-border) !important;
}

`;
  const css$1 = commonDark;
  const is_account = local_url.indexOf("https://account.bilibili.com/") !== -1;
  const account_css = is_account ? `
${css$1}

` : ``;
  const app_bilibili = /https:\/\/app\.bilibili\.com\/.*/.test(local_url) ? `

${css$1}

  .dark .head-img,
  .dark .header-wrap {
    background:var(--w-bg-darker) !important;
  }
  
  ` : ``;
  const game_bilibili = /https:\/\/game\.bilibili\.com\/.*/.test(local_url) ? `
${css$1}
.dark span,.dark a,.dark p,.dark h1,.dark h2,.dark h3,.dark h4,.dark h5,
.dark .aside-wrap_2TTgM .anchor_wrapper_2leFH .anchor_item_3DKWq .text_H0qLc,
.dark .gameSns-content-account-text_2kf1l .title_3cbN0,.dark .gameSns-content-account-text_2kf1l .subtitle_3xtPu,
.dark .contactUs-content-info-item_3hznU .text_NvNTR,.dark .mine-header-userInfo_2PEyA .user-basic-nav_3ydDD .user-statistics-type_2qxNK,
.dark .mine-header-userInfo_2PEyA .user-basic-nav_3ydDD .user-statistics-num_13v1B,
.dark .gameSns-content-other-account_9YJ6O .wechat-text_2GmEa, .dark .gameSns-content-other-account_9YJ6O .weibo-text_35duF,
.dark .Card-header_1d4vx .card-title_2RmHu .title_SE4va,.dark .game-item-footer-score_2F75T .gameScoreNum_EuGJV,
.dark .Card-header_1BQ_x .card-title_HKAAg,.dark .collection-wrap_19zMo .collection-item_1UBgM .collection-item-game-name_c4Qj2,
.dark .collection-wrap_19zMo .collection-item_1UBgM .collection-item-game-count_SEbUq,
.dark .game-item-footer-name_2wzwp,.dark .game-item-footer-type_wMU_g,.dark .game-item-footer-no_269PI,
.dark .list-item-cont_27du8 .testGameItem_1xvId .gameDes_1vyj7 .gameScore-no_UmJz1,
.dark .bili-game-footer .bili-game-footer-content .bili-game-footer-content-record,
.dark .bili-game-footer .bili-game-footer-content .bili-game-footer-content-record p,
.dark .list-item-cont_27du8 .testGameItem_1xvId .gameDes_1vyj7 .gameScore_OHEKi .gameScoreNum_2smPo,
.dark .list-item-cont_27du8 .testGameItem_1xvId .gameDes_1vyj7 .gameName_OGhFc,
.dark .Card-header_3tA8E .card-title_3s7_S, .dark .hotActivity-item-time_h-F8o,
.dark .list-item-title_IY-UG .date_cylZ8, .dark .list-item-title_IY-UG .games-num_2LlQZ,
.dark .list-item-cont_1zPV3 .hotGameItem_EJS60 .gameDes_2fvpP .gameName_2u5sS,
.dark .loadComplete-txt_2z5n_,.dark .Card-header_1d4vx .card-title_2RmHu .title_SE4va,
.dark .Card-recomend-item_1FSJD .card-content_1oudE .card-content-title_370f1>div,
.dark .feed-wrap_3BqTh .card-game-common_2b0P9 .card-content-info-text_1DwU6 .card-content-info-name_2y0cn,
.dark .feed-wrap_3BqTh .card-game-common_2b0P9 .card-content-info-text_1DwU6 .card-content-info-des_27h0g,
.dark .Bookswiper_3q1oK .gallery-thumbs_2oCbc .swiper-thumb-slide .gallery-thumbs-item_3mq8s .game-info_2X55m .game-info-tag_3lnOf,
.dark .Bookswiper_3q1oK .gallery-thumbs_2oCbc .swiper-thumb-slide .gallery-thumbs-item_3mq8s .game-info_2X55m .game-info-name_1X85G,
.dark .Card-recomend-item_1FSJD .card-content_1oudE .card-content-footer_2WHGE .score-degree_DnAAx,
.dark .Card-recomend-item_1FSJD .card-content_1oudE .card-content-footer_2WHGE .score-comment_3P3Er,
.dark .Card-recomend-item_1FSJD .card-content_1oudE .card-content-des_1sNxd{
  color:var(--w-text-light) !important;
}


.dark .game-item-footer-name_2wzwp:hover,
.dark .game-item-footer-type_wMU_g:hover,
.dark .list-item-cont_27du8 .testGameItem_1xvId .gameDes_1vyj7 .gameName_OGhFc:hover,
.dark .video-item-biref .biref-info .biref-title:hover {
  color:var(--w-blue-link-hover) !important;
}


.dark .bili-game-footer,.dark .list_item_1gw1l,.dark .scroll-wrap_1vXo6 ,
.dark .Card-header_1d4vx .card-title_2RmHu .title_SE4va,
.dark .bili-game-header-nav .bili-game-header-nav-bar {
  background:var(--w-bg-darker) !important;
  color:var(--w-text-light) !important;
}


.dark .Home_1ebVE,
.dakr .block-area .timeline-toggle-block .timeline-toggle-btn {
  background: none !important;
}


.dark .loadingTip-loadMore_1ydD3 .load_btn_2aV1A,.dark .body_RAI9S .aside_17bL3,
.dark .category-item_3tacB,.dark .collection-wrap_19zMo .collection-item_1UBgM,
.dark .tag_2uAvO{
  border: 1px solid var(--w-border) !important;
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
}

.dark .category-item_3tacB:hover,.dark .Card-header_1BQ_x .btn-more_1RGB7 a:hover,
.dark .loadingTip-loadMore_1ydD3 .load_btn_2aV1A:hover,
.dark .tag_2uAvO:hover {
  color:var(--w-blue-link-hover) !important;
  border-color: var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important;
}

` : ``;
  const is_link$2 = local_url.indexOf("https://link.bilibili.com/") !== -1;
  const link_css$2 = is_link$2 ? `
${css$1}

` : ``;
  const is_link$1 = local_url.indexOf("https://message.bilibili.com/") !== -1;
  const link_css$1 = is_link$1 ? `

${css$1}


` : ``;
  const is_link = local_url.indexOf("https://live.bilibili.com/") !== -1;
  const link_css = is_link ? `

.dark * {
  color:var(--w-text-light) !important;
  border-color: var(--w-border) !important;
}

.dark {
  color:var(--w-text-light) !important;
  border-color: var(--w-border) !important;
  background-color:var(--w-bg-darker) !important;
}

.dark #webShare .bili-share-pc,
.dark .live-non-revenue-player .sc-gsnTZi div {
  color:var(--w-text-light) !important;
  border-color: var(--w-border) !important;
  background-color:var(--w-bg-darker) !important;
}

` : ``;
  const other = `
${account_css}
${app_bilibili}
${game_bilibili}
${link_css$2}
${link_css$1}
${link_css}
`;
  const read = /.*:\/\/.*\.bilibili\.com\/read\/.*/.test(local_url) ? `
.dark p,.dark a,.dark span,
.dark  h1,.dark  h2,.dark  h3,.dark  h4,.dark  h5,.dark  h6,
.dark .iconfont,
.dark #article-content,.dark .interaction-info,.dark .interaction-info .toolbar .share-box,
.dark .normal-article-holder,
.dark .normal-article-holder h1,
.dark .normal-article-holder h2,
.dark .normal-article-holder h3,
.dark .normal-article-holder h4,
.dark .normal-article-holder h5,
.dark .normal-article-holder h6,
.dark .article-container .title-container .title,
.dark .article-breadcrumb .breadcrumb-title,
.dark [class^=article-read-info]>span,
.dark .right-side-bar .to-top [class^=iconfont],
.dark .right-side-bar .side-toolbar [class^=toolbar-item],
.dark .coin-dialog-wrapper .coin-title,.dark .coin-dialog-wrapper .van-icon-guanbi,
.dark .right-side-bar .side-toolbar .toolbar-item [class^=iconfont]

{
  color:var(--w-text-light) !important;
}

.dark .right-side-bar [class^=to-top],
.dark .right-side-bar [class^=side-toolbar],
.dark [class^=follow-btn],
.dark .coin-dialog-wrapper .confirm-btn,
.dark .van-popover.van-followed,
.dark .right-side-bar [class^=catalog],
.dark .coin-dialog-wrapper,
.dark .article-read-info .spoiler[data-v-36aefa22],
.dark .article-read-info .spoiler,
.dark .article-container {
  border: 1px solid var(--w-border) !important;
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
}

.dark .article-container ,
.dark .comment-wrapper .comment-m,
.dark [class^=followed],
.dark [class^=article-up-info],
.dark .right-side-bar [class^=catalog]::after,
.dark .fixed-top-header {
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
}



.dark .nav-tool-container .section:hover,
.dark .right-side-bar .to-top [class^=iconfont]:hover,
.dark .right-side-bar [class^=to-top]:hover,
.dark .coin-dialog-wrapper .confirm-btn:hover,
.dark .nav-tool-container [class^=section]:hover {
  color:var(--w-blue-link-hover) !important;
  border-color: var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important;
}


.dark .coin-dialog-wrapper .van-icon-guanbi:hover {
  color:var(--w-blue-link-hover) !important;
}


.dark .van-popover.van-followed .follow_dropdown li:hover {
  background:var(--w-bg) !important;
  color:var(--w-blue-link-hover) !important;
}





` : ``;
  const space = /.*:\/\/space\.bilibili\.com\/\d+.*/.test(local_url) ? `
.dark .list-create {
  background:var(--w-bg) !important;
}
.dark .elec .elec-status-bg-grey,
.dark #page-index #i-ann-content textarea,
.dark .bili-dyn-item,
.dark .bili-dyn-card-video__body,
.dark .bili-rich-text__content,
.dark .bili-dyn-card-video__desc,
.dark .bili-dyn-card-video__title,
.dark .series-item .item-title .qipapnum[data-v-40b5e135],
.dark .series-item .item-title .qipapnum,
.dark .contribution-sidenav .contribution-item,
.dark .album-list__tabs,
.dark #page-series-index .channel-option.no-channel[data-v-9e6dac30],
.dark #page-series-index .channel-option.no-channel,
.dark #page-series-index .channel-option,
.dark .bili-rich-textarea__inner.empty,
.dark .note-editor .rich-text-options,
.dark #web-toolbar,
.dark .n .n-inner {
  background-color:var(--w-bg-darker) !important;
  color:var(--w-text) !important;
}

.dark .n .n-cursor {
  background:var(--w-text-light) !important;
}


.dark #page-series-index .channel-option.no-channel p[data-v-9e6dac30],
.dark #page-series-index .channel-option.no-channel p,
.dark .album-list__title,.dark .album-list__tab-name,
.dark .small-item .meta,.dark .n .n-data .n-data-v, .dark .n .n-data .n-data-k,
.dark #page-series-index .channel-item .channel-name,.dark #page-series-index .channel-item , .dark #page-series-index .channel-item .channel-name[data-v-9e6dac30],
.dark #page-index .channel.guest .channel-item .channel-title .channel-name, .dark #page-index .channel.guest .channel-name, .dark #page-index .channel-name,
.dark #page-index .col-2 .section-title,
.dark #page-index .col-2 .section .user-auth .auth-description,
.dark .user-info .user-info-title .info-title[data-v-31d5659a],
.dark .user-info .user-info-title [class^=info-title],
.dark .user-info .info-content .info-command[data-v-31d5659a],
.dark .user-info .info-content [class^=info-command],
.dark .user-info .info-content .info-value[data-v-31d5659a],
.dark .user-info .info-content [class^=info-value],
.dark #id-card .idc-content .idc-username,.dark .m-level idc-m-level,
.dark .idc-meta-item,
.dark .elec .elec-count,.dark .elec,
.dark .elec .elec-setting, .elec .elec-total-c-num,
.dark .elec-total-c,
.dark .user-info .info-content .info-tags .info-tag .icon-tag[data-v-31d5659a],
.dark .user-info .info-content .info-tags .info-tag [class^=icon-tag],
.dark .user-info .info-content .info-tags .info-tag .tag-content[data-v-31d5659a],
.dark .user-info .info-content .info-tags .info-tag [class^=tag-content],
.dark #page-video #submit-video-type-filter a .count,
.dark #page-series-index .channel-index .breadcrumb[data-v-9e6dac30],
.dark #page-series-index .channel-index [class^=breadcrumb], 
.dark #page-series-index .channel-index .breadcrumb .item.cur[data-v-9e6dac30],
.dark #page-series-index .channel-index .breadcrumb .item.cur,
.dark .breadcrumb, .dark .breadcrumb .item.cur, .dark .breadcrumb .item,
.dark #page-setting .setting-privacy-item .setting-privacy-name,
.dark #page-setting .setting-privacy-item,
.dark #page-fav .fav-sidenav .nav-title .text,.dark #page-fav .fav-main .filter-item .text,.dark #page-fav .fav-main .filter-item,.dark #page-fav .fav-main,
.dark #page-index .channel .empty-state p,.dark #page-index .channel,.dark #page-index p,.dark .private-hint,.dark .section-title,
.dark #page-fav .fav-main .filter-item,.dark .be-dropdown-item, .dark #page-fav .fav-main .filter-item .filter-type .be-dropdown-item i, .dark #page-fav .fav-main .filter-item .filter-type .be-dropdown-item span, .dark #page-fav .fav-main .filter-item .filter-type .be-dropdown-item p,.dark #page-fav .fav-main .filter-item .filter-type .be-dropdown-item a,
.dark .favInfo-box .favInfo-details .fav-options .meta,.dark .favInfo-box .favInfo-details .fav-options,
.dark span,.dark .sub-tabs span, .dark .sub-tabs .filter-content,.dark .sub-tabs,.dark .sub-tab,
.dark .bili-dyn-title__text,.dark .bili-rich-textarea__inner,
.dark .bili-dyn-forward-publishing__editor .bili-rich-textarea__inner,
.dark .bili-popover, .dark .bili-popover__arrow,
.dark .game-card__info-title[data-v-7c9854da],.dark [class^=game-card__info-title],
.dark .section-title {
  color:var(--w-text-light) !important;
}


.dark #page-setting .setting-tag-list a,
.dark #page-fav .fav-sidenav .nav-title .text:hover{
  color:var(--w-text-light) !important;
}




.dark .bili-rich-textarea__inner,
.dark .bili-popover, .dark .bili-popover__arrow,
.dark .section {
  border-color: var(--w-border) !important;
}




/* border-color color background */
.dark .section .count,
.dark .g-search input,
.dark #id-card,
.dark #page-index .col-1,
.dark #page-fav .fav-main .search-input input,
.dark .bili-topic-search__popover,
.dark #page-video #submit-video-type-filter,
.dark #page-dynamic .col-2 .section,

.dark #page-index .col-2 .section  {
  border-color: var(--w-border) !important;
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
}

.dark #page-index,.dark #page-index .col-1, .dark #page-index .col-2,
.dark #page-index .channel, .dark #page-index .channel .channel-item,
.dark #page-index .col-1 .section-title,.dark #page-index .col-2 .section-title,
.dark .series-item .split-line[data-v-40b5e135],.dark .series-item .split-line,
.dark .g-search input:focus {
  border-color: var(--w-text) !important;
}

.dark .n .n-inner {
  box-shadow:none !important;
}


.dark .col-full,
.dark .btn,
.dark .btn.btn-large, 
.dark .btn.btn-large .btn-content[data-v-53027a10],
.dark .new-elec-trigger,
.dark .btn.idc-btn.default,
.dark .elec-status,
.dark .bili-dyn-more__menu, .dark .be-dropdown-menu,
.dark #page-series-index .channel-option.no-channel .create-channel[data-v-9e6dac30],
.dark #page-series-index .channel-option.no-channel .create-channel,
.dark .favInfo-box.favEmpty .favInfo-details .fav-options .fav-play, 
.dark .favInfo-box.invalid .favInfo-details .fav-options .fav-play,
.dark .reply-box .box-normal .reply-box-send[data-v-757acbb5]::after,
.dark .reply-box .box-normal .reply-box-send::after,
.dark .reply-box .box-normal .reply-box-send,
.dark .be-dropdown-item:hover,
.dark .resizable-component .editor-innter,
.dark .btn.idc-btn.primary {
  color:var(--w-text-light) !important;
  background-color:var(--w-bg-darker) !important;
  border-color: var(--w-text) !important;
}



.dark #page-series-index .channel-option.no-channel .create-channel[data-v-9e6dac30]:hover,
.dark #page-series-index .channel-option.no-channel .create-channel:hover,
.dark .favInfo-box.favEmpty .favInfo-details .fav-options .fav-play:hover, 
.dark .favInfo-box.invalid .favInfo-details .fav-options .fav-play:hover,
.dark .btn.primary.btn-large:hover,
.dark .btn:hover,
.dark .btn.btn-large .btn-content[data-v-53027a10]:hover,
.dark .btn.btn-large .btn-content:hover,
.dark .btn.btn-large:hover,
.dark .bili-dyn-more__menu:hover,
.dark .contribution-sidenav .contribution-item:hover,
.dark .btn:hover,
.dark .reply-box .box-normal .reply-box-send[data-v-757acbb5]:hover::after,
.dark .reply-box .box-normal .reply-box-send:hover::after,
.dark .reply-box .box-normal .reply-box-send,
.dark .reply-box .box-normal .reply-box-send:hover,
.dark .new-elec-trigger:hover,
.dark .elec-status:hover,
.dark .btn.idc-btn.primary:hover {
  color:var(--w-blue-link-hover) !important;
  border-color: var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important;
}

.dark .btn.idc-btn.default:hover {
  color:var(--w-blue-link-hover) !important;
  border:1px solid var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important;
}

.dark #page-setting #setting-new-tag-btn,
.dark #page-setting .setting-tag-list a,
.dark #page-setting #setting-new-tag {
  background:var(--w-bg) !important;
  border-color: var(--w-text) !important;
}

.dark #page-fav .fav-sidenav .fav-item.cur ,
.dark #page-fav .fav-sidenav .fav-item:hover  {
  background:var(--w-bg) !important;
}


.dark .h .h-v-host {
  color:  var(--w-white) !important;
  background: var(--w-blue-link-hove) !important;
}


` : ``;
  const t = `


`;
  const video = `

html {
  --graph_bg_thick:var(--w-border-dark);
}



.dark .bili-header__bar,
.dark .bpx-player-sending-bar,
.dark .harmony-font,.dark #v_desc,
.dark .bili-comment.browser-pc,
.dark .comment-container, .dark .bpx-player-auxiliary .bpx-player-dm-function,
.dark .reply-header,.dark .arc_toolbar_report,.dark .video-toolbar-left,
.dark .bui-collapse .bui-collapse-header,
.dark .bpx-player-auxiliary .bpx-player-collapse .bui-collapse-body,
.dark .bpx-player-auxiliary .bpx-player-contextmenu.bpx-player-white,
.dark .bpx-player-auxiliary .bpx-player-dm-wrap,
.dark .bpx-player-dm-load-status,
.dark .base-video-sections-v1,
.dark .video-sections-v1[data-v-482ecf06],.dark .video-sections-v1,
.dark .video-sections-head_second-line,
.dark .bili-header .header-login-entry[data-v-fc330406], .dark .bili-header .header-login-entry,
.dark .vip-login-tip[data-v-fc330406], .dark .vip-login-tip,
.dark .reply-box.fixed-box[data-v-757acbb5],.dark .reply-box.fixed-box,
.dark .at-panel .at-list-container .at-list-ground .at-user-list .at-user-item[data-v-78329793],
.dark .at-panel .at-list-container .at-list-ground .at-user-list .at-user-item,
.dark .emoji-panel .emoji-content .emoji-info[data-v-c4965e38],.dark .emoji-panel, .dark .emoji-panel .emoji-content,
.dark .emoji-panel .emoji-tab[data-v-c4965e38],.dark .emoji-panel .emoji-tab,.dark .emoji-panel .emoji-title[data-v-c4965e38],.dark .emoji-panel .emoji-title,
.dark .note-list .list-note-operation[data-v-13587840],.dark .note-list .list-note-operation,.dark .note-list,
.dark .note-list .note-card-container .note-card[data-v-13587840],.dark .note-list .note-card-container .note-card,
.dark .user-card-m-exp .user-info-wrapper .face,
.dark #app .header[data-v-67c4001b],.dark #app .header,
.dark #app .container .textarea .textarea-warp textarea[data-v-67c4001b],.dark #app .container .textarea .textarea-warp textarea,
.dark #app .submit[data-v-67c4001b],.dark #app .submit,
.dark .coin-operated-m-exp,
.dark .video-ai-assistant.video-toolbar-right-item.toolbar-right-ai,
.dark .ai-summary-popup,
.dark .ai-summary-popup *,
.dark .mini-header {
  background:var(--w-bg-darker) !important;
  color:var(--w-text) !important;
}



.dark .reply-box.fixed-box[data-v-757acbb5],.dark .reply-box.fixed-box,
.dark .reply-box .box-expand .reply-box-emoji .emoji-btn[data-v-757acbb5], .dark .reply-box .box-expand .reply-box-emoji .emoji-btn,
.dark .emoji-panel[data-v-c4965e38], .dark .emoji-panel,
.dark .reply-box .box-expand .at-btn[data-v-757acbb5], .dark .reply-box .box-expand .at-btn,
.dark .arc_toolbar_report,
.dark .video-toolbar-container,

.dark #v_tag {
  border-color:var(--w-border-dark) !important;
}

.dark .collection-m-exp .title,
.dark .reply-item .bottom-line[data-v-36229167], .dark .reply-item .bottom-line {
  border-color:var(--w-text) !important;
}



.dark .collection-m-exp .content .group-list li label .count, .dark .collection-m-exp .content .group-list li label,.dark .collection-m-exp,
.dark .collection-m-exp .content .group-list li label .personal, .dark .collection-m-exp .content .group-list,.dark .collection-m-exp .content,
.dark .at-panel .at-list-container .at-list-ground .at-user-list .at-user-item .user-info .user-fan[data-v-78329793] ,
.dark .at-panel .at-list-container .at-list-ground .at-user-list .at-user-item .user-info .user-fan,
.dark .at-panel .at-list-container .at-list-ground .ground-name[data-v-78329793],
.dark .at-panel .at-list-container .at-list-ground .ground-name,
.dark .user-card-m-exp .user-info-wrapper .info p ,.dark .user-card-m-exp .user-info-wrapper .info .sign ,
.dark .user-card-m-exp .user-info-wrapper .info .social a ,
.dark #app .container .question[data-v-67c4001b],
.dark #app .container .question,
.dark #app .container .textarea .textarea-warp .limit[data-v-67c4001b],
.dark #app .container .textarea .textarea-warp .limit,
.dark .collection-m-exp .content .group-list li,
.dark .note-list .note-card-container .note-card .note-info[data-v-13587840],.dark .note-list .note-card-container .note-card .note-info
{

  color:var(--w-text) !important;
}




.dark .at-panel .at-list-container .at-list-ground .at-user-list .at-user-item .user-info .user-name[data-v-78329793],
.dark .at-panel .at-list-container .at-list-ground .at-user-list .at-user-item .user-info .user-name,
.dark .at-panel .panel-title[data-v-78329793], .dark .at-panel .panel-title,
.dark .reply-box .box-expand .reply-box-emoji .emoji-btn[data-v-757acbb5],
.dark .reply-box .box-expand .reply-box-emoji .emoji-btn,
.dark .reply-box .box-expand .at-btn[data-v-757acbb5],
.dark .reply-box .box-expand .at-btn,
.dark .arc_toolbar_report,
.dark .bpx-player-video-info-online,.dark .bpx-player-video-info-divide,.dark .bpx-player-video-info-dm,
.dark .basic-desc-info,.dark .desc-info-text,
.dark .reply-content-container .reply-content,
.dark .root-reply,.dark .play-num, .dark .abstract,
.dark .reply-item .root-reply-container .content-warp .user-info .user-name,
.dark .mini-header__title,
.dark .toggle-btn-text,.dark .video-toolbar-left-item,
.dark .video-complaint-info video-toolbar-item-text,
.dark .video-note video-toolbar-right-item toolbar-right-note,
.dark .bpx-player-sending-bar .bpx-player-video-info,
.dark .mini-header .right-entry .right-entry__outside .right-entry-icon,
.dark .bpx-player-dm-btn-time,.dark .bpx-player-dm-btn-dm,.dark.bpx-player-dm-btn-date,
.dark .bpx-player-auxiliary .bpx-player-dm-container .dm-info-row,
.dark .bpx-player-auxiliary .bpx-player-dm-container .dm-info-row .dm-info-dm,
.dark .bpx-player-auxiliary .bpx-player-contextmenu.bpx-player-white>li,
.dark .dm-info-date,.dark .first-line-title, .dark .cur-page,
.dark .bili-header .header-login-entry>img[data-v-fc330406],
.dark .bili-header .header-login-entry>img,
.dark .bili-header .login-panel-popover .register-tip[data-v-fc330406] ,
.dark .bili-header .login-panel-popover .register-tip,
.dark .bili-header .login-panel-popover .login-btn[data-v-fc330406],
.dark .bili-header .login-panel-popover .login-btn,
.dark .bili-header .login-panel-popover .register-tip[data-v-fc330406]>a,
.dark .bili-header .login-panel-popover .register-tip>a,
.dark .vip-login-countdown-row .countdown-lable[data-v-fc330406],
.dark .vip-login-countdown-row .countdown-lable,
.dark .vip-login-countdown-row .counddown-wrap[data-v-fc330406],
.dark .vip-login-countdown-row .counddown-wrap,
.dark .vip-login-countdown-row .counddown-wrap span[data-v-fc330406],
.dark .vip-login-countdown-row .counddown-wrap span,
.dark .vip-login-title[data-v-fc330406],
.dark .vip-login-title,
.dark .vip-login-subtitle[data-v-fc330406],
.dark .vip-login-subtitle,
.dark .video-page-card-small .card-box .info .title,
.dark .bili-header .upload-panel-popover .upload-item .item-title[data-v-fc330406],
.dark .bili-header .upload-panel-popover .upload-item .item-title,
.dark .video-page-card-small .card-box .info .upname,
.dark .video-page-card-small .card-box .info .playinfo,
.dark .next-button .txt,.dark .video-episode-card__info-title, .dark .video-episode-card__info-duration,
.dark .membersinfo-normal .header .staff-amt[data-v-42892ec8],
.dark .membersinfo-normal .header .staff-amt,
.dark .reply-header .reply-navigation .nav-bar .nav-title .nav-title-text[data-v-a3384d8f],
.dark .reply-header .reply-navigation .nav-bar .nav-title .nav-title-text,
.dark .bili-header .login-panel-popover .register-exper[data-v-fc330406],
.dark .bili-header .login-panel-popover .register-exper,
.dark .reply-header .reply-navigation .nav-bar .nav-sort.hot .hot-sort[data-v-a3384d8f],
.dark .reply-header .reply-navigation .nav-bar .nav-sort.time .time-sort[data-v-a3384d8f],
.dark .reply-header .reply-navigation .nav-bar .nav-sort.hot .hot-sort, 
.dark .reply-header .reply-navigation .nav-bar .nav-sort.time .time-sort,
.dark .sub-reply-item .sub-user-info .sub-user-name[data-v-26797283],.dark .sub-reply-item .sub-user-info .sub-user-name,
.dark .video-info-container .video-title[data-v-4f1c0915],.dark .video-info-container .video-title,
.dark .video-info-detail[data-v-3b903b56], .dark .video-info-detail,
.dark .reply-box.disabled .box-normal .reply-box-send .send-text[data-v-757acbb5], .dark .reply-box.disabled .box-normal .reply-box-send .send-text,
.dark .sub-reply-list .view-more .view-more-pagination[data-v-27ad2dff], .dark .sub-reply-list .view-more .view-more-paginatio,
.dark .note-content, .dark .note-list .note-card-container .note-card .note-content[data-v-13587840],.dark .note-list .note-card-container .note-card .note-content,
.dark .note-pc .note-container .note-header .note-title,
.dark .note-list .note-card-container .note-card .user-info .user-name,.dark .note-list .note-card-container .note-card .user-info .user-name[data-v-13587840],
.dark .recommend-list-v1 .rec-title,.dark .recommend-list-v1 .rec-title[data-v-39ee0c7c],
.dark .video-toolbar-right-item, .dark .video-note.video-toolbar-right-item[data-v-bb961c9e],.dark .video-note.video-toolbar-right-item,
.dark .user-card-m-exp .user-info-wrapper .info .social .tip_text,
.dark .user-card-m-exp .user-info-wrapper .info .official-wrapper,
.dark .user-card-m-exp .user-info-wrapper .info .user .name,
.dark .coin-operated-m-exp .coin-title,.dark .coin-operated-m-exp .like-checkbox,
.dark .coin-operated-m-exp .coin-bottom .tips,
.dark .collection-m-exp .title,
.dark .video-title {
  color:var(--w-text-light) !important;
}


.dark .dark .user-card-m-exp .user-info-wrapper .info .user .name:hover,
.dark .video-page-card-small .card-box .info .title:hover,
.dark .bili-header .upload-panel-popover .upload-item .item-title[data-v-fc330406]:hover,
.dark .bili-header .upload-panel-popover .upload-item .item-title:hover,
.dark .video-page-card-small .card-box .info .upname:hover,
.dark .video-episode-card__info-title:hover, .dark .video-episode-card__info-duration:hover,
.dark .first-line-title:hover,
.dark .video-complaint-info video-toolbar-item-text:hover,
.dark .video-note video-toolbar-right-item toolbar-right-note:hover,
.dark .mini-header .right-entry .right-entry__outside .right-entry-icon:hover,
.dark .mini-header__title:hover,.dark .toggle-btn-text:hover,
.dark .bili-header .login-panel-popover .login-btn[data-v-fc330406]:before,
.dark .bili-header .login-panel-popover .login-btn:before,
.dark .bili-header .login-panel-popover .login-btn[data-v-fc330406]:hover:before,
.dark .bili-header .login-panel-popover .login-btn:hover:before,
.dark .bili-header .login-panel-popover .register-tip[data-v-fc330406]>a:hover,
.dark .bili-header .login-panel-popover .register-tip>a:hover,
.dark .reply-header .reply-navigation .nav-bar .nav-title .nav-title-text[data-v-a3384d8f]:hover,
.dark .reply-header .reply-navigation .nav-bar .nav-title .nav-title-text:hover,
.dark .user-card-m-exp .user-info-wrapper .info .social a:hover

{
  color:var(--w-blue-link-hover) !important;
}


.dark .at-panel[data-v-78329793], .dark .at-panel,
.dark .at-panel .at-list-container .at-list-ground .at-user-list .at-user-item[data-v-78329793]:hover,
.dark .at-panel .at-list-container .at-list-ground .at-user-list .at-user-item:hover,
.dark .bpx-player-auxiliary .bpx-player-dm-btn-footer,
.dark .bpx-player-auxiliary .bpx-player-dm-btn-history.bpx-player-disable,
.dark .bpx-player-auxiliary .bpx-player-dm-btn-history,
.dark .membersinfo-normal .header[data-v-42892ec8],.membersinfo-normal .header,
.dark .reply-box .box-normal .reply-box-warp .reply-box-textarea[data-v-757acbb5],
.dark .reply-box .box-normal .reply-box-warp .reply-box-textarea,
.dark .vip-login-countdown-row .counddown-wrap span[data-v-fc330406],.dark .vip-login-countdown-row .counddown-wrap span,
.dark .reply-tag-item,
.dark .vip-login-btn, .dark .vip-login-btn[data-v-fc330406],
.dark .bili-header .header-upload-entry[data-v-fc330406],
.dark .bili-header .header-upload-entry, .dark .bili-header .header-upload-entry[data-v-fc330406],
.dark .second-line_right,.dark .base-video-sections-v1 .video-section-list .video-episode-card__info-playing,
.dark .reply-box.disabled .box-normal .reply-box-warp .disable-mask[data-v-757acbb5],
.dark .reply-box.disabled .box-normal .reply-box-warp .disable-mask,
.dark .reply-box.disabled .box-normal .reply-box-warp .disable-mask .no-login-mask .login-btn[data-v-757acbb5],
.dark .reply-box.disabled .box-normal .reply-box-warp .disable-mask .no-login-mask .login-btn,
.dark .recommend-list-v1 .rec-footer[data-v-39ee0c7c], .dark .recommend-list-v1 .rec-footer,
.dark .reply-box .box-normal .reply-box-send[data-v-757acbb5],.dark .reply-box .box-normal .reply-box-send,
.dark .reply-box .reply-box-send[data-v-757acbb5],.dark .reply-box .reply-box-send,
.dark .video-tool-more-popover .video-tool-more-dropdown .dropdown-item,
.dark .video-tool-more-popover, .dark .note-header.drag-el,
.dark .user-card-m-exp .user-info-wrapper .info .user .user-label,
.dark .user-card-m-exp .user-info-wrapper .info .btn-box .like ,
.dark .user-card-m-exp .user-info-wrapper .info .btn-box .liked,
.dark .user-card-m-exp .user-info-wrapper .info .btn-box .message,
.dark #app .submit .cancel[data-v-67c4001b],
.dark #app .submit .cancel,
.dark #app .submit .confirm[data-v-67c4001b],
.dark #app .submit .confirm,
.dark .coin-operated-m,
.dark .coin-operated-m-exp .coin-bottom .bi-btn,
.dark .collection-m-exp,
.dark .primary-btn,.dark .palette-button-wrap .flexible-roll-btn-inner[data-v-46b9cf37],.dark .palette-button-wrap .flexible-roll-btn-inner,
.dark .collection-m-exp .content .group-list .add-group .add-btn,
.dark .collection-m-exp .bottom .btn.disable,
.dark .collection-m-exp .bottom .btn,
.dark .video-ai-assistant-badge,
.dark .fixed-sidenav-storage .fixed-sidenav-storage-item[data-v-5d529e3e],.dark .fixed-sidenav-storage .fixed-sidenav-storage-item,
.dark .video-tag-container .tag-panel .tag .show-more-btn[data-v-934a50f8],.dark .video-tag-container .tag-panel .tag .show-more-btn,
.dark .video-tag-container .tag-panel .tag-link {
  color:var(--w-text-light) !important;
  background:var(--w-bg-darker) !important;
  border:1px solid var(--w-text-light) !important;
}


.dark .collection-m-exp .bottom .btn.disable:hover,.dark .collection-m-exp .bottom .btn:hover,
.dark .collection-m-exp .content .group-list .add-group .add-btn:hover,
.dark .coin-operated-m-exp .coin-bottom .bi-btn:hover,
.dark #app .submit .cancel[data-v-67c4001b]:hover,.dark #app .submit .cancel:hover,
.dark #app .submit .confirm[data-v-67c4001b]:hover,.dark #app .submit .confirm:hover,
.dark .fixed-sidenav-storage .fixed-sidenav-storage-item[data-v-5d529e3e]:hover,.dark .fixed-sidenav-storage .fixed-sidenav-storage-item:hover,
.dark .primary-btn:hover,
.dark .palette-button-wrap .flexible-roll-btn-inner[data-v-46b9cf37]:hover,.dark .palette-button-wrap .flexible-roll-btn-inner:hover,

.dark .dark .user-card-m-exp .user-info-wrapper .info .btn-box .message:hover,
.dark .user-card-m-exp .user-info-wrapper .info .user .user-label:hover,
.dark .user-card-m-exp .user-info-wrapper .info .btn-box .liked:hover,
.dark .user-card-m-exp .user-info-wrapper .info .btn-box .like:hover ,
.dark .reply-box.disabled .box-normal .reply-box-warp .disable-mask .no-login-mask .login-btn[data-v-757acbb5]:hover,
.dark .reply-box.disabled .box-normal .reply-box-warp .disable-mask .no-login-mask .login-btn:hover,
.dark .bpx-player-auxiliary .bpx-player-dm-btn-footer:hover,
.dark .bpx-player-auxiliary .bpx-player-dm-btn-history.bpx-player-disable:hover,
.dark .bpx-player-auxiliary .bpx-player-dm-btn-history:hover,
.dark .second-line_right:hover,
.dark .vip-login-btn[data-v-fc330406]:hover,
.dark .vip-login-btn:hover,
.dark .bili-header .header-upload-entry[data-v-fc330406]:hover,
.dark .bili-header .header-upload-entry:hover,
.dark .recommend-list-v1 .rec-footer[data-v-39ee0c7c]:hover, .dark .recommend-list-v1 .rec-footer:hover,
.dark .reply-box .box-normal .reply-box-send[data-v-757acbb5]:hover,.dark .reply-box .box-normal .reply-box-send:hover,
.dark .reply-box .reply-box-send[data-v-757acbb5]:hover,.dark .reply-box .reply-box-send:hover,
.dark .video-tag-container .tag-panel .tag .show-more-btn[data-v-934a50f8]:hover,.dark .video-tag-container .tag-panel .tag .show-more-btn:hover,
.dark .video-tag-container .tag-panel .tag-link:hover {
  color:var(--w-blue-link-hover) !important;
  border-color: var(--w-blue-link-hover) !important;
  background:var(--w-bg-darker) !important;
}

.dark .bpx-player-dm-setting-wrap,
.dark .bpx-player-dm-setting,
.dark .bui-dropdown-icon,
.dark .bui-collapse .bui-collapse-header .bui-collapse-arrow .bui-collapse-arrow-text .arrow-icon,
.dark .bui-danmaku-switch  {
  fill:var(--w-text-light) !important;
}


.dark #bilibili-player-placeholder {
  box-shadow: none !important;
}
`;
  const isUrl = window.location.href.indexOf("https://www.bilibili.com/bangumi/play") !== -1;
  const bangumiCss = isUrl ? `

.dark * {
  color:var(--w-text-light) !important;
  border-color: var(--w-border) !important;
  outline-color: var(--w-border) !important;
}

.dark .home-container,.dark #__next,.dark .main-container,
.dark .plp-r *,
.dark .mediainfo_mediaInfo__Cpow4 *{
  color:var(--w-text-light) !important;
  border-color: var(--w-border) !important;
  outline-color: var(--w-border) !important;
  background-color:var(--w-bg-darker) !important;
}

.dark .bili-avatar-icon.bili-avatar-right-icon{
  display:none !important;
}


.dark .reply-box .box-normal .reply-box-send .send-text[data-v-757acbb5],
.dark .reply-box .box-normal .reply-box-send .send-text {
  background:none !important;
}


.dark * [class^=imageListItem_title][class^=imageListItem_active]:hover,
.dark * [class^=imageListItem_title]:hover,
.dark * .ep-title:hover {
  color:var(--w-blue-link-hover) !important;
}



` : ``;
  const isAccaout = window.location.href.indexOf("https://www.bilibili.com/account") !== -1 || window.location.href.indexOf("https://www.bilibili.com/v/customer-service") !== -1;
  const dark$1 = isAccaout ? `
${commonDark}
` : ``;
  const router = `
${home}
${video}
${space}
${blackboard}
${t}
${anime}
${guochuang}
${douga}
${read}
${bangumiCss}
${dark$1}
`;
  const dark = `
${common}
${router}
${other}

`;
  const css = is_bilibili ? `
div#i_cecream .floor-single-card,
div#i_cecream .bili-live-card.is-rcmd,
div#i_cecream .adblock-tips,
.activity-m-v1,#right-bottom-banner,
div.video-container-v1 div.pop-live-small-mode.part-undefined,
.recommended-swipe.grid-anchor,
.video-page-special-card-small
{
   display:none !important;
}

/* 输入框*/
.nav-search-content>input::placeholder {
   color: transparent;
   opacity:0 !important;
}

.m-bilibili-btn {
   cursor: pointer !important;
   background: #FFFFFF !important;
   background: var(--bg1_float) !important;
   border: 1px solid #E3E5E7 !important;
   border: 1px solid var(--line_regular) !important;
   border-radius: 8px !important;
   box-sizing: border-box !important;
   padding: 6px !important;
   margin-bottom: 6px !important;
   color: #18191C !important;
   color: var(--text1) !important;
   line-height: 14px;
   font-size: 12px;
   display: flex;
   flex-direction: column;
   align-items: center;
   width: 40px;
}

.m-span-text {
   transition: all 0.3s ease ;
   cursor: pointer  ;
   opacity: 0 ;
   float:right ;
   display:inline-block ;
   margin:0 10px ;
   transform: scale(0.5) ;
   font-size:20px ;
   position:relative ;
 }
 
 .m-span-text::before{
   content:"🧹" ;
   cursor: pointer ;
 }

.bili-video-card__info--bottom:hover .m-span-text,
.video-page-card-small:hover .m-span-text,
.up-info-container:hover .m-span-text,
.video-page-operator-card-small:hover .m-span-text
{
   opacity: 1;
   transform: scale(1.1);
   color:orange;
}


 


${dark}
` : "";
  addStyle(
    `
${root$1}
${css$4}
${css$3}
${css}
${css$2}
`
  );
  (function() {
    if (typeof window == "undefined") {
      return;
    }
    if (window == null ? void 0 : window.LivePluginLoadingComplate) {
      return;
    }
    if (is_exculues) {
      return;
    }
    if (!is_localhost) {
      console.clear();
    }
    customElements.define("live-plugin-element", LivePluginElement);
    try {
      login$1();
      updateDarkClass();
    } catch (error2) {
      console.error("live-plugin:", error2);
    }
    try {
      let pluginSupport = true;
      if (is_huya) {
        new TriggerLive();
      } else if (is_douyu) {
        new FishLive();
      } else if (is_bilibili) {
        new BiliBili();
      } else if (is_douyin) {
        new DouYin();
      } else if (is_localhost) {
        new LivePlugin();
      } else {
        pluginSupport = false;
        error("插件地址不适配,请检查匹配地址!!!");
      }
      if (pluginSupport) {
        console.log(
          "%c%s%c%s",
          "background-image: linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%); padding: 2px;  border-radius: 20px 0 0 20px; color: #fff;font-size:12px;",
          `欢迎使用live-plugin 下载地址:`,
          "background-image: linear-gradient(to right, #f78ca0 0%, #f9748f 19%, #fd868c 60%, #fe9a8b 100%); padding: 2px; border-radius: 0 20px 20px 0; color: #fff;font-size:12px;",
          download_plugin_url
        );
        console.log(
          "%c%s%c%s",
          " background-image: linear-gradient(to top, #c1dfc4 0%, #deecdd 100%);padding: 2px; border-radius: 20px 0 0 20px; color: #fff;font-size:16px;",
          `源码地址:`,
          "background-image: linear-gradient(to top, #00c6fb 0%, #005bea 100%); padding: 2px; border-radius: 0 20px 20px 0; color: #fff;font-size:16px;",
          source_code_url
        );
      }
    } catch (e) {
      error(e);
    }
    window.LivePluginLoadingComplate = true;
  })();

})();