From 5014d81a45cbb4e60ff0089af8e8615f65dcf4f3 Mon Sep 17 00:00:00 2001 From: overflowerror Date: Fri, 16 Aug 2024 23:53:46 +0200 Subject: [PATCH] extract parameter fields to constants --- src/main.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main.ts b/src/main.ts index c99c9c3..dcc6a4a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,6 +8,10 @@ const CLASS_LOADING = "loading"; const CLASS_CHECKED = "checked"; const CLASS_SILENT = "silent"; +const DATA_CHALLENGE_URL = "data-challenge-url"; +const DATA_SUCCESS_CALLBACK = "data-success-callback"; +const DATA_INPUT_SELECTOR = "data-input-selector"; + const findHashWithPrefix = async (algo: string, hashPrefixBits: number, inputPrefix: string): Promise => { const hashPrefix = new Uint8Array(Array(Math.ceil(hashPrefixBits / 8)).map(_ => 0)); let iteration = 0; @@ -61,15 +65,15 @@ const prepareInputCaptcha = (captcha: Element, challengeCompletedCallback: (resp } const prepareCaptcha = async (captcha: Element) => { - const challengeUrl = captcha.getAttribute("data-challenge-url"); + const challengeUrl = captcha.getAttribute(DATA_CHALLENGE_URL); + const successCallback = captcha.getAttribute(DATA_SUCCESS_CALLBACK); + const inputSelector = captcha.getAttribute(DATA_INPUT_SELECTOR); + if (!challengeUrl) { throw "No challenge URL found."; } const challengeCompletesCallback = (response: string) => { - const successCallback = captcha.getAttribute("data-success-callback"); - const inputSelector = captcha.getAttribute("data-input-selector"); - if (successCallback) eval(successCallback)(response); if (inputSelector) [...document.querySelectorAll(inputSelector)].forEach((input: HTMLInputElement) => input.value = response) };