@qso-soft/shared
Version:
Shared library for QSO-soft
56 lines • 2.02 kB
JavaScript
import axios from 'axios';
import { getHeaders, sleep } from '../utils';
const CAPMONSTER_API_URL = 'https://api.anti-captcha.com';
const getTaskResult = async (taskId, headers) => {
const { data } = await axios.post(`${CAPMONSTER_API_URL}/getTaskResult`, {
clientKey: QsoGlobal.CAPMONSTER_CAPTCHA_KEY,
taskId,
}, {
headers,
});
return data;
};
export const getCapmonsterCaptcha = async ({ proxyObject, taskType, websiteKey, websiteURL }) => {
try {
let proxyAgentObject = {};
if (proxyObject) {
const { proxyType, proxyLogin, proxyPort, proxyIp, proxyPass } = proxyObject;
proxyAgentObject = {
proxyType: proxyType.toLowerCase(),
proxyPort,
proxyLogin,
proxyAddress: proxyIp,
proxyPassword: proxyPass,
};
}
const headers = getHeaders();
const { data: createdTaskData } = await axios.post(`${CAPMONSTER_API_URL}/createTask`, {
clientKey: QsoGlobal.CAPMONSTER_CAPTCHA_KEY,
task: {
type: taskType,
websiteURL,
websiteKey,
minScore: 0.7,
isEnterprise: true,
...proxyAgentObject,
},
}, { headers });
if (createdTaskData.errorDescription) {
throw new Error(createdTaskData.errorDescription);
}
let resultData = await getTaskResult(createdTaskData.taskId, headers);
while (resultData.status === 'processing') {
await sleep(10);
resultData = await getTaskResult(createdTaskData.taskId, headers);
}
if (resultData.errorDescription) {
throw new Error(resultData.errorDescription);
}
return resultData.solution?.gRecaptchaResponse;
}
catch (err) {
const error = err;
throw new Error(error.message);
}
};
//# sourceMappingURL=get-capmonster-captcha.js.map