您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Get answers for Quill.org
当前为
// ==UserScript== // @name Quill.org Cheat // @namespace http://tampermonkey.net/ // @version 0.2 // @description Get answers for Quill.org // @author Caden Finkelstein // @match https://www.quill.org/connect/* // @grant none // ==/UserScript== (function () { "use strict"; // Function to clear existing content function clearContent() { const contentDiv = document.querySelector("main"); const styles = document.createElement("style"); styles.innerText = ` .questions { color: red; background: black; z-index: 99; position: absolute; } ` document.body.appendChild(styles); if (contentDiv) { console.log("Content container found."); } else { console.error("Content container not found."); } } // Function to get URL parameters function getUrlParams(url) { const match = url.match(/\/lesson\/([^?#/]+)/); if (match) { const id = match[1]; return { id }; } return { id: null }; // Return null if ID is not found } // Function to display questions and answers function displayQuestionsAndAnswers(questions, responses) { const contentDiv = document.querySelector("main"); if (contentDiv) { questions.forEach((question, index) => { const questionDiv = document.createElement("div"); questionDiv.className = "question"; questionDiv.textContent = `Question: ${question.key}`; contentDiv.appendChild(questionDiv); const responseDiv = document.createElement("div"); responseDiv.className="answer"; responseDiv.textContent = `Response: ${responses[index]}`; contentDiv.appendChild(responseDiv); const separator = document.createElement("hr"); contentDiv.appendChild(separator); }); } else { console.error("Content container not found."); } } // Function to fetch responses for questions async function fetchResponses(questions) { const responses = []; for (const question of questions) { const questionId = question.key; try { const responseUrl = `https://cms.quill.org/questions/${questionId}/responses`; const response = await fetch(responseUrl); const responseData = await response.json(); // Check if responseData is an array of objects if ( Array.isArray(responseData) && responseData.length > 0 && typeof responseData[0] === "object" ) { // Extract relevant information from each object and concatenate into a string // const responseText = responseData.map((obj) => obj.text).join(", "); // responses.push(responseText); responses.push(responseData[0].text); } else { console.error( `Invalid response data format for question ${questionId}` ); responses.push("Error fetching response"); } } catch (error) { console.error( `Error fetching responses for question ${questionId}:`, error ); responses.push("Error fetching response"); } } return responses; } // Function to start the script async function start() { clearContent(); // Clear existing content const currentUrl = window.location.href; const { id } = getUrlParams(currentUrl); const jsonUrl = `https://www.quill.org/api/v1/lessons/${id}.json`; try { const response = await fetch(jsonUrl); const jsonData = await response.json(); const questions = jsonData.questions; const responses = await fetchResponses(questions); displayQuestionsAndAnswers(questions, responses); } catch (error) { console.error("Error fetching JSON data:", error); } } // Function to initialize the script function initialize() { const quillButton = document.querySelector(".quill-button"); if (quillButton) { quillButton.addEventListener("click", start); } else { console.error("Quill button not found, waiting for it to appear."); waitForQuillButton(); } } // Function to wait for the Quill button function waitForQuillButton() { const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { const quillButton = document.querySelector(".quill-button"); if (quillButton) { observer.disconnect(); quillButton.addEventListener("click", start); console.log("Quill button found and event listener attached."); } }); }); observer.observe(document.body, { childList: true, subtree: true }); } // Call the initialize function initialize(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址