Save & Submit keyboard shortcut for ChatGPT

Press Alt + Enter to auto-click the Save & Submit button for Superpower ChatGPT and OpenAI

目前為 2024-02-20 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Save & Submit keyboard shortcut for ChatGPT
// @description  Press Alt + Enter to auto-click the Save & Submit button for Superpower ChatGPT and OpenAI
// @author       NWP
// @namespace    https://greatest.deepsurf.us/users/877912
// @version      0.1
// @license      MIT
// @match        https://chat.openai.com/*
// @grant        none
// ==/UserScript==

document.addEventListener('keydown', function(event) {
    if (event.altKey && event.keyCode == 13) {
        const save_submit_openAIButton = document.querySelector("div > button.btn.relative.btn-primary.mr-2");
        const save_submit_superpowerChatGPTButton = document.querySelector("div > button.btn.flex.justify-center.gap-2.btn-primary.mr-2");
        (save_submit_openAIButton || save_submit_superpowerChatGPTButton).click();
    }
});


/*

TODO: to make it easy to find for which operating mode the save_and_submit_button has become obsolete
detect if Superpower ChatGPT is enabled for Chrome and Firefox.

This only works for Chrome within a userscript:

const extensionId = 'amhmeenmapldpjdedekalnfifgnpfnkc';
const resourcePath = 'icons/info.png'; // This works
//const resourcePath = 'manifest.json'; // This doesn't work due to restrictions
const imgUrl = `chrome-extension://${extensionId}/${resourcePath}`;

fetch(imgUrl)
    .then(response => {
        if(response.ok) console.log('Extension installed:', true);
        else throw new Error('Resource not accessible');
    })
    .catch(error => console.log('Extension installed:', false));

Since Firefox doesn't have a similar method that I know of, it's better to
check for an element that has been injected by Superpower ChatGPT (Auto Sync ON/ OFF)
for both Chrome and Firefox.

*/