您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Aids to solve google forms
当前为
// ==UserScript== // @name Google Forms Helper // @namespace https://github.com // @version 2.2 // @description Aids to solve google forms // @author erucix // @match https://docs.google.com/forms/* // @icon https://www.google.com/s2/favicons?sz=64&domain=google.com // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; const formBlockHolderName = ".Qr7Oae"; const questionHolderParentName = ".z12JJ"; const questionHolderName = ".M7eMe"; const optionsHolderName = ".nWQGrd.zwllIb"; const searchEngine = "https://google.com/search?q="; const formBlockContainer = document.querySelectorAll(formBlockHolderName); formBlockContainer.forEach((element, index) => { attatchMenu(element); attatchAiBox(element); findAnswer(element); }); function findAnswer(element) { fetch("https://generativelanguage.googleapis.com/v1beta3/models/text-bison-001:generateText?key=AIzaSyCWvB0JMPgfzpdK9e3UtfDvSoTzrtDZ7ns", { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ prompt: { text: "Which of the following option is correct for this question?\n" + getQuestionWithOptions(element), }, }), }) .then(response => response.json()) .then(data => { element.querySelector("#chatGPTAnswer").innerText = data?.candidates[0].output; autoClickAnswers(element, data?.candidates[0].output); }) .catch(error => { element.querySelector("#chatGPTAnswer").innerText = "😢 Failed to fetch answer. "; }); } function autoClickAnswers(destinationElement, answer) { const optionsHolder = destinationElement.querySelectorAll(optionsHolderName); optionsHolder?.forEach((element, index) => { if (answer.includes(element.textContent)) { element.querySelector(".Od2TWd.hYsg7c").click(); } }) } function attatchMenu(destinationElement) { const optionHolder = destinationElement.querySelectorAll(optionsHolderName); const searchButton = document.createElement("a"); searchButton.setAttribute("target", "_blank"); searchButton.classList.add("partofai"); const copyButton = document.createElement("a"); copyButton.setAttribute("target", "_blank"); copyButton.classList.add("partofai"); searchButton.textContent = "SEARCH"; copyButton.textContent = "COPY"; const searchButtonStyle = { color: "red", fontWeight: "bold", textDecoration: "none", padding: "0px", }; const copyButtonStyle = { color: "blue", fontWeight: "bold", textDecoration: "none", padding: "10px", cursor: "pointer" }; Object.assign(searchButton.style, searchButtonStyle); Object.assign(copyButton.style, copyButtonStyle); searchButton.href = searchEngine + encodeURIComponent(getQuestionWithOptions(destinationElement)); copyButton.addEventListener("click", () => { navigator.clipboard.writeText(getQuestionWithOptions(destinationElement)); copyButton.textContent = "COPIED"; setTimeout(() => { copyButton.textContent = "COPY"; }, 1000); }); destinationElement.appendChild(searchButton); destinationElement.appendChild(copyButton); } function attatchAiBox(destinationElement) { const chatAnswerDiv = document.createElement('div'); chatAnswerDiv.classList.add("partofai"); const boldTextParagraph = document.createElement('p'); boldTextParagraph.innerText = "👻 AI Answer:"; const chatAnswerDivStyle = { backgroundColor: "rgba(139, 97, 238, 0.683)", padding: "5px 10px", borderRadius: "5px", marginBottom: "20px" }; const boldTextParagraphStyle = { fontWeight: "bolder", padding: 0, margin: 0, color: "rgb(255, 255, 255)" }; const hrElement = document.createElement('hr'); hrElement.style.border = '1px solid white'; const textContentParagraph = document.createElement('p'); textContentParagraph.innerText = 'Waiting for AI to respond... 🤓'; textContentParagraph.setAttribute("id", "chatGPTAnswer"); const textContentParagraphStyle = { padding: 0, margin: 0, color: "black", }; const br = document.createElement("br"); const cr = document.createElement("br"); Object.assign(chatAnswerDiv.style, chatAnswerDivStyle); Object.assign(boldTextParagraph.style, boldTextParagraphStyle); Object.assign(textContentParagraph.style, textContentParagraph); chatAnswerDiv.appendChild(boldTextParagraph); chatAnswerDiv.appendChild(hrElement); chatAnswerDiv.appendChild(textContentParagraph); chatAnswerDiv.prepend(br); chatAnswerDiv.appendChild(cr); destinationElement.appendChild(chatAnswerDiv); } function getQuestionWithOptions(destinationElement) { const questionContent = destinationElement.querySelector(questionHolderName)?.textContent; const optionHolders = destinationElement.querySelectorAll(optionsHolderName); let optionContent = ""; optionHolders?.forEach((element, index) => { optionContent += element.textContent + "\n "; }); let finalContent = questionContent + '\n' + (optionContent || ""); return finalContent; } function b(element, color) { element.style.border = "2px solid " + color; } function doc_keyUp(e) { console.log(e.code); if (e.ctrlKey && e.code === 'AltLeft') { aiElements.forEach(e=>{ e.classList.toggle('active'); if(e.style.display == "none"){ e.style.display = ''; } }); } } let style = document.createElement("style"); let aiElements = document.querySelectorAll(".partofai"); let button = document.createElement("button"); button.innerText = "."; Object.assign(button.style, { "position":"absolute", "top": "0", "right": "0", "border-radius": "100%", "height":"20px", "width": "20px" }); button.addEventListener("click", function(){ aiElements.forEach(e=>{ e.classList.toggle('active'); if(e.style.display == "none"){ e.style.display = ''; } }); }); document.body.appendChild(button); style.innerHTML = ` .partofai.active { display: none; } `; document.body.appendChild(style); document.addEventListener('keyup', doc_keyUp, false); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址