Quizlet Match Hacker

The time will freeze and the answers will be the same color

  1. // ==UserScript==
  2. // @name Quizlet Match Hacker
  3. // @namespace Ray D. Adams
  4. // @version 1.1
  5. // @description The time will freeze and the answers will be the same color
  6. // @author You
  7. // @match https://quizlet.com/*/*
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12. //Ignore the variable gravityScore because it doesn't work any more, but I decided to keep the code here
  13. var gravityScore,
  14. href = window.location.href;
  15. //<br><br><button class="UIButton" id="customWaitButton" type="button"><span class="UIButton-wrapper"><span>Inject</span></span></button>
  16. (function() {
  17. initLoad();
  18. function initLoad() {
  19. if (href.includes("quizlet.com")) {
  20. if (href.includes("/learn")) {
  21. cAlert('<h2>Game Mode: Learn</h2>Thank you for using Ray D. Adams Quizlet Exploit<br>Without you, this exploit wouldnt be possible.<br><h4>Instructions:</h4>Just wait for this script to finish!<br><br><button class="UIButton" id="learnButton" type="button"><span class="UIButton-wrapper"><span>Inject</span></span></button>');
  22. getId("learnButton").addEventListener("click", function() {
  23. document.getElementById("customMessageContainer").remove();
  24. learn();
  25. });
  26.  
  27. } else if (href.includes("/flashcards")) {
  28. cAlert('<h2>Game Mode: Flashcards</h2>Thank you for using Ray D. Adams Quizlet Exploit<br>Without you, this exploit wouldnt be possible.<br><h4>Changelog:</h4>+ Added Match time freeze for regular match and diagrams<br>+ Added Gravity score exploit to get ANY score you want!<br>+ Added custom alert box<br>+ Fixed graphics<br>- Removed useless alert boxes.<h4>Instructions:</h4>Umm why are you here? Go cheat somewhere else...<br><br><button class="UIButton" id="flashcardsButton" type="button"><span class="UIButton-wrapper"><span>Inject</span></span></button>');
  29. getId("flashcardsButton").addEventListener("click", function() {
  30. document.getElementById("customMessageContainer").remove();
  31. });
  32. } else if (href.includes("/write")) {
  33. cAlert('<h2>Game Mode: Write</h2>Thank you for using Ray D. Adams Exploit<br>Without you, this exploit wouldnt be possible.<br><h4>Instructions:</h4>You dont even have to wait,<br> this is my favorite one to watch!<br><br><button class="UIButton" id="writeButton" type="button"><span class="UIButton-wrapper"><span>Inject</span></span></button>');
  34. getId("writeButton").addEventListener("click", function() {
  35. document.getElementById("customMessageContainer").remove();
  36. write();
  37. });
  38. } else if (href.includes("/spell")) {
  39. cAlert('<h2>Game Mode: Spell</h2>Thank you for using Ray D. Adams Quizlet Exploit<br>Without you, this exploit wouldnt be possible.<br><h4>Instructions:</h4>Hold down enter and wait.<br><br><button class="UIButton" id="spellButton" type="button"><span class="UIButton-wrapper"><span>Inject</span></span></button>');
  40. getId("spellButton").addEventListener("click", function() {
  41. document.getElementById("customMessageContainer").remove();
  42. spell();
  43. });
  44. } else if (href.includes("/test")) {
  45. cAlert('<h2>Game Mode: Test</h2>Thank you for using Ray D. Adams Quizlet Exploit<br>Without you, this exploit wouldnt be possible.<br><br><h4>Instructions:</h4>Right click to toggle answers.<br>(Be subtle when using)<br><br><button class="UIButton" id="testButton" type="button"><span class="UIButton-wrapper"><span>Inject</span></span></button>');
  46. getId("testButton").addEventListener("click", function() {
  47. document.getElementById("customMessageContainer").remove();
  48. testMode();
  49. });
  50. } else if (href.includes("/micromatch")) {
  51. cAlert('<h2>Game Mode: Micromatch</h2>Thank you for using Ray D. Adams Quizlet Exploit<br>Without you, this exploit wouldnt be possible.<br><h4>Instructions:</h4>The timer will be paused when at choosen time.<br>The answers will also be highlighted for you.<br>At your leisure, solve the questions.<br><h4>Match Time: </h4><input type="text" id="matchTimeInput" value="0"></input><br><br><button class="UIButton" id="micromatchButton" type="button"><span class="UIButton-wrapper"><span>Inject</span></span></button>');
  52. getId("micromatchButton").addEventListener("click", function() {
  53. document.getElementById("customMessageContainer").remove();
  54. micromatch();
  55. });
  56. } else if (href.includes("/match")) {
  57. cAlert('<h2>Game Mode: Match</h2>Thank you for using Ray D. Adams Quizlet Exploit<br>Without you, this exploit wouldnt be possible.<br><h4>Instructions:</h4>The timer will be paused when at choosen time.<br>The answers will also be highlighted for you.<br>At your leisure, solve the questions.<br><h4>Match Time: </h4><input type="text" id="matchTimeInput" value="0"></input><br><br><button class="UIButton" id="matchButton" type="button"><span class="UIButton-wrapper"><span>Inject</span></span></button>');
  58. getId("matchButton").addEventListener("click", function() {
  59. document.getElementById("customMessageContainer").remove();
  60. match();
  61. });
  62. } else if (href.includes("/gravity")) {
  63. try {
  64. document.getElementsByClassName("UIModal is-white is-open")[0].style.display = "none"
  65. } catch (e) {}
  66. cAlert('<h2>Game Mode: Gravity</h2>Thank you for using Ray D. Adams Quizlet Exploit<br>Without you, this exploit wouldnt be possible.<br> <h4>What score would you like?: <input type="number" id="gravityScoreInput" value="4294967295" onchange="gravityScore = parseInt(this.value);"></input></h4><br><br><button class="UIButton" id="gravityButton" type="button"><span class="UIButton-wrapper"><span>Inject</span></span></button>');
  67. getId("gravityButton").addEventListener("click", function() {
  68. document.getElementById("customMessageContainer").remove();
  69. gravity();
  70. });
  71.  
  72. } else {
  73. }
  74. }
  75.  
  76. function testMode() {
  77. var question = getClass("TermText notranslate lang-en");
  78. for (var i = 0; i < question.length; i++) {
  79. question[i].innerHTML += '<br><small style="font-weight: bold; display: block;" class="answers">' + findAnswerGlobal(question[i].innerHTML) + "</small>";
  80. }
  81. window.oncontextmenu = function(e) {
  82. e.preventDefault();
  83. var answer = getClass("answers");
  84. if (answer[0].style.display == "block") {
  85. for (var i = 0; i < answer.length; i++) {
  86. answer[i].style.display = "none";
  87. }
  88. } else {
  89. for (var i = 0; i < answer.length; i++) {
  90. answer[i].style.display = "block"
  91. }
  92. }
  93. }
  94. }
  95. function gravity() {
  96. if (gravityScore === undefined) {
  97. gravityScore = parseInt(prompt("Enter exact score:"));
  98. }
  99. var t = window.QJP([], [], ["hyek"]).a,
  100. n = t.grader.grade.bind(t.grader);
  101. t._startGame(), t.dataMap = t.dataMap.update("points", function(t) {
  102. return gravityScore;
  103. });
  104. for (var o = 0; o < 99; o++) t._advanceLevel();
  105.  
  106. function s(e) {
  107. t.grader.grade = function(e, t, n) {
  108. return !0;
  109. }, e(), t.grader.grade = n
  110. }
  111. s(function() {
  112. console.log(null);
  113. });
  114. var a = t._promptCopyAnswer.bind(t);
  115. t._promptCopyAnswer = function(e) {
  116. a(e), setTimeout(function() {
  117. s(function() {
  118. t._checkCopiedAnswer({
  119. liveTermId: e,
  120. answer: ""
  121. });
  122. });
  123. }, 0);
  124. };
  125. }
  126.  
  127. function write() {
  128. //This is sad... but works better...
  129. var remaining = parseInt(document.getElementsByClassName("LearnModeProgressBar-value")[0].innerHTML);
  130. for (var i = 0; i < remaining; i++) {
  131. getId("user-answer").value = Math.random();
  132. getId("js-learnModeAnswerButton").click();
  133. getClass("js-learnModeOverrideIncorrect")[0].click();
  134. }
  135. /*
  136. var buttons = document.querySelectorAll("button"),
  137. span = document.querySelectorAll("span");
  138.  
  139. if (getId("user-answer")) {
  140. getId("user-answer").disabled = true;
  141. getId("user-answer").value = findAnswerGlobal(getClass("qDef lang-en TermText")[0].innerHTML);
  142. for (var i = 0; i < buttons.length; i++) {
  143. if (buttons[i].childNodes[0].innerHTML == "Answer") {
  144. buttons[i].click();
  145. }
  146. }
  147. try {
  148. for (var i = 0; i < span.length; i++) {
  149. if (span[i].childNodes[0].childNodes[0].innerHTML == "Override: I was right") {
  150. span[i].click;
  151. }
  152. }
  153. } catch (e) {}
  154. write();
  155. } else {
  156. for (var i = 0; i < buttons.length; i++) {
  157. if (buttons[i].innerHTML == "Press any key to continue") {
  158. buttons[i].click();
  159. } else if (buttons[i].innerHTML == "Start Over") {
  160. return 1;
  161. }
  162. }
  163. setTimeout(write, 0);
  164. }
  165. */
  166. }
  167.  
  168. function spell() {
  169. if (getClass("SpellModeControls-progressValue")[0].innerHTML == "100%") {
  170. return 1;
  171. }
  172. if (getId("js-spellInput") !== null) {
  173. getId("js-spellInput").value = findAnswerGlobal(getClass("qDef lang-en TermText")[0].innerHTML);
  174. setTimeout(spell, 10);
  175. }
  176. }
  177.  
  178. function match() {
  179. button = getClass("UIButton UIButton--hero")[0], button && button.click();
  180. setTimeout(function() {
  181. var matchLoop = setInterval(function() {
  182. waitForMatch();
  183. }, 0);
  184. function waitForMatch() {
  185. if (getClass("MatchModeQuestionScatterTile") || getClass("MatchModeQuestionGridBoard-tile")) {
  186. for (var F = setTimeout(";"), i = 0; i < F; i++) clearTimeout(i);
  187. var tiles = getClass("MatchModeQuestionScatterTile");
  188. var colors = ["#FF0000", "#FF0000", "#FF6600", "#FF6600", "#FFFF00", "#FFFF00", "#00FF00", "#00FF00", "#00FFFF", "#00FFFF", "#0033FF", "#0033FF", "#FF00FF", "#FF00FF", "#CC00FF", "#CC00FF", "#6E0DD0", "#6E0DD0", "#C0C0C0", "#C0C0C0", "#FFFFFF", "#FFFFFF", "#A52A2A", "#A52A2A", "#F6CFFF", "#F6CFFF", "#CFD9FF", "#CFD9FF", "#FBFFA3", "#FBFFA3", "#FFD1A3", "#FFD1A3", "#710000", "#710000"];
  189. for (var i = 0; i < tiles.length; i++) {
  190. tiles[i].style.backgroundColor = colors[i];
  191. for (var j = 0; j < tiles.length; j++) {
  192. if (tiles[j].childNodes[0].innerHTML == findAnswerGlobal(tiles[j].childNodes[0].innerHTML)) {
  193. tiles[j].style.backgroundColor = colors[i];
  194. }
  195. }
  196. }
  197. clearTimeout(matchLoop);
  198. }
  199. }
  200. }, 500);
  201. }
  202. function micromatch() {
  203. button = getClass("UIButton UIButton--hero")[0], button && button.click();
  204. setTimeout(function() {
  205. setTimeout(function() {
  206. for (var F = setTimeout(";"), o = 0; o < F; o++) clearTimeout(o);
  207. }, 0);
  208.  
  209. var tiles = getClass("MatchModeQuestionGridTile-text"); //[0].childNodes[0].innerHTML
  210. for (var i = 0; i < tiles.length; i++) {
  211. if (getClass("MatchModeQuestionGridTile")[i].classList[1] != "is-selected") {
  212. click(getClass("MatchModeQuestionGridBoard-tile")[i].childNodes[0], "pointerdown");
  213. }
  214. for (var j = 0; j < tiles.length; j++) {
  215. if (tiles[j].childNodes[0].innerHTML == findAnswerGlobal(tiles[i].childNodes[0].innerHTML)) {
  216. if (getClass("MatchModeQuestionGridTile")[j].classList[1] != "is-selected") {
  217. click(getClass("MatchModeQuestionGridBoard-tile")[j].childNodes[0], "pointerdown");
  218. j = tiles.length;
  219. }
  220. }
  221. }
  222. }
  223. function click(e, t) {
  224. if (e.fireEvent) e.fireEvent("on" + t);
  225. else {
  226. var n = document.createEvent("Events");
  227. n.initEvent(t, !0, !1), e.dispatchEvent(n);
  228. }
  229. }
  230. }, 500);
  231. }
  232.  
  233. function learn() {
  234. if (getClass("ProgressSegmentedSemicircle-percent")[0].innerHTML = "100%") {
  235. return 1;
  236. }
  237. checkCheckbox();
  238. if (getClass("AssistantMultipleChoiceQuestionPromptView-inner")[0] !== undefined) {
  239. var answer = findAnswerGlobal(getClass("FormattedText notranslate TermText lang-en")[0].innerHTML);
  240. var q1 = getClass("FormattedText notranslate TermText lang-en")[1];
  241. var q2 = getClass("FormattedText notranslate TermText lang-en")[2];
  242. var q3 = getClass("FormattedText notranslate TermText lang-en")[3];
  243. var q4 = getClass("FormattedText notranslate TermText lang-en")[4];
  244. if (answer == q1.innerHTML) {
  245. q1.click();
  246. } else if (answer == q2.innerHTML) {
  247. q2.click();
  248. } else if (answer == q3.innerHTML) {
  249. q3.click();
  250. } else if (answer == q4.innerHTML) {
  251. q4.click();
  252. } else {
  253. console.error("ERROR: Unable to find / click answer");
  254. return 0;
  255. }
  256. getClass("UIButton")[4].click();
  257. setTimeout(learn, 10);
  258. } else {
  259. setTimeout(learn, 100);
  260. }
  261. }
  262.  
  263. function checkCheckbox() {
  264. document.getElementsByClassName("UIButton UIButton--whiteBorder UIButton--fill")[0].click();
  265. if (document.getElementsByClassName("UICheckbox-input")[3].checked && document.getElementsByClassName("UICheckbox-input")[2].checked !== true && document.getElementsByClassName("UICheckbox-input")[4].checked !== true) {
  266. document.getElementsByClassName("UIButton UIButton--inverted")[0].click();
  267. return 1;
  268. }
  269. if (document.getElementsByClassName("UICheckbox-input")[4].checked === true) {
  270. document.getElementsByClassName("UICheckbox-input")[4].click();
  271. }
  272. if (document.getElementsByClassName("UICheckbox-input")[2].checked === true) {
  273. document.getElementsByClassName("UICheckbox-input")[2].click();
  274. }
  275. if (document.getElementsByClassName("UICheckbox-input")[3].checked === false) {
  276. document.getElementsByClassName("UICheckbox-input")[3].click();
  277. }
  278. document.getElementsByClassName("UIButton UIButton--inverted")[0].click();
  279. }
  280. function findAnswerGlobal(question) {
  281. if (Quizlet.assistantModeData !== undefined) { //Quizlet.assistantModeData.terms
  282. return getAnswer(Quizlet.assistantModeData.terms, question);
  283. } else if (Quizlet.learnGameData !== undefined) { //Quizlet.learnGameData.allTerms
  284. return getAnswer(Quizlet.learnGameData.allTerms, question);
  285. } else if (Quizlet.testModeData !== undefined) { //Quizlet.testModeData.terms
  286. return getAnswer(Quizlet.testModeData.terms, question);
  287. } else if (Quizlet.spellModeData !== undefined) { //Quizlet.spellModeData.spellGameData.termsById
  288. return getAnswer(Quizlet.spellModeData.spellGameData.termsById, question);
  289. } else if (Quizlet.matchModeData !== undefined) { //Quizlet.matchModeData.terms
  290. return getAnswer(Quizlet.matchModeData.terms, question);
  291. } else if (Quizlet.gravityModeData !== undefined) { //Quizlet.gravityModeData.terms
  292. return getAnswer(Quizlet.gravityModeData.terms, question);
  293. } else {
  294. return 0;
  295. }
  296.  
  297. function getAnswer(s, t) {
  298. var e = s;
  299. if (t.indexOf("_") != "-1") {
  300. if (t.slice(-1) == "_") { //Underscore at end
  301. for (var i=0; i<e.length; i++) {
  302. if (e[i].definition.indexOf(getClass("qDef lang-en TermText")[0].innerHTML.split("_")[0]) != "-1") {
  303. return e[i].word;
  304. } else if (e[i].word.indexOf(getClass("qDef lang-en TermText")[0].innerHTML.split("_")[0]) != "-1") {
  305. return e[i].definition;
  306. }
  307. }
  308. } else if (t[0] == "_") {
  309. for (var i=0; i<e.length; i++) { //Underscore at start
  310. if (e[i].definition.indexOf(getClass("qDef lang-en TermText")[0].innerHTML.split("_").slice(-1)[0]) != "-1") {
  311. return e[i].word;
  312. } else if (e[i].word.indexOf(getClass("qDef lang-en TermText")[0].innerHTML.split("_").slice(-1)[0]) != "-1") {
  313. return e[i].definition;
  314. }
  315. }
  316. } else {
  317. for (var i=0; i<e.length; i++) { //Underscore in middle
  318. if (e[i].definition.indexOf(getClass("qDef lang-en TermText")[0].innerHTML.split("_").slice(-1)[0]) != "-1" && e[i].definition.indexOf(getClass("qDef lang-en TermText")[0].innerHTML.split("_")[0]) != "-1") {
  319. return e[i].word;
  320. } else if (e[i].word.indexOf(getClass("qDef lang-en TermText")[0].innerHTML.split("_").slice(-1)[0]) != "-1" && e[i].word.indexOf(getClass("qDef lang-en TermText")[0].innerHTML.split("_")[0]) != "-1") {
  321. return e[i].definition;
  322. }
  323. }
  324. }
  325. }
  326. var answers = [];
  327. for (var i=0; i<e.length; i++) {
  328. e[i].definition = e[i].definition.replace("\n", "<br>");
  329. e[i].word = e[i].word.replace("\n", "<br>");
  330. if (t == e[i].word) {
  331. answers.push(e[i].definition);
  332. } else if (t == e[i].definition) {
  333. answers.push(e[i].word);
  334. }
  335. }
  336. return answers[Math.floor(Math.random() * answers.length)];
  337. }
  338. }
  339. }
  340. function cAlert(message) {
  341. var html = '<div class="UIModal is-white is-open" id="customMessageContainer" role="document" tabindex="-1"> <div class="UIModal-box"> <div class="UIModalHeader"> <div class="UIModalHeader-wrapper"> <span class="UIModalHeader-close"> <div class="UIModalHeader-closeIconButton"> <span class="UIIconButton"> <button class="UIButton UIButton--inverted" type="button" id="customCloseButton" onclick="document.getElementById(&quot;customMessageContainer&quot;).remove();"> <span class="UIButton-wrapper"> <svg class="UIIcon UIIcon--x-thin"> <noscript></noscript> <use xlink:href="#x-thin"></use> <noscript></noscript> </svg> </span> </button> </span> </div> </span> <div class="UIModalHeader-childrenWrapper"> <h3 class="UIHeading UIHeading--three"><span id="customTitle">Ray D. Adams Quizlet Exploit</span></h3> </div> </div> </div> <div class="UIModalBody"> <div class="UIDiv SetPageEmbedModal-content"> <div> <p class="UIParagraph"><span id="customMessage">'+message+'</span></p></div></div></div></div></div>';
  342. var j = document.createElement('div');
  343. j.innerHTML = html;
  344. document.body.appendChild(j);
  345. }
  346. })();
  347.  
  348. function getId(id) {
  349. return document.getElementById(id);
  350. }
  351.  
  352. function getClass(id) {
  353. return document.getElementsByClassName(id);
  354. }
  355.  
  356. //var learnInsertJs = "function figure(match) {termsWord = window.Quizlet.assistantModeData.terms.filter(function z(x) {return x.word == match}); termsDefinition = window.Quizlet.assistantModeData.terms.filter(function z(x) {return x.definition === match}); if (termsWord.length > 0) {return termsWord[0].definition;}; if (termsDefinition.length > 0) {return termsDefinition[0].word;}}; function solve() {input = document.querySelector('#AssistantModeTarget > div > div > div > div.ModeLayout-content > div > span:nth-child(2) > div > div > div.AssistantScrollableViewLayout-content > div > div.AssistantMultipleChoiceQuestionPromptView-promptArea > div > div > div > span').innerHTML; output = figure(input); outs = document.querySelectorAll('.AssistantMultipleChoiceQuestionPromptView-termOptionInner > div > span'); for (var i = 0; i < outs.length; i++) {if (outs[i].innerText === output) {outs[i].click();}}; document.querySelector('#AssistantModeTarget > div > div > div > div.ModeLayout-content > div > span:nth-child(3) > div > div.AssistantFixedActionLayout-action > div > button').click(); if (document.querySelector('#AssistantModeTarget > div > div > div > div.ModeLayout-controls > div > div > div > div.ModeControls-main > div.ModeControls-progress > div > div > div > svg > text.ProgressSegmentedSemicircle-text.ProgressSegmentedSemicircle-progressText > tspan').innerHTML.slice(0, -1) !== '100') {setTimeout(solve, 10);};}; solve();"
  357.  
  358. //backupOptionsSet = "/*document.querySelector('#AssistantModeTarget > div > div > div > div.ModeLayout-controls > div > div > div > div.ModeControls-main > div.ModeControls-actions > div > button > span > span').click(); if (document.querySelector('body > div:nth-child(4) > div.UIModal.is-white.is-open > div > div.UIModalBody > div > div:nth-child(3) > div > div > div > div > div > div:nth-child(3) > label > input').checked) {document.querySelector('body > div:nth-child(4) > div.UIModal.is-white.is-open > div > div.UIModalBody > div > div:nth-child(3) > div > div > div > div > div > div:nth-child(3) > label > input').click();}; if (document.querySelector('body > div:nth-child(4) > div.UIModal.is-white.is-open > div > div.UIModalBody > div > div:nth-child(3) > div > div > div > div > div > div:nth-child(1) > label > input').checked) {document.querySelector('body > div:nth-child(4) > div.UIModal.is-white.is-open > div > div.UIModalBody > div > div:nth-child(3) > div > div > div > div > div > div:nth-child(1) > label > input').click();}; document.querySelector('body > div:nth-child(4) > div.UIModal.is-white.is-open > div > div.UIModalHeader > div > span > div > span > button > span').click();*/"
  359. /*
  360. function solveLearn() {
  361. script = document.createElement('script');
  362. script.textContent = learnInsertJs;
  363. (document.head||document.documentElement).appendChild(script);
  364. script.remove();
  365. }
  366.  
  367. chrome.runtime.onMessage.addListener(
  368. function(request, sender, sendResponse) {
  369. if (request.run == "write") {
  370. iters = parseInt($(".LearnModeProgressBar-value").html())
  371. for (var i = 0; i < iters; i++) {
  372. $("#user-answer")[0].value = "*";
  373. $("#js-learnModeAnswerButton")[0].click();
  374. document.evaluate('//*[@id="js-learnModeInner"]/div[1]/div/div[2]/div/div[2]/span/a', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();
  375. }
  376. sendResponse({out: 0});
  377. }
  378. else if (request.run === "learn") {
  379. solveLearn();
  380. sendResponse({out: 0});
  381. }
  382. else {
  383. sendResponse({out: 1});
  384. }
  385. });
  386. */

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址