Human Benchmark Cheats

Uh we don't talk about the typing test

// ==UserScript==
// @name        Human Benchmark Cheats
// @namespace   Violentmonkey Scripts
// @match       https://humanbenchmark.com/*
// @grant       none
// @version     1.0
// @author      NarwhalKid
// @description Uh we don't talk about the typing test
// ==/UserScript==





window.addEventListener("load", function () {
  let oldHref = document.location.href,
    bodyDOM = document.querySelector("body");
  function checkModifiedBody() {
    let tmp = document.querySelector("body");
    if (tmp != bodyDOM) {
      bodyDOM = tmp;
      observer.observe(bodyDOM, config);
    }
  }
  const observer = new MutationObserver(function (mutations) {
    if (oldHref != document.location.href) {
      oldHref = document.location.href;
      location.reload();
      window.requestAnimationFrame(checkModifiedBody)
    }
  });
  const config = {
    childList: true,
    subtree: true
  };
  observer.observe(bodyDOM, config);
}, false);








if (window.location.href == "https://humanbenchmark.com/tests/reactiontime") {
var simulateMouseEvent = function(element, eventName, coordX, coordY) {
  element.dispatchEvent(new MouseEvent(eventName, {
    view: window,
    bubbles: true,
    cancelable: true,
    clientX: coordX,
    clientY: coordY,
    button: 0
  }));
};

var theButton = document.getElementsByClassName("css-42wpoy e19owgy79")[0]

var box = theButton.getBoundingClientRect(),
        coordX = box.left + (box.right - box.left) / 2,
        coordY = box.top + (box.bottom - box.top) / 2;

function waitTilGreen() {
  if (document.getElementsByClassName("view-go")[0]) {
  simulateMouseEvent(theButton, "mousedown", coordX, coordY);
  simulateMouseEvent(theButton, "mouseup", coordX, coordY);
    simulateMouseEvent(theButton, "mousedown", coordX, coordY);
  simulateMouseEvent(theButton, "mouseup", coordX, coordY);
    waitTilGreen()
  } else {
    setTimeout(()=>{
      waitTilGreen()
    },0)
  }
}

waitTilGreen()
}

if (window.location.href == "https://humanbenchmark.com/tests/verbal-memory") {

// shamelessly stolen from https://greasyfork.org/en/scripts/446913-verbal-memory-bot-humanbenchmark-com/

  let INTERVAL = 0;

let botbtn = document.createElement("button");
let startbtn = document.querySelector("button.css-de05nr.e19owgy710");
let settingsdiv = document.createElement("div");
let btndiv = startbtn.parentElement;
botbtn.className = startbtn.className;
botbtn.innerText = "Start Bot";
settingsdiv.className = btndiv.className;
let intervalinput = document.createElement("input");
intervalinput.className = ".css-1gr1qbh";
intervalinput.type = "number";
intervalinput.min = 0;
intervalinput.onchange = () => (INTERVAL = parseInt(intervalinput.value));
intervalinput.value = INTERVAL;
intervalinput.style.color = "black";
intervalinput.placeholder = 0;
settingsdiv.append("Click interval (ms): ");
settingsdiv.append(intervalinput);
let fullnav = document.querySelector("div.full-nav");


let dict = [];


  listenForMemoryStart()

  function listenForMemoryStart() {

    if (document.getElementsByClassName('css-de05nr e19owgy710').length == 2) {
      memoryLoop()
    } else {
      setTimeout(()=>{
        listenForMemoryStart()
      },1)
    }

  }


function memoryLoop() {
	startbtn.click();
	setImmediate(() => {
		let worddiv = document.querySelector("div.word");
		let [seenbtn, newbtn] = document.querySelectorAll(
			"button.css-de05nr.e19owgy710"
		);
		let stopped = false;
		let stopbtn = document.createElement("button");
		stopbtn.className = startbtn.className;
		stopbtn.innerText = "Stop";
		stopbtn.onclick = () => {
			console.log("Stopped");
			stopped = true;
			stopbtn.remove();
		};
		fullnav.append(stopbtn);
		let interval = setInterval(() => {
			if (document.querySelector(".css-0")) {
				console.log("Game ended");
				document
					.querySelector("button.secondary.css-qm6rs9.e19owgy710")
					.addEventListener("click", () =>
						setImmediate(() => {
							dict = [];
							startbtn = document.querySelector(
								"button.css-de05nr.e19owgy710"
							);
							btndiv = startbtn.parentElement;
							appendStuff();
						})
					);
				stopbtn.remove();
				clearInterval(interval);
			} else if (!stopped) {
				let word = worddiv.innerText.trim();
				console.log(word);
				if (dict.includes(word)) seenbtn.click();
				else {
					dict.push(word);
					newbtn.click();
				}
			}
		}, INTERVAL);
	});
};

}


if (window.location.href == "https://humanbenchmark.com/tests/chimp") {
  function mainChimpLoop() {
  i = 1
  loopTilEnd()
  function loopTilEnd() {
  if (document.getElementsByClassName('css-de05nr e19owgy710').length == 1) {
    if (document.getElementsByClassName('css-de05nr e19owgy710')[0].innerText == "Start Test"){
      setTimeout(()=>{
        mainChimpLoop()
      },1)
    } else {
      document.getElementsByClassName('css-de05nr e19owgy710')[0].click()
    mainChimpLoop()
    }

  } else {
    if (document.querySelectorAll('[data-cellnumber="' + i + '"]').length == 1) {
      document.querySelectorAll('[data-cellnumber="' + i + '"]')[0].click()
      i++
      loopTilEnd()
    }
  }
  }
  }
  mainChimpLoop()
}

if (window.location.href == "https://humanbenchmark.com/tests/aim") {


let fullnav = document.querySelector("div.full-nav");
function addStartBtn() {

    stopped = false;
		let stopbtn = document.createElement("button");
		stopbtn.style.fontWeight = "bold"
    stopbtn.style.color = "#333333"
		stopbtn.innerText = "Start";
		stopbtn.onclick = () => {
			console.log("Started");
			shootLoop()
      setTimeout(()=>{
        document.getElementsByClassName('secondary css-qm6rs9 e19owgy710')[0].click()
      },4)
			stopbtn.remove();
		};
		fullnav.append(stopbtn);


  }

  addStartBtn()


function shootLoop() {

  if (document.getElementsByClassName('css-ad1j3y e6yfngs2')[0]) {


  var simulateMouseEvent = function(element, eventName, coordX, coordY) {
  element.dispatchEvent(new MouseEvent(eventName, {
    view: window,
    bubbles: true,
    cancelable: true,
    clientX: coordX,
    clientY: coordY,
    button: 0
  }));
};

var theButton = document.getElementsByClassName('css-ad1j3y e6yfngs2')[0]

var box = theButton.getBoundingClientRect(),
        coordX = box.left + (box.right - box.left) / 2,
        coordY = box.top + (box.bottom - box.top) / 2;
  simulateMouseEvent(theButton, "mousedown", coordX, coordY);
  simulateMouseEvent(theButton, "mouseup", coordX, coordY);
  shootLoop()


  } else {
    setTimeout(()=>{
      shootLoop()
    },1)
  }
}


}

if (window.location.href == "https://humanbenchmark.com/tests/number-memory") {


let startbtn = document.querySelector("button.css-de05nr.e19owgy710");
let fullnav = document.querySelector("div.full-nav");
  function addStopBtn() {

    stopped = false;
		let stopbtn = document.createElement("button");
		stopbtn.className = startbtn.className;
		stopbtn.innerText = "Stop";
    stopbtn.id = "stopBtn"
		stopbtn.onclick = () => {
			console.log("Stopped");
			stopped = true;
			stopbtn.remove();
		};
		fullnav.append(stopbtn);


  }


  function waitForNumber(){
    if (document.getElementsByClassName('big-number').length != 0) {

      if (!document.getElementById('stopBtn')) {
      addStopBtn()
    }


      number = new Array;
      for(let i = 0; i < document.getElementsByClassName('big-number ')[0].innerText.length; i++) {
        number.push(document.getElementsByClassName('big-number ')[0].innerText[i])
        console.log(document.getElementsByClassName('big-number ')[0].innerText[i])
      }
      console.log(number)



      waitToInput();
    } else {
      setTimeout(()=>{
        waitForNumber()
      },1)
    }
  }

  function waitToInput(){
    if (document.getElementsByTagName('input')[0]) {
      if (stopped == false) {
      number.forEach((element, index)=>{
        document.getElementsByTagName('input')[0].value = document.getElementsByTagName('input')[0].value + number[index]

      })
      document.getElementsByTagName('input')[0].value = document.getElementsByTagName('input')[0].value + "W"
      document.execCommand('delete');
      document.getElementsByClassName('css-de05nr e19owgy710')[1].click()
      document.getElementsByClassName('css-de05nr e19owgy710')[1].click()
      waitForNumber()
      }
    } else {
      setTimeout(()=>{
        waitToInput()
      },1)
    }
  }


  waitForNumber()

}



if (window.location.href == "https://humanbenchmark.com/tests/memory") {



  let startbtn = document.querySelector("button.css-de05nr.e19owgy710");
let fullnav = document.querySelector("div.full-nav");
function addStopBtn() {

    stopped = false;
		let stopbtn = document.createElement("button");
		stopbtn.className = startbtn.className;
		stopbtn.innerText = "Stop";
    stopbtn.id = "stopBtn"
		stopbtn.onclick = () => {
			console.log("Stopped");
			stopped = true;
			stopbtn.remove();
		};
		fullnav.append(stopbtn);


  }


  waitForMemoryBoxes()

  function waitForMemoryBoxes() {

    if (document.getElementsByClassName(' css-lxtdud eut2yre1').length != 0) {

      if (!document.getElementById('stopBtn')) {
      addStopBtn()
    }

      assignIds()
    } else {
      setTimeout(()=>{
        waitForMemoryBoxes()
      },1)
    }
  }

  function assignIds() {
    document.getElementsByClassName(' css-lxtdud eut2yre1').forEach((element, index)=>{
      element.id = "box" + index
    })
    getHighlightedBoxesIds()
  }

  function getHighlightedBoxesIds() {
    boxes = new Array;
    if (document.getElementsByClassName('active css-lxtdud eut2yre1').length != 0) {
      document.getElementsByClassName('active css-lxtdud eut2yre1').forEach((element)=>{
        boxes.push(element.id)
      })
      waitForClickingAndClick();
    } else {
      setTimeout(()=>{
        getHighlightedBoxesIds();
      },1)
    }
  }

  function waitForClickingAndClick() {

    if (document.getElementsByClassName('active css-lxtdud eut2yre1').length == 0) {
      if (stopped == false) {
      boxes.forEach((element)=>{


        var simulateMouseEvent = function(element, eventName, coordX, coordY) {
  element.dispatchEvent(new MouseEvent(eventName, {
    view: window,
    bubbles: true,
    cancelable: true,
    clientX: coordX,
    clientY: coordY,
    button: 0
  }));
};

var theButton = document.getElementById(element)

var box = theButton.getBoundingClientRect(),
        coordX = box.left + (box.right - box.left) / 2,
        coordY = box.top + (box.bottom - box.top) / 2;
  simulateMouseEvent(theButton, "mousedown", coordX, coordY);
  simulateMouseEvent(theButton, "mouseup", coordX, coordY);



      })
      waitForLevel(document.getElementsByClassName('css-dd6wi1')[0].children[1].innerText)
    }
    } else {
      setTimeout(()=>{
        waitForClickingAndClick()
      },1)
    }
  }

  function waitForLevel(oldLvl) {
    level = document.getElementsByClassName('css-dd6wi1')[0].children[1].innerText
    if (level != oldLvl) {
      if (stopped == false) {
      waitForMemoryBoxes()
      }
    } else {
      setTimeout(()=>{
        waitForLevel(level)
      },1)
    }
  }


}





if (window.location.href == "https://humanbenchmark.com/tests/sequence") {


let startbtn = document.querySelector("button.css-de05nr.e19owgy710");
let fullnav = document.querySelector("div.full-nav");


  function addStopBtn() {

    stopped = false;
		let stopbtn = document.createElement("button");
		stopbtn.className = startbtn.className;
		stopbtn.innerText = "Stop";
    stopbtn.id = "stopBtn"
		stopbtn.onclick = () => {
			console.log("Stopped");
			stopped = true;
			stopbtn.remove();
		};
		fullnav.append(stopbtn);


  }


function waitForSquares() {




    if (document.getElementsByClassName('square').length > 0){
      doCode()
    } else {
      setTimeout(()=>{
        waitForSquares();
      },1)
    }
  }

    waitForSquares()



function doCode(){
  squares = document.getElementsByClassName('square')
  squares.forEach((element, index)=>{
    element.setAttribute('id','box' + index);
  })
  waitForActiveSquare()
}



  function waitForActiveSquare() {

     if (!document.getElementById('stopBtn')) {
      addStopBtn()
    }

    if (document.getElementsByClassName('square active').length > 0){
      squareList = new Array
      squareList.push(document.getElementsByClassName('square active')[0].id)


      listenForMoreBoxes(squareList[0])
      waitForDeactiveSquare();



    } else {
      setTimeout(()=>{
        waitForActiveSquare();
      },1)
    }
  }



  function listenForMoreBoxes(id) {
    if (document.getElementsByClassName('square active').length != 0) {
      currentId = document.getElementsByClassName('square active')[0].id
      if (id != currentId) {
        squareList.push(currentId)
        listenForMoreBoxes(currentId)
      } else {
        setTimeout(()=>{
          listenForMoreBoxes(id)
        },1)
      }
    }
  }





  function waitForDeactiveSquare() {

    if (document.getElementsByClassName('square active').length == 0){

      if (stopped == false) {

      squareList.forEach((element)=>{

        var simulateMouseEvent = function(element, eventName, coordX, coordY) {
  element.dispatchEvent(new MouseEvent(eventName, {
    view: window,
    bubbles: true,
    cancelable: true,
    clientX: coordX,
    clientY: coordY,
    button: 0
  }));
};

var theButton = document.getElementById(element)

var box = theButton.getBoundingClientRect(),
        coordX = box.left + (box.right - box.left) / 2,
        coordY = box.top + (box.bottom - box.top) / 2;
  simulateMouseEvent(theButton, "mousedown", coordX, coordY);
  simulateMouseEvent(theButton, "mouseup", coordX, coordY);


      })
      waitForActiveSquare()
      }
    } else {
      setTimeout(()=>{
        waitForDeactiveSquare()
      },1)
    }
}




}