您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Improve ChatGPT experience
当前为
- // ==UserScript==
- // @name ChatGPT Helper
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description Improve ChatGPT experience
- // @author Charles
- // @run-at document-end
- // @match https://chat.openai.com/*
- // @match https://chat.openai.com/c/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=openai.com
- // @grant GM_addStyle
- // ==/UserScript==
- var buttonList = [
- {Name: "翻譯成繁體中文", Message: "翻譯成繁體中文"},
- {Name: "繼續", Message: "繼續"}
- ];
- (function () {
- "use strict";
- // Your code here...
- createHelperDiv();
- })();
- // 傳送指定訊息
- function sendMessage(message) {
- // 取得用來確認目前是否可傳送的按鈕
- let checkButton = document.querySelector(
- '.relative[role="presentation"] > div > div > button > div'
- );
- if (checkButton !== null && checkButton.innerText !== "Regenerate response") return;
- // copy text
- let inputArea = document.querySelector("#prompt-textarea");
- let sendButton = document.querySelector("#prompt-textarea + button");
- let origin = inputArea.value;
- inputArea.value = message;
- let inputEventSimulator = new InputEvent("input", {bubbles: true});
- inputArea.dispatchEvent(inputEventSimulator);
- inputArea.value = origin;
- setTimeout(() => {
- sendButton.click();
- }, 300);
- }
- // 創建輔助工具的UI
- function createHelperDiv() {
- let div = document.createElement("div");
- div.id = "gpt_helper";
- div.innerHTML = `
- <div class="gpt_helper_buttons">
- </div>
- `;
- let insertDiv = document.querySelector("#__next");
- insertDiv.appendChild(div);
- let buttonBar = div.querySelector(".gpt_helper_buttons");
- for (let i = 0; i < buttonList.length; i++) {
- let button = document.createElement("button");
- button.className = "gpt_helper_button";
- button.innerText = buttonList[i].Name;
- button.addEventListener("click", () => sendMessage(buttonList[i].Message));
- buttonBar.appendChild(button);
- }
- addStyle();
- }
- // 加入CSS
- function addStyle() {
- GM_addStyle(
- `#gpt_helper {
- position: absolute;
- width: 100%;
- height: 100%;
- left: 0;
- top: 0;
- display: flex;
- justify-content: end;
- align-items: center;
- pointer-events: none;
- }
- #gpt_helper > .gpt_helper_buttons {
- width: 150px;
- height: 300px;
- pointer-events: all;
- }
- #gpt_helper > .gpt_helper_buttons .gpt_helper_button {
- appearance: none;
- background-color: #2ea44f;
- border: 1px solid rgba(27, 31, 35, 0.15);
- border-radius: 6px;
- box-shadow: rgba(27, 31, 35, 0.1) 0 1px 0;
- box-sizing: border-box;
- color: #fff;
- cursor: pointer;
- display: inline-block;
- font-family: -apple-system, system-ui, "Segoe UI", Helvetica, Arial,
- sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
- font-size: 14px;
- font-weight: 600;
- line-height: 20px;
- padding: 6px 16px;
- position: relative;
- text-align: center;
- text-decoration: none;
- user-select: none;
- -webkit-user-select: none;
- touch-action: manipulation;
- vertical-align: middle;
- white-space: nowrap;
- width: 100%;
- margin: 5px;
- }
- #gpt_helper
- > .gpt_helper_buttons
- .gpt_helper_button:focus:not(:focus-visible):not(.focus-visible) {
- box-shadow: none;
- outline: none;
- }
- #gpt_helper > .gpt_helper_buttons .gpt_helper_button:hover {
- background-color: #2c974b;
- }
- #gpt_helper > .gpt_helper_buttons .gpt_helper_button:focus {
- box-shadow: rgba(46, 164, 79, 0.4) 0 0 0 3px;
- outline: none;
- }
- #gpt_helper > .gpt_helper_buttons .gpt_helper_button:disabled {
- background-color: #94d3a2;
- border-color: rgba(27, 31, 35, 0.1);
- color: rgba(255, 255, 255, 0.8);
- cursor: default;
- }
- #gpt_helper > .gpt_helper_buttons .gpt_helper_button:active {
- background-color: #298e46;
- box-shadow: rgba(20, 70, 32, 0.2) 0 1px 0 inset;
- }
- `
- );
- }