Google AI Studio 自动保存提示

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

// ==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);

})();