ChatGPT Quick Prompts

ChatGPT 智能 Prompts 可以为你带来更好的使用体验助你训练好用的ChatGPT

/*!
// ==UserScript==
// @name          ChatGPT Quick Prompts 
// @namespace     https://github.com/Liugq5713/quick-prompt
// @version       0.0.8
// @description   ChatGPT 智能 Prompts 可以为你带来更好的使用体验助你训练好用的ChatGPT
// @author        lynden
// @match         *://chatgpt.com/*
// @grant         none
// ==/UserScript==
*/
;(function () {
  'use strict'
  if (document.querySelector('#chatgptHelper')) {
    return
  }
  var SHORTCUTS = {
    english: [
      ['sentence', '请将下面句子改写, 并且输出他的中文翻译'],
      ['word', '请给出下面这个单词的含义, 造句,反义词等等,帮助人理解'],
      ['grammar', '分析这个句子的词法结构,并给出中文解释,试图教会我'],
      ['chinese', '请给出这个句子的英文翻译,并且给出句子的解释'],
    ],
    // [ '',``]
    code: [
      ['fe engineer', '你是一个前端高级工程师,请回答下面的问题'],
      ['format-label-value', '请将下面结构体变成 {label,value}的数组, 请给出完整的产物'],
    ],
  }
  var rootEle = document.createElement('div')
  rootEle.id = 'chatgptHelper'
  const formattedHTML = `
  <div id="chatgptHelperOpen" class="fixed top-1/2 right-1 z-50 p-3 rounded-md transition-colors duration-200 text-white cursor-pointer border border-white/20 bg-gray-900 hover:bg-gray-700 -translate-y-1/2">
    快<br>捷<br>指<br>令
  </div>
  <div id="chatgptHelperMain" class="fixed top-0 right-0 bottom-0 z-50 flex flex-col px-3 w-96 text-gray-100 bg-gray-900" style="transform: translateX(0); transition: transform 0.2s;">
    <div class="py-4 pl-2">
    <h2>
      <a href="https://github.com/Liugq5713/quick-prompt" target="_blank">Quick Prompt</a>
    </h2>

    </div>

<ul>
${Object.keys(SHORTCUTS)
  .map(group => {
    return `<div class="border-b border-white/20">
      <h4 class="ml-2 mt-3 text-lg" style="color: #ffffff33">${group}</h4>
      <ul class="flex flex-1 overflow-y-auto py-4  text-sm" style="flex-wrap: wrap">
      ${SHORTCUTS[group]
        .map(
          ([label, value]) => `
        <li class="mr-2 mb-2 py-1 px-3 rounded-md hover:bg-gray-700 cursor-pointer" data-value="${encodeURI(value)}">
          ${label}
        </li>
      `,
        )
        .join('')}
    </ul>
    </div>`
  })
  .join('')}
</ul>
   <div class="flex items-center py-4 absolute bottom-0">
      <div id="chatgptHelperClose" class="py-2 px-3 rounded-md cursor-pointer hover:bg-gray-700">
        关闭
      </div>
      <div class="flex-1 pr-3 text-right text-sm items-center">
        <label class="flex items-center cursor-pointer" style="display: inline-block;">
          <input type="checkbox" checked="true" id="isPain" style="border-radius: 20px; margin-bottom: 3px;">
          <span>是否固定面板</span>
        </label>
        <label class="flex items-center ml-2 cursor-pointer" style="display: inline-block;">
          <input type="checkbox" id="isAutoSend" style="border-radius: 20px; margin-bottom: 3px;">
          <span>是否自动发送</span>
        </label>
      </div>
    </div>
  </div>
`

  console.log('formattedHTML', formattedHTML)

  rootEle.innerHTML = formattedHTML

  // 创建一个新的 KeyboardEvent 事件对象
  const keyEvent = new KeyboardEvent('keydown', {
    key: 'Enter',
    bubbles: true,
    cancelable: true,
    keyCode: 13,
  })
  rootEle.querySelector('ul').addEventListener('click', function (event) {
    var target = event.target
    const isAutoSend = document.getElementById('isAutoSend').checked
    const isPain = document.getElementById('isPain').checked
    if (target.nodeName === 'LI') {
      var value = target.getAttribute('data-value')
      if (value) {
        var textareaEle_1 = document.querySelector('textarea')
        textareaEle_1.value = decodeURI(value)
        console.log('---', textareaEle_1.value)
        textareaEle_1.dispatchEvent(new Event('input', { bubbles: true }))
        setTimeout(function () {
          if (isAutoSend) {
            textareaEle_1.dispatchEvent(keyEvent)
          } else {
            textareaEle_1.focus()
          }
        }, 1e3)
      }
      if (!isPain) {
        chatgptHelperMain.style.transform = 'translateX(100%)'
      }
    }
  })
  document.body.appendChild(rootEle)
  var chatgptHelperMain = document.querySelector('#chatgptHelperMain')
  document.querySelector('#chatgptHelperOpen').addEventListener('click', function () {
    chatgptHelperMain.style.transform = 'translateX(0)'
  })
  document.querySelector('#chatgptHelperClose').addEventListener('click', function () {
    chatgptHelperMain.style.transform = 'translateX(100%)'
  })
})()

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址