您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Найдет ответ для вашего вопроса
当前为
// ==UserScript== // @name Lolzteam GPT // @version 0.1.1 // @description Найдет ответ для вашего вопроса // @author vuchaev2015 // @match https://zelenka.guru/* // @icon https://www.google.com/s2/favicons?sz=64&domain=zelenka.guru // @grant none // @namespace https://greasyfork.org/users/997663 // ==/UserScript== var domain = 'zelenka.guru' let accountMenu = document.getElementById("AccountMenu"); let linksList = accountMenu.querySelector(".blockLinksList"); let buttonId = `ChatGPT`; linksList.insertAdjacentHTML('beforeend', `<li><a href="javascript:void(0)" id="${buttonId}">Спросить у ChatGPT</a></li>`); document.getElementById(buttonId).addEventListener("click", async function (event) { event.preventDefault(); let question = prompt('Введите ваш вопрос: ') if (question !== null) { console.log(await new ThabAi().get_response(question)); } }); class ThabAi { constructor() { this.session = { headers: { "content-type": "application/json", }, }; } async get_response(prompt, postElement) { let response = await fetch("https://chatbot.theb.ai/api/chat-process", { method: "POST", headers: this.session.headers, body: JSON.stringify({ prompt: prompt, options: {} }), }); console.log(`[get_response]: Запрос с подсказкой "${prompt}" отправлен`); XenForo.alert(`[get_response]: Запрос с подсказкой "${prompt}" отправлен`, `Lolzteam GPT`) if (!response.ok) throw new Error(`[get_response]: network response for prompt "${prompt}" was not ok`); let response_lines = await response.text(); let response_data = ""; for (let line of response_lines.split("\n")) { if (line) { let data = JSON.parse(line); if ("utterances" in data) { response_data += data["utterances"] .map((utterance) => utterance["text"]) .join(" "); } else if ("delta" in data) { response_data += data["delta"]; } } } console.log(`[get_response] Запрос для подсказки ${prompt} получен:`, response_data); return XenForo.alert(`[get_response] Запрос для подсказки ${prompt} получен: ${response_data}`, `Lolzteam GPT`) } } function createButtonElement(buttonId, messageText) { const ChatGPTButton = document.createElement("li"); const button = document.createElement("a"); button.setAttribute("href", "javascript:void(0)"); button.setAttribute("id", buttonId); button.textContent = "Отправить запрос ChatGPT"; button.addEventListener("click", async function (event) { event.preventDefault(); console.log(await new ThabAi().get_response(messageText)); }); ChatGPTButton.appendChild(button); return ChatGPTButton; } function generateRandomString(length) { let result = ''; let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; let charactersLength = characters.length; for (let i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; } function checkThreadItems() { const linksLists = [...document.querySelectorAll(".secondaryContent.blockLinksList")].filter( (list) => !list.querySelector('li[id^="ChatGPTButton-"]') ); linksLists.forEach((linksList) => { const links = linksList.querySelectorAll("a"); links.forEach((link) => { if (link.href.startsWith(`https://${domain}/posts/`)) { let postId; let newLink; let postElement; if (link.href.includes("posts/comments/")) { postId = link.href.split("posts/comments/")[1].split("/")[0]; newLink = `post-comment-${postId}`; } else { postId = link.href.split("posts/")[1].split("/")[0]; newLink = `post-${postId}`; } postElement = document.querySelector( `#${newLink}.${link.href.includes("posts/comments/") ? "comment" : "message"}` ); if (postElement && !postElement.hasAttribute("ChatGPTButton")) { postElement.setAttribute("ChatGPTButton", "added"); const menus = [...document.querySelectorAll("div.Menu")].filter((menu) => [...menu.querySelectorAll("a")].some((link) => link.href.includes(`${postId}`)) ); const author = postElement.querySelector(".username").textContent; { const buttonId = `ChatGPTButton-${generateRandomString(10)}`; console.log(postElement) let messageText; try { messageText = postElement.querySelector("div.messageInfo > div.messageContent > article > blockquote").textContent.trim().replace(/\s{2,}/g, ' '); } catch (error) { messageText = postElement.querySelector("div.commentInfo > div.commentContent").textContent.replace(/\s{2,}/g, ' '); } const usernameLink = postElement.querySelector("a"); const currentUrl = usernameLink.getAttribute("href"); menus[menus.length - 1] .querySelector(".secondaryContent") .appendChild(createButtonElement(buttonId, messageText)); } } } }); }); } setInterval(checkThreadItems);