mirror of
https://github.com/sigmasternchen/axowall
synced 2025-03-15 08:38:55 +00:00
add direct success callback
This commit is contained in:
parent
c32124b3fc
commit
7c5a5e494c
2 changed files with 8 additions and 7 deletions
|
@ -5,6 +5,6 @@
|
||||||
<link href="bundle.css" rel="stylesheet">
|
<link href="bundle.css" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="captcha" data-challenge-url="/challenge.json"></div>
|
<div class="captcha" data-challenge-url="/challenge.json" data-success-callback="console.log"></div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
13
src/main.ts
13
src/main.ts
|
@ -37,14 +37,11 @@ const toggleChecked = (checkbox: Element) =>
|
||||||
const toggleLoading = (checkbox: Element) =>
|
const toggleLoading = (checkbox: Element) =>
|
||||||
checkbox.classList.toggle(CLASS_LOADING);
|
checkbox.classList.toggle(CLASS_LOADING);
|
||||||
|
|
||||||
function prepareChallengeExecution(challenge: Challenge): () => Promise<void> {
|
function prepareChallengeExecution(challenge: Challenge, callback: (response: string) => void): () => Promise<void> {
|
||||||
return async function() {
|
return async function() {
|
||||||
console.log("Calculating...");
|
|
||||||
|
|
||||||
toggleLoading(this);
|
toggleLoading(this);
|
||||||
|
|
||||||
const response = await findHashWithPrefix(challenge.algo, challenge.prefixBits, challenge.input);
|
callback(await findHashWithPrefix(challenge.algo, challenge.prefixBits, challenge.input));
|
||||||
console.log("Challenge Response: " + response);
|
|
||||||
|
|
||||||
toggleLoading(this);
|
toggleLoading(this);
|
||||||
toggleChecked(this);
|
toggleChecked(this);
|
||||||
|
@ -57,6 +54,8 @@ const prepareCaptcha = async (captcha: Element) => {
|
||||||
throw "No challenge URL found.";
|
throw "No challenge URL found.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let successCallback = captcha.getAttribute("data-success-callback");
|
||||||
|
|
||||||
const checkbox = initCaptchaContentAndGetCheckbox(captcha);
|
const checkbox = initCaptchaContentAndGetCheckbox(captcha);
|
||||||
|
|
||||||
const challengeResponse = await fetch(challengeUrl);
|
const challengeResponse = await fetch(challengeUrl);
|
||||||
|
@ -68,7 +67,9 @@ const prepareCaptcha = async (captcha: Element) => {
|
||||||
|
|
||||||
toggleLoading(checkbox);
|
toggleLoading(checkbox);
|
||||||
|
|
||||||
checkbox.addEventListener("click", prepareChallengeExecution(challenge));
|
checkbox.addEventListener("click", prepareChallengeExecution(challenge, response => {
|
||||||
|
if (successCallback) eval(successCallback)(response);
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
window.addEventListener("load", () =>
|
window.addEventListener("load", () =>
|
||||||
|
|
Loading…
Reference in a new issue