Greasy Fork

Greasy Fork is available in English.

斗鱼自动切换最高画质或最低画质

斗鱼直播自动调整最低分辨率或最高分辨率;自动调整2K、蓝光、超清、高清清晰度;

当前为 2021-08-03 提交的版本,查看 最新版本

// ==UserScript==
// @name         斗鱼自动切换最高画质或最低画质
// @namespace    https://github.com/Eished
// @author       Eished
// @version      2021.08.03.5
// @description  斗鱼直播自动调整最低分辨率或最高分辨率;自动调整2K、蓝光、超清、高清清晰度;
// @license      AGPL-3.0
// @match        *://www.douyu.com/*
// @icon         https://www.google.com/s2/favicons?domain=greasyfork.org
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_registerMenuCommand
// ==/UserScript==


(function () {
  'use strict';

  const videoSub = document.querySelector(".layout-Player-videoSub");
  if (videoSub == undefined) {
    return;
  }

  let Clarity = GM_getValue("Clarity");
  if (Clarity == undefined) {
    Clarity = 1;
    GM_setValue("Clarity", Clarity);
  }

  const observer = new MutationObserver(callback);
  observer.observe(videoSub, {
    childList: true,
    subtree: true
  })

  function callback() {
    const controller = videoSub.querySelector(`[value="画质 "]`);
    if (controller) {
      observer.disconnect();
      let ul = controller.nextElementSibling;
      if (Clarity == 1) {
        ul = ul.firstElementChild; // 最高画质
      } else {
        ul = ul.lastElementChild; // 最低画质
      }
      ul.className ? console.log(ul.className) : ul.click();
      return;
    }
  }

  function high() {
    Clarity = 1;
    GM_setValue("Clarity", Clarity);
    location.reload();
  }

  function low() {
    Clarity = 0;
    GM_setValue("Clarity", Clarity);
    location.reload();
  }
  GM_registerMenuCommand("最高画质", high);
  GM_registerMenuCommand("最低画质", low);
})();