Brave Auto-Expand All "Show More" buttons + Others

Auto-expands a lot of the buttons for easier browsing more information the merrier

// ==UserScript==
// @name         Brave Auto-Expand All "Show More" buttons + Others
// @version      2.5
// @description  Auto-expands a lot of the buttons for easier browsing more information the merrier
// @author       Misspent & OpenAI
// @namespace    https://chatbot.theb.ai
// @match        https://search.brave.com/search?q=*
// @icon         https://i.imgur.com/HBBSMUb.png
// @license      MIT
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Auto-Click "Show More" on sidebar
    function clickShowMoreSidebar() {
        document.querySelectorAll(".fdb.infobox .footer > .btn--text.btn--sm.btn").forEach(function(item) {
            item.click();
        });
    }

    // Auto-Click "Show More" on definition snippet
    function clickShowMoreDefinition() {
        document.querySelectorAll("#definition .button.svelte-9gmgko").forEach(function(item) {
            item.click();
        });
    }

    // Auto-Click "More about {subject}" on sidebar | 1st
    function clickMoreAboutSidebar() {
        const elements = document.querySelectorAll('.infobox-factsheet-show-more');
        if (elements.length > 0) {
            const buttonText = elements[0].textContent.trim();
            if (buttonText.startsWith('More about')) {
                elements[0].click();
            }
        }
    }

    // Auto-Click "Show more" on sidebar | 2nd
    function clickShowMoreSidebar2() {
        const buttons = document.querySelectorAll('aside .action-wrapper button[rel="noopener"]');
        buttons.forEach(button => {
            const span = button.querySelector('span');
            if (span && span.textContent === 'Show more') {
                button.click();
            }
        });
    }

    // Auto-Click "More about {subject}" on sidebar | 3rd
    function clickMoreAboutSidebar3() {
        const elements = document.querySelectorAll('#attr-show-more button');
        if (elements.length > 0) {
            const buttonText = elements[0].textContent.trim();
            if (buttonText.startsWith('More about')) {
                elements[0].click();
            }
        }
    }

    // Auto-Click "Show more" for Summarizer
    function clickShowMoreSummarizer() {
        var elements = document.querySelectorAll('#summarizer button[rel="noreferrer noopener"]');
        if (elements.length > 0) {
            elements[0].click();
        }
    }

    // Auto-Click "More" for New AI
    function clickMoreNewAIContainer() {
        var elements = document.querySelectorAll('#llm-container .visible .content-wrapper-footer-button button.type--footer-prominent');
        if (elements.length > 0) {
            elements[0].click();
        }
    }


    // Auto-Click "More" for New AI in main results
    function clickMoreNewAIResultsContainer() {
        var elements = document.querySelectorAll('#llm-show-more-button');
        if (elements.length > 0) {
            elements[0].click();
        }
    }

    // Auto-Click "More" for New AI in main results
    function clickMoreNewAIResultsURLContainer() {
        var elements = document.querySelectorAll('#chatllm-context button.context-other-results-card');
        if (elements.length > 0) {
            elements[0].click();
        }
    }

    // Auto-Click "More" for more cards in new snippet
    function clickMoreNewAILinkCards() {
        var elements = document.querySelectorAll('#llm-container #chatllm-context button.more-card');
        if (elements.length > 0) {
            elements[0].click();
        }
    }


    // Auto-Click "+ More" for more website link buttons in new main result snippet (below Follow up section)
    function clickMoreNewAILinkButtonCards() {
        var elements = document.querySelectorAll('#llm-snippet .context-results button.context-other-results-card');
        if (elements.length > 0) {
            elements[0].click();
        }
    }


    // Auto-Click Reddit Discussion show more
    function clickRedditDiscussionContainer() {
        const buttons = document.querySelectorAll('#discussions .action-container button:first-child');
        buttons.forEach(button => {
            const span = button.querySelector('span');
            if (span && span.textContent === 'Show more') {
                button.click();
            }
        });
    }

    // Auto-Click "Show More" for Discussions box
    function clickShowMoreDiscussions() {
        const buttons = document.querySelectorAll('#discussions .button.svelte-9gmgko.size--tiny.type--outlined.type');
        buttons.forEach(button => {
            const span = button.querySelector('span');
            if (span && span.textContent === 'Show more') {
                button.click();
            }
        });
    }

    // Run all the functions initially
    clickShowMoreSidebar();
    clickShowMoreDefinition();
    clickMoreAboutSidebar();
    clickShowMoreSidebar2();
    clickMoreAboutSidebar3();
    clickShowMoreSummarizer();
    clickShowMoreDiscussions();
    clickMoreNewAIContainer();
    clickMoreNewAILinkCards();
    clickMoreNewAIResultsContainer();
    clickRedditDiscussionContainer();
    clickMoreNewAIResultsURLContainer();
    clickMoreNewAILinkButtonCards();

    // Add intervals to continuously check for certain buttons | You can adjust the interval time (in milliseconds) as needed
    setInterval(clickMoreAboutSidebar, 0);
    setInterval(clickShowMoreSidebar2, 0);
    setInterval(clickMoreAboutSidebar3, 0);
    setInterval(clickShowMoreSummarizer, 0);
    setInterval(clickMoreNewAIContainer, 0);
    setInterval(clickMoreNewAILinkCards, 0);
    setInterval(clickMoreNewAIResultsContainer, 0);
    setInterval(clickRedditDiscussionContainer, 0);
    setInterval(clickMoreNewAIResultsURLContainer, 0);
    setInterval(clickMoreNewAILinkButtonCards, 0);
    const intervalId = setInterval(clickShowMoreDiscussions, 0);
})();