Greasy Fork

Greasy Fork is available in English.

去你妈的批站诈骗广告

bilibili,B站,屏蔽首页小火箭推广视频,屏蔽广告,左侧大图滑动推荐栏

目前为 2025-03-14 提交的版本。查看 最新版本

// ==UserScript==
// @name         去你妈的批站诈骗广告
// @namespace    http://tampermonkey.net/
// @version      1.3
// @description  bilibili,B站,屏蔽首页小火箭推广视频,屏蔽广告,左侧大图滑动推荐栏
// @author       爆菊大师
// @match        *://*.bilibili.com/*
// @grant        none
// @license MIT
// ==/UserScript==

(function () {
    'use strict';
    const selectors = {
        pseudo: '.bili-video-card.is-rcmd',
        icons: '.vui_icon.bili-video-card__stats--icon',
        adFeed: '.bili-video-card__mask .bili-video-card__stats--text',
        skeleton: '.bili-live-card.is-rcmd.enable-no-interest .bili-live-card__skeleton.hide',
        swipe: '.recommended-swipe.grid-anchor, .floor-single-card, .fixed-card'
    };
    function hideElement(element) {
        element.style.display = 'none';
    }
    function isBlocked(element) {
        const content = window.getComputedStyle(element, '::before').content;
        return content.includes('AdGuard') || content.includes('AdBlock');
    }
    function checkElements(selector, condition, parentSelector) {
        document.querySelectorAll(selector).forEach(el => {
            const target = parentSelector ? el.closest(parentSelector) : el;
            if (target && (!condition || condition(el))) hideElement(target);
        });
    }
    function runAllChecks() {
        checkElements(selectors.pseudo, el =>
            isBlocked(el) || Array.from(el.children).some(isBlocked)
        );
        checkElements(selectors.icons, null, '.bili-video-card');
        checkElements(selectors.adFeed, el =>
            el.textContent.includes('广告'), '.bili-video-card__wrap'
        );
        checkElements(selectors.skeleton, null, '.bili-live-card');
        checkElements(selectors.swipe);
    }
    runAllChecks();
    new MutationObserver(runAllChecks)
        .observe(document.body, { subtree: true, childList: true });
})();