Greasy Fork

9anime Auto Best Resolution

Automatcially select the highest resolution on vidstream/mycloud streams

目前为 2023-03-25 提交的版本。查看 最新版本

// ==UserScript==
// @name         9anime Auto Best Resolution
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  Automatcially select the highest resolution on vidstream/mycloud streams
// @author       Discord: int3nse#0854
// @match        https://vidstream.pro/*
// @match        https://vidstreamz.online/*
// @match        https://mcloud.to/*
// @match        https://vizcloud.co/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=9anime.to
// @grant        none
// @license      MIT
// ==/UserScript==

(async () => {
    'use strict';
    
    function waitForElement(selector) {
        return new Promise(resolve => {
            if (document.querySelector(selector)) {
                return resolve(document.querySelector(selector));
            }
            
            const observer = new MutationObserver(mutations => {
                if (document.querySelector(selector)) {
                    resolve(document.querySelector(selector));
                    observer.disconnect();
                }
            });
            
            observer.observe(document.body, {
                childList: true,
                subtree: true
            });
        });
    }
    
    const qualityMenuSelector = '#jw-settings-submenu-quality > div';
    
    const menu = await waitForElement(qualityMenuSelector);
    const qualityButtons = menu.children;
    
    if (!qualityButtons || !qualityButtons.length || qualityButtons.length < 2) {
        // Something really wrong happened, but we can't do anything about it. Fail fast!
        console.warn('9anime Auto Best Resolution userscript failed to find quality selector buttons!'); // Not that anyone will be able to see it...
        return; 
    }
    
    // 2nd button, since the first is "Auto"
    const bestQualityButton = qualityButtons[1];
    
    // Mission complete!
    bestQualityButton.click();
})();