Quizlet micromatch bot

Win micromatch in < 1 second!

目前为 2017-03-22 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name Quizlet micromatch bot
  3. // @namespace Danielv123
  4. // @version 2.0
  5. // @description Win micromatch in < 1 second!
  6. // @author You
  7. // @match https://quizlet.com/*/micro*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. // this script died when microscatter turned into micromatch, but it still works albeit badly.
  12. // edit: Version 2.0 fixed everything and its now able to get sub 0.5 second times!
  13. function eventFire(el, etype){
  14. if (el.fireEvent) {
  15. el.fireEvent('on' + etype);
  16. } else {
  17. var evObj = document.createEvent('Events');
  18. evObj.initEvent(etype, true, false);
  19. el.dispatchEvent(evObj);
  20. }
  21. }
  22.  
  23. // Magic for loop instead
  24. // checks if the combination is right before clicking :)
  25. for(i=0;i<document.getElementById("cells").childNodes.length;i++) {
  26. // click it if its unclicked
  27. if(document.getElementById("cells").childNodes[i].className == "cell long touching correct" || document.getElementById("cells").childNodes[i].className == "cell long touching touched"){
  28. console.log("Already clicked " + i);
  29. } else {
  30. // find another word in the same dataset ID and click that as well
  31. for(o=0;o<document.getElementById("cells").childNodes.length;o++) {
  32. console.log("o = " + o );
  33. if(document.getElementById("cells").childNodes[i] && document.getElementById("cells").childNodes[o]){
  34. if(document.getElementById("cells").childNodes[i].dataset.id == document.getElementById("cells").childNodes[o].dataset.id) {
  35. eventFire(document.querySelector("#cells").childNodes[o], "click");
  36. eventFire(document.querySelector("#cells").childNodes[i], "click");
  37. }
  38. }
  39. }
  40. }
  41. }
  42.  
  43. // brute force, they now penalize faults so this is shit
  44. /*
  45. setInterval(function() {
  46. var dwfg = Math.floor(Math.random() * 16);
  47. // console.log(document.getElementById("cells").childNodes[dwfg].getAttribute("data-type"));
  48. if(document.getElementById("cells").childNodes[dwfg].className == "cell long touching correct" || document.getElementById("cells").childNodes[dwfg].className == "cell long touching touched"){
  49. } else {
  50. eventFire(document.querySelector("#cells").childNodes[dwfg], "click");
  51. }
  52. }, 1);
  53. */
  54. setInterval(function() {
  55. //eventFire(document.querySelector("body > div:nth-child(4) > div > div.UIModal.is-open > div > div > div.HighscoresMessage > div.UIDiv.HighscoresMessage-button > button"), "click");
  56. }, 2000);