在“发表帖子”页下方添加一个“gpt重写”的按钮,点击按钮,使用openai/chatgpt的接口重写输入框内的文本,防止魔典检测。自测每3千字约需要50秒。
// ==UserScript==
// @name 调用gpt重写
// @description 在“发表帖子”页下方添加一个“gpt重写”的按钮,点击按钮,使用openai/chatgpt的接口重写输入框内的文本,防止魔典检测。自测每3千字约需要50秒。
// @author You
// @namespace http://tampermonkey.net/
// @version 2024.7.27.2
// @license MIT
// @match https://jietiandi.net/forum.php?mod=post&action=newthread*
// @noframes
// ==/UserScript==
(function () {
"use strict";
// OpenAI API 的密钥
const API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // 请替换为你的 OpenAI API 密钥
// 我使用的免费的国内代理
const base_url = "https://api.chatanywhere.tech/v1/chat/completions";
// 向 OpenAI API 发送请求
const fetchGpt = async (inputText) => {
const response = await fetch(
base_url, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${API_KEY}`,
},
body: JSON.stringify({
model: "gpt-4o-mini",
messages: [{
role: "system",
content: "改写下面这几段小说,改变句子结构和语序,替换同义词",
},
{
role: "user",
content: inputText,
},
],
}), // max_tokens: isTextarea ? 3000 : 300,
}
);
if (!response.ok) {
throw new Error(`Error: ${response.statusText}`);
}
const data = await response.json();
return data.choices[0]?.message?.content; // ?.trim()?.split("\n") || []
};
const main = async () => {
// 获取文本区域中的文本
const textarea = document.querySelector("#e_textarea");
const inputText = textarea.value;
textarea.value = "请等待gpt请求返回结果,自测每3千字约需要50秒";
// 获取改写后的文本
let result;
try {
result = await fetchGpt(inputText);
} catch (error) {
console.error("Error fetching data from OpenAI:", error);
return;
}
// 将返回的结果填入文本区域
textarea.value = result;
// debugger;
}
setTimeout(() => {
let _html = `<button type="button" id="rewrite" class="pn pnc" value="true" name="topicsubmit">
<span>gpt重写</span>
</button>`;
var pnpost = document.querySelector("#postbox > div.mtm.mbm.pnpost");
pnpost.insertAdjacentHTML('beforeend', _html);
document.querySelector("#rewrite").addEventListener("click", main);
}, 3000);
// if (($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") {showError('抱歉,您尚未输入标题或内容');return false;
// $('postform').onsubmit = function() { // type="submit"
})();