Added auto-nav on failed captcha
This commit is contained in:
parent
db284bc685
commit
9f9865bccd
1 changed files with 76 additions and 12 deletions
|
@ -7,34 +7,98 @@
|
||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name Math Problem Solver
|
// @name Math Problem Solver
|
||||||
// @namespace https://github.com/adithyagenie/skillrack-captcha-solver
|
// @namespace https://github.com/adithyagenie/skillrack-captcha-solver
|
||||||
// @version 0.3
|
// @version 0.4
|
||||||
// @description Solves math captcha in SkillRack using Tesseract.js
|
// @description Solves math captcha in SkillRack using Tesseract.js
|
||||||
// @author adithyagenie
|
// @author adithyagenie
|
||||||
// @include https://*.skillrack.com/*
|
// @include https://www.skillrack.com/faces/candidate/codeprogram.xhtml
|
||||||
|
// @include https://www.skillrack.com/faces/candidate/tutorprogram.xhtml
|
||||||
|
// @include https://www.skillrack.com/faces/candidate/codeprogramgroup.xhtml
|
||||||
// @require https://cdn.jsdelivr.net/npm/tesseract.js@4.1.1/dist/tesseract.min.js
|
// @require https://cdn.jsdelivr.net/npm/tesseract.js@4.1.1/dist/tesseract.min.js
|
||||||
// ==/UserScript==
|
// ==/UserScript==
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
if (
|
||||||
|
window.location.href ==
|
||||||
|
"https://www.skillrack.com/faces/candidate/codeprogramgroup.xhtml"
|
||||||
|
) {
|
||||||
|
if (localStorage.getItem("Solvebtnid"))
|
||||||
|
localStorage.removeItem("Solvebtnid");
|
||||||
|
if (localStorage.getItem("captchaFail"))
|
||||||
|
localStorage.removeItem("captchaFail");
|
||||||
|
}
|
||||||
|
function onClick(event) {
|
||||||
|
// Check if the clicked element is a button
|
||||||
|
if (
|
||||||
|
event.target.tagName === "SPAN" &&
|
||||||
|
event.target.parentNode.tagName === "BUTTON"
|
||||||
|
) {
|
||||||
|
// If so, log the button text
|
||||||
|
if (event.target.textContent === "Solve") {
|
||||||
|
localStorage.setItem("Solvebtnid", event.target.parentNode.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
document.addEventListener("click", onClick, false);
|
||||||
|
|
||||||
// Wait for window to load
|
// Wait for window to load
|
||||||
window.addEventListener("load", function () {
|
window.addEventListener("load", function () {
|
||||||
|
if (localStorage.getItem("captchaFail")) {
|
||||||
|
console.log(
|
||||||
|
"Detected captcha fail. Attempting to open last open page"
|
||||||
|
);
|
||||||
|
localStorage.removeItem("captchaFail");
|
||||||
|
const old = localStorage.getItem("Solvebtnid");
|
||||||
|
if (old) {
|
||||||
|
const oldbutt = document.getElementById(old);
|
||||||
|
if (oldbutt) oldbutt.click();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
console.log("Checking for captchas");
|
console.log("Checking for captchas");
|
||||||
// Step 1: Get the Image
|
// Step 1: Get the Image
|
||||||
const image = document.getElementById("j_id_6s");
|
let image;
|
||||||
|
if (
|
||||||
|
window.location.href ==
|
||||||
|
"https://www.skillrack.com/faces/candidate/codeprogram.xhtml"
|
||||||
|
)
|
||||||
|
image = document.getElementById("j_id_6s");
|
||||||
|
else if (
|
||||||
|
window.location.href ==
|
||||||
|
"https://www.skillrack.com/faces/candidate/tutorprogram.xhtml"
|
||||||
|
)
|
||||||
|
image = document.getElementById("j_id_5j");
|
||||||
|
|
||||||
const textbox = document.getElementById("capval");
|
const textbox = document.getElementById("capval");
|
||||||
const button = document.getElementById("proceedbtn");
|
const button = document.getElementById("proceedbtn");
|
||||||
if (image == null) {
|
if (image == null) {
|
||||||
console.log("Captcha not found!");
|
console.log("Captcha not found.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const errors = document.getElementsByClassName("ui-growl-item");
|
|
||||||
if (errors.length > 0) {
|
const errors = document.getElementsByClassName("ui-growl-item");
|
||||||
if (errors[0].textContent.includes("Incorrect Captcha")) {
|
if (errors.length > 0) {
|
||||||
console.log("Detected failed attempt at solving captcha");
|
if (errors[0].textContent.includes("Incorrect Captcha")) {
|
||||||
alert("I wasn't able to solve the captcha :/");
|
if (
|
||||||
return;
|
window.location.href ==
|
||||||
}
|
"https://www.skillrack.com/faces/candidate/tutorprogram.xhtml"
|
||||||
}
|
) {
|
||||||
|
alert("Unable to solve captcha :(");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
localStorage.setItem("captchaFail", "true");
|
||||||
|
console.log("Detected failed attempt at solving captcha");
|
||||||
|
const back = document.getElementById("j_id_5r");
|
||||||
|
back.click();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
const time = new Date().getTime();
|
const time = new Date().getTime();
|
||||||
|
if (localStorage.getItem("captchaFail")) {
|
||||||
|
localStorage.removeItem("captchaFail");
|
||||||
|
}
|
||||||
|
|
||||||
// Invert colours for better ocr
|
// Invert colours for better ocr
|
||||||
function invertColors(image) {
|
function invertColors(image) {
|
||||||
|
|
Loading…
Reference in a new issue