Send to AI Studio (Direct Chat)

Sends the current page URL directly to the main AI Studio chat dialog.

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Send to AI Studio (Direct Chat)
// @namespace    http://tampermonkey.net/
// @version      2.4
// @description  Sends the current page URL directly to the main AI Studio chat dialog.
// @author       Gemini
// @license      MIT
// @match        *://*/*
// @match        https://aistudio.google.com/live*
// @grant        GM_addStyle
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_openInTab
// @run-at       document-idle
// ==/UserScript==

(function() {
    'use strict';

    const STORAGE_KEY = 'urlToProcessByAIStudio';

    // =================================================================================
    // PART 2: This code runs ONLY on the aistudio.google.com/live page
    // =================================================================================
    if (window.location.href.startsWith('https://aistudio.google.com/live')) {

        async function runAIStudioAutomation() {
            const urlToProcess = await GM_getValue(STORAGE_KEY, null);

            if (!urlToProcess) {
                return;
            }
            await GM_setValue(STORAGE_KEY, null);

            // --- Step 1: Wait for the chat box to appear on the page ---
            const findChatBoxInterval = setInterval(() => {
                const chatBox = document.querySelector("textarea[placeholder='Start typing a prompt']");
                if (chatBox) {
                    clearInterval(findChatBoxInterval); // Stop checking

                    // --- Step 2: Type the prompt ---
                    const promptText = `We are not talking about anything. I want to learn about: ${urlToProcess} Please summarize this page and then read the first paragraph aloud. If there is a conclusion found, read that aloud after reading the first paragraph.`;
                    chatBox.value = promptText;
                    chatBox.dispatchEvent(new Event('input', { bubbles: true }));

                    // --- Step 3: Press Enter ---
                    setTimeout(() => {
                        const enterEvent = new KeyboardEvent('keydown', { key: 'Enter', code: 'Enter', bubbles: true });
                        chatBox.dispatchEvent(enterEvent);
                    }, 100);
                }
            }, 500); // Check for the chat box every 500ms
        }

        window.addEventListener('load', runAIStudioAutomation);

    // =================================================================================
    // PART 1: This code runs on ALL OTHER pages
    // =================================================================================
    } else {
        const BUTTON_ID = 'gemini-aistudio-live-button';

        GM_addStyle(`
            #${BUTTON_ID} {
                position: fixed;
                bottom: 20px;
                left: 20px;
                z-index: 99999;
                background-color: #AF5CF7;
                color: white;
                border: none;
                border-radius: 8px;
                padding: 10px 15px;
                font-family: sans-serif;
                font-size: 14px;
                font-weight: bold;
                cursor: pointer;
                box-shadow: 0 4px 8px rgba(0,0,0,0.2);
                transition: background-color 0.3s, transform 0.2s;
            }
            #${BUTTON_ID}:hover {
                background-color: #8E35D6;
                transform: scale(1.05);
            }
        `);

        const button = document.createElement('button');
        button.id = BUTTON_ID;
        button.textContent = '➤ AI Studio Direct Chat';

        button.addEventListener('click', async () => {
            await GM_setValue(STORAGE_KEY, window.location.href);
            GM_openInTab('https://aistudio.google.com/live', { active: true });
        });

        document.body.appendChild(button);
    }
})();