/*!
// ==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
// @downloadURL https://update.greasyfork.icu/scripts/496619/ChatGPT%20Quick%20Prompts.user.js
// @updateURL https://update.greasyfork.icu/scripts/496619/ChatGPT%20Quick%20Prompts.meta.js
// ==/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 = `
快
捷
指
令
${Object.keys(SHORTCUTS)
.map(group => {
return `
${group}
${SHORTCUTS[group]
.map(
([label, value]) => `
-
${label}
`,
)
.join('')}
`
})
.join('')}
`
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%)'
})
})()