Greasy Fork

Greasy Fork is available in English.

Bilibili 收藏夹账号已注销修正

修正Bilibili 账户已注销的主页链接,修改为 https://www.bilibili.com/list/$UID

当前为 2025-08-06 提交的版本,查看 最新版本

// ==UserScript==
// @name         Bilibili 收藏夹账号已注销修正
// @name:zh-CN   Bilibili 收藏夹账号已注销修正
// @namespace    http://tampermonkey.net/
// @version      1.1.0
// @license      MIT
// @description  修正Bilibili 账户已注销的主页链接,修改为 https://www.bilibili.com/list/$UID
// @description:zh-CN  修正收藏夹内 Bilibili 账户已注销的主页链接,修改为 https://www.bilibili.com/list/$UID
// @author       Kaesinol
// @match        https://*.bilibili.com/*
// @grant        none
// ==/UserScript==

// https://github.com/the1812/Bilibili-Evolved/discussions/4804#discussioncomment-10513931
(function () {
    'use strict';
    function processLinks() {
        document.querySelectorAll('div.bili-video-card__subtitle a').forEach(a => {
            handleElement(a)
        });
    }
    function handleElement(a) {
        const textParts = a.textContent.split(" ");
        if (textParts.includes("账号已注销")) {
            const match = a.href.match(/\/(\d+)\??/);
            if (match) {
                a.href = `https://www.bilibili.com/list/${match[1]}`;
                a.style.textDecoration = "line-through";
            }
        }
    }
    function processCommentRenderers(elements) {
        elements.forEach(renderer => {
            handleElement(renderer.shadowRoot.querySelector('bili-comment-renderer').shadowRoot.querySelector('bili-comment-user-info').shadowRoot.querySelector('#user-name a'))
        });
    }

    function processComments() {
        const startElement = document.querySelector('bili-comments');
        if (startElement && startElement.shadowRoot) {
            const allElements = startElement.shadowRoot.querySelectorAll('bili-comment-thread-renderer');
            processCommentRenderers(allElements);
        }
    }

    const observer = new MutationObserver(() => {
        processLinks();
        processComments();
    });
    observer.observe(document.body, { childList: true, subtree: true });
    setInterval(processComments, 3000);
})();