Auto-Click Blogger Sensitive Content Button

Automatically clicks through sensitive content warnings on Blogger

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

You will need to install an extension such as Tampermonkey to install this script.

Bu komut dosyasını yüklemek için bir kullanıcı komut dosyası yöneticisi uzantısı yüklemeniz gerekecek.

(Zaten bir kullanıcı komut dosyası yöneticim var, kurmama izin verin!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Zateb bir user-style yöneticim var, yükleyeyim!)

// ==UserScript==
// @name         Auto-Click Blogger Sensitive Content Button
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Automatically clicks through sensitive content warnings on Blogger
// @author       You
// @match        *://*.blogger.com/*
// @match        *://*.blogspot.com/*
// @grant        none
// @license      CC BY-NC-SA 4.0
// ==/UserScript==

(function() {
    'use strict';

    const MAX_ATTEMPTS = 5;
    const ATTEMPT_INTERVAL = 1000;
    const MAX_OBSERVE_TIME = 10000;
    let attempts = 0;

    function clickThroughWarning() {
        const buttonSelectors = [
            'a.maia-button.maia-button-primary',
            'a[text="I UNDERSTAND AND I WISH TO CONTINUE"]',
            'div#maia-main p a.maia-button.maia-button-primary'
        ];

        for (const selector of buttonSelectors) {
            const buttons = document.querySelectorAll(selector);
            for (const button of buttons) {
                if (button.textContent.includes('I UNDERSTAND AND I WISH TO CONTINUE')) {
                    button.click();
                    return true;
                }
            }
        }

        const xpathResult = document.evaluate(
            '/html/body/div[2]/p[2]/a[1]',
            document,
            null,
            XPathResult.FIRST_ORDERED_NODE_TYPE,
            null
        );

        if (xpathResult.singleNodeValue) {
            xpathResult.singleNodeValue.click();
            return true;
        }

        return false;
    }

    function attemptClick() {
        if (attempts >= MAX_ATTEMPTS) {
            return;
        }

        attempts++;
        if (!clickThroughWarning() && attempts < MAX_ATTEMPTS) {
            setTimeout(attemptClick, ATTEMPT_INTERVAL);
        }
    }

    function initObserver() {
        const observer = new MutationObserver((mutations) => {
            if (clickThroughWarning()) {
                observer.disconnect();
                return;
            }
        });

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

        setTimeout(() => {
            observer.disconnect();
        }, MAX_OBSERVE_TIME);
    }

    attemptClick();
    initObserver();
})();