Bilibili DD体验优化 - 标题栏直接跳转管人区

将B站视频和主页的菜单栏上的【主播】修改为虚拟主播,简化了跳转操作

// ==UserScript==
// @name         Bilibili DD体验优化 - 标题栏直接跳转管人区
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  将B站视频和主页的菜单栏上的【主播】修改为虚拟主播,简化了跳转操作
// @author       yyly
// @match        *://www.bilibili.com/*
// @grant        none
// @namespace https://greasyfork.org/zh-CN/users/692472-necrosn
// @run-at document-end


// ==/UserScript==
const changeToVUP = (urlElement, newURL="https://live.bilibili.com/p/eden/area-tags?areaId=371&parentAreaId=9") => {
    urlElement.innerHTML = "虚拟主播";
    urlElement.href = newURL;
};

window.onload = (function() {
    var headerElement = document.getElementById('internationalHeader');
    if (headerElement != null){
        // static
        var navLinkElement = headerElement.getElementsByClassName('nav-link-ul')[0];
        var liveElement = navLinkElement.getElementsByClassName('nav-link-item')[3];
        var urlElement = liveElement.getElementsByTagName('a')[0];
        changeToVUP(urlElement);
    } else {
        // dynamic
            // 监视 .item 的 DOM 树 childList 变化
        new MutationObserver((mutations, self) => {
            mutations.forEach(({ addedNodes }) => {
                try {
                    headerElement = document.getElementById('internationalHeader');
                    var navLinkElement = headerElement.getElementsByClassName('nav-link-ul mini')[0];
                    var liveElement = navLinkElement.getElementsByClassName('nav-link-item')[3];
                    var urlElement = liveElement.getElementsByTagName('a')[0];
                    changeToVUP(urlElement);
                    self.disconnect();
                } catch (e) {
                    // pass
                    console.log("Error");
                }
            });
        }).observe(document.getElementById('app'), { childList: true });
    }
})();