Skip to content

Commit

Permalink
[feat] Captcha auto reloads if confidence is low
Browse files Browse the repository at this point in the history
  • Loading branch information
arpandaze committed Sep 10, 2021
1 parent 1b0c1b7 commit d361090
Showing 1 changed file with 50 additions and 15 deletions.
65 changes: 50 additions & 15 deletions src/content-script.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,52 @@ import { evaluate_captcha } from "./evaluate.js";

let factors = [1, 3, 2, 8, 3];

let reload_limit = 15;

let old_urls = [];

let reload_counter = 0;

window.onload = async () => {
await new Promise((resolve) => setTimeout(resolve, 100));
let solved = await solve_captcha();
while(!solved){
await solve_captcha();
}
await async_sleep(100);
await solve_captcha();
};

document.querySelector('[aria-label="Reload captcha"]').addEventListener("click", async ()=>{
setTimeout(async ()=>await solve_captcha(), 100)
})
async function async_sleep(time) {
return new Promise((resolve) => setTimeout(resolve, time));
}

document
.querySelector('[aria-label="Reload captcha"]')
.addEventListener("click", async () => {
reload_counter++;
if (reload_counter < reload_limit) {
while (
old_urls.includes(
document.getElementsByClassName("captcha-image-dimension")[0]
.currentSrc
)
) {
await async_sleep(100);
}
await solve_captcha();
}
});

async function solve_captcha() {
let captcha_value = null;
let captcha_blob_url = null;

async function solve_captcha(){
let captcha_blob_url = document.getElementsByClassName(
"captcha-image-dimension"
)[0].currentSrc;
while (!captcha_blob_url) {
captcha_blob_url = document.getElementsByClassName(
"captcha-image-dimension"
)[0].currentSrc;
await new Promise((resolve) => setTimeout(resolve, 100));
await async_sleep(100);
}
old_urls.push(captcha_blob_url);

let captcha_img = await Image.load(captcha_blob_url);
let captcha_value = await evaluate_captcha(captcha_img);
captcha_value = await evaluate_captcha(captcha_img);

if (captcha_value.length == 6) {
let captcha = "";
Expand All @@ -42,10 +63,24 @@ async function solve_captcha(){
return [item2[0], absSum];
});
let sorted_values = sim.sort((a, b) => a[1] - b[1]);
if (
sorted_values[0][1] > 60 ||
sorted_values[1][1] - sorted_values[0][1] < 5
) {
document
.querySelector('[aria-label="Reload captcha"]')
.dispatchEvent(new Event("click"));
return false;
}
captcha += sorted_values[0][0];
});
document.getElementById("captchaEnter").value = captcha;
document.getElementById("captchaEnter").dispatchEvent(new Event("input", { bubbles: true}));
document.getElementById("captchaEnter").dispatchEvent(new Event("input"));
return true;
} else {
document
.querySelector('[aria-label="Reload captcha"]')
.dispatchEvent(new Event("click"));
return false;
}
}

0 comments on commit d361090

Please sign in to comment.