Greasy Fork

Greasy Fork is available in English.

Bilibili 视频默认选择最高清晰度

try to take over the world!

目前为 2018-12-06 提交的版本。查看 最新版本

// ==UserScript==
// @name         Bilibili 视频默认选择最高清晰度
// @namespace    http://tampermonkey.net/
// @version      0.2018.12.7
// @description  try to take over the world!
// @author       You
// @match        *://www.bilibili.com/video/av*
// @grant        none
// @license      GPL-3.0-or-later
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    var MO = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
    function vip(element, observer) {
        if (element.click() !== undefined) observer.disconnect();
    }
    function novip(a, e, observer) {
        for (var i=1; document.querySelector(a + i + ")") !== null; i++) {
            if (document.querySelector(a + i + e) !== null) continue;
            vip(document.querySelector(a + i + ")"), observer);
            break;
        }
    }
    new MO(function (elements, observer) {
        elements[0] = document.querySelector("div.bui-select-list-wrap li:first-child");
        elements[1] = document.querySelector("i.legalize.vip");
        elements[2] = document.getElementById("bilibiliPlayer");
        elements[3] = document.querySelector("li.nav-item.profile-info a[src$='login']");
        elements[4] = "div.bui-select-list-wrap li:nth-of-type(";
        if (elements[2] !== null && elements[2].hasAttribute("data-login") && document.querySelector("span.bui-select-result").innerHTML == '自动') {
            if (elements[1] !== null ) vip(elements[0], observer);
            else if (elements[2].getAttribute("data-login") == 'true') novip(elements[4], ") span.bilibili-player-bigvip", observer);
            else if (elements[3] !== null ) novip(elements[4], ") span.bilibili-player-needlogin", observer);
        }
    }).observe(document.body,{'childList': true});
})();