Enhanced Twitch Ad Blocker with Auto Claim Bonus

Block all Twitch ads and automatically claim bonus points

目前为 2024-09-16 提交的版本。查看 最新版本

// ==UserScript==
// @name         Enhanced Twitch Ad Blocker with Auto Claim Bonus
// @namespace    https://github.com/Brembo19
// @version      1.1
// @description  Block all Twitch ads and automatically claim bonus points
// @author       Brembo19
// @match        *://*.twitch.tv/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const blockAdsInVideo = () => {
        const video = document.querySelector('video');
        if (video && video.src.includes('ad_')) {
            video.src = '';
        }
    };

    const removeAdBanners = () => {
        const adSelectors = [
            '[aria-label="Advertisement"]',
            '.ad-banner',
            '.ad-slot',
            '.tw-ad-container',
            '[data-ad="true"]'
        ];

        adSelectors.forEach(selector => {
            document.querySelectorAll(selector).forEach(ad => ad.remove());
        });
    };

    const observeDynamicContent = () => {
        const observer = new MutationObserver(mutations => {
            mutations.forEach(mutation => {
                if (mutation.type === 'childList') {
                    removeAdBanners();
                }
            });
        });

        observer.observe(document.body, { childList: true, subtree: true });
    };

    const autoClaimBonus = () => {
        let MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
        let claiming = false;
        if (MutationObserver) console.log('Auto claimer is enabled.');
        let observer = new MutationObserver(e => {
            let bonus = document.querySelector('.claimable-bonus__icon');
            if (bonus && !claiming) {
                bonus.click();
                let date = new Date();
                claiming = true;
                setTimeout(() => {
                    console.log('Claimed at ' + date);
                    claiming = false;
                }, Math.random() * 1000 + 2000);
            }
        });
        observer.observe(document.body, { childList: true, subtree: true });
    };

    blockAdsInVideo();
    removeAdBanners();
    observeDynamicContent();
    autoClaimBonus();

    setInterval(blockAdsInVideo, 1000);
    setInterval(removeAdBanners, 2000);
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址