Google AI Studio 自动保存提示

自动点击 Google AI Studio 中的 'Save Prompt' 按钮(当按钮可用时),并在按钮变灰后等待下次变为可用再点击。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         Google AI Studio 自动保存提示
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  自动点击 Google AI Studio 中的 'Save Prompt' 按钮(当按钮可用时),并在按钮变灰后等待下次变为可用再点击。
// @author       Gemini 2.5 pro
// @match        *://aistudio.google.com/prompts/*
// @icon         https://www.gstatic.com/aistudio/ai_studio_favicon_64x64.png
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // --- 配置 ---
    const checkInterval = 2000; // 每隔多少毫秒检查一次按钮状态 (单位:毫秒)
    const initialDelay = 3000;  // 脚本加载后等待多少毫秒开始运行 (确保页面元素加载)
    const saveButtonSelector = 'button[aria-label="Save prompt"][data-test-manual-save="outside"]'; // 保存按钮的选择器

    // --- 状态变量 ---
    let canClickSave = true; // 标记是否可以点击保存按钮

    // --- 主要逻辑函数 ---
    function checkAndClickSaveButton() {
        // 查找保存按钮
        const saveButton = document.querySelector(saveButtonSelector);

        if (saveButton) {
            // 检查按钮是否启用 (没有 disabled 属性)
            const isEnabled = !saveButton.disabled;

            if (isEnabled && canClickSave) {
                // 如果按钮可用并且我们标记为可以点击
                console.log('[AI Studio AutoSave] 检测到保存按钮可用,正在点击...');
                saveButton.click();
                canClickSave = false; // 点击后,标记为不可点击,直到按钮再次变灰
                console.log('[AI Studio AutoSave] 保存按钮已点击,等待按钮变灰...');
            } else if (!isEnabled) {
                // 如果按钮被禁用(变灰)
                if (!canClickSave) {
                     // 只有当之前是不可点击状态时才重置和打印日志,避免重复打印
                    console.log('[AI Studio AutoSave] 检测到保存按钮已禁用,准备下次点击...');
                    canClickSave = true; // 重置标记,允许在下次按钮启用时点击
                }
            } else {
                 // 按钮可用,但我们已经点击过一次,正在等待它变灰
                 // console.log('[AI Studio AutoSave] 保存按钮可用,但已点击过,等待按钮状态变化...');
            }
        } else {
            // console.log('[AI Studio AutoSave] 未找到保存按钮,继续检查...');
            // 如果找不到按钮,也允许下次尝试点击(可能页面结构变化或未完全加载)
            canClickSave = true;
        }
    }

    // --- 启动脚本 ---
    console.log('[AI Studio AutoSave] 脚本已加载,将在', initialDelay / 1000, '秒后开始运行...');

    // 延迟启动,给页面加载时间
    setTimeout(() => {
        console.log('[AI Studio AutoSave] 开始运行自动保存检查...');
        // 设置定时器,周期性检查按钮状态
        setInterval(checkAndClickSaveButton, checkInterval);
    }, initialDelay);

})();