您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Queue messages when ChatGPT is still composing responses
当前为
// ==UserScript== // @name ChatGPT Message Queue // @match https://chat.openai.com/* // @match https://chatgpt.com/* // @description Queue messages when ChatGPT is still composing responses // @version 0.0.1.20250318123319 // @namespace https://gf.zukizuki.org/users/1435046 // ==/UserScript== (function() { 'use strict'; let queueCount = 0; let queueObserver; let queueDisplay; function createQueueDisplay() { // Create queue display with clear button queueDisplay = document.createElement('div'); queueDisplay.style.position = 'fixed'; queueDisplay.style.bottom = '100px'; queueDisplay.style.right = '20px'; queueDisplay.style.background = 'rgba(0,0,0,0.7)'; queueDisplay.style.color = 'white'; queueDisplay.style.padding = '5px 10px'; queueDisplay.style.borderRadius = '4px'; queueDisplay.style.display = 'flex'; queueDisplay.style.gap = '8px'; queueDisplay.style.alignItems = 'center'; const text = document.createElement('span'); text.textContent = `Queue: ${queueCount}`; const clearBtn = document.createElement('button'); clearBtn.textContent = '×'; clearBtn.style.cursor = 'pointer'; clearBtn.style.background = 'transparent'; clearBtn.style.border = 'none'; clearBtn.style.color = 'inherit'; clearBtn.style.fontSize = '18px'; clearBtn.style.padding = '0 4px'; clearBtn.onclick = () => { queueCount = 0; text.textContent = `Queue: ${queueCount}`; }; queueDisplay.appendChild(text); queueDisplay.appendChild(clearBtn); document.body.appendChild(queueDisplay); } // Rest of the original script remains unchanged function handleSendButton() { const sendButton = document.querySelector('[data-testid="send-button"]'); if (sendButton && queueCount > 0) { sendButton.click(); queueCount--; queueDisplay.querySelector('span').textContent = `Queue: ${queueCount}`; } } const textareaObserver = new MutationObserver(() => { const textarea = document.getElementById('prompt-textarea'); if (textarea && !textarea.dataset.queueEnabled) { textarea.dataset.queueEnabled = 'true'; textarea.addEventListener('keyup', (e) => { if (e.key === 'Enter' && !e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey) { if (document.querySelector('[data-testid="stop-button"]')) { e.preventDefault(); queueCount++; queueDisplay.querySelector('span').textContent = `Queue: ${queueCount}`; if (!queueObserver) { queueObserver = new MutationObserver(handleSendButton); queueObserver.observe(document.body, { childList: true, subtree: true }); } } } }); } }); // Initialize createQueueDisplay(); textareaObserver.observe(document.body, { childList: true, subtree: true }); })();