Reddit Search Button Next to Google Search

Adds a Reddit search button next to Google search button

// ==UserScript==
// @name         Reddit Search Button Next to Google Search
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Adds a Reddit search button next to Google search button
// @author       You
// @match        https://www.google.com/*
// @match        https://google.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    function addCustomStyles() {
        const styleSheet = document.createElement("style");
        styleSheet.textContent = `
            .reddit-search-btn {
                background: linear-gradient(to bottom, #ff4500, #dc3545);
                border: none;
                color: white;
                padding: 8px 16px;
                border-radius: 20px;
                font-family: Arial, sans-serif;
                font-weight: bold;
                cursor: pointer;
                transition: all 0.3s ease;
                box-shadow: 0 2px 4px rgba(0,0,0,0.2);
                text-transform: uppercase;
                font-size: 14px;
                letter-spacing: 0.5px;
                height: 36px;
                display: inline-flex;
                align-items: center;
                margin-left: 10px;
                vertical-align: middle;
            }

            .reddit-search-btn:hover {
                background: linear-gradient(to bottom, #ff5610, #e84555);
                box-shadow: 0 4px 8px rgba(0,0,0,0.3);
            }

            .reddit-search-btn:active {
                box-shadow: 0 1px 2px rgba(0,0,0,0.2);
            }

            .reddit-search-btn::before {
                content: "🔍 ";
                margin-right: 4px;
            }
        `;
        document.head.appendChild(styleSheet);
    }

    function createRedditButton() {
        // Find the Google search buttons container
        const buttonsContainer = document.querySelector('div.FPdoLc, div.aajZCb');
        if (!buttonsContainer) return;

        // Check if button already exists
        if (buttonsContainer.querySelector('.reddit-search-btn')) return;

        // Create the Reddit button
        const redditButton = document.createElement('button');
        redditButton.textContent = 'Search Reddit';
        redditButton.className = 'reddit-search-btn';
        redditButton.type = 'button';

        // Add click event listener
        redditButton.addEventListener('click', function(e) {
            e.preventDefault();
            // Get text from Google search input
            const searchInput = document.querySelector('textarea.gLFyf, input.gLFyf');
            if (searchInput && searchInput.value.trim()) {
                const redditSearchUrl = `https://www.google.com/search?q=site:reddit.com ${encodeURIComponent(searchInput.value)}`;
                window.open(redditSearchUrl, '_blank');
            }
        });

        // Add the button to the container
        const googleSearchButton = buttonsContainer.querySelector('input[value="Google Search"], button[aria-label="Google Search"]');
        if (googleSearchButton) {
            googleSearchButton.parentElement.appendChild(redditButton);
        } else {
            buttonsContainer.appendChild(redditButton);
        }
    }

    function init() {
        addCustomStyles();

        // Initial creation with a delay to ensure page is loaded
        setTimeout(createRedditButton, 1000);

        // Watch for dynamic changes
        const observer = new MutationObserver(function() {
            createRedditButton();
        });

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

    // Run initialization
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', init);
    } else {
        init();
    }
})();