Socket
Socket
Sign inDemoInstall

9kw-captcha-node

Package Overview
Dependencies
39
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

9kw-captcha-node

9kw API Wrapper to solve captchas


Version published
Maintainers
1
Weekly downloads
1
decreased by-66.67%

Weekly downloads

Readme

Source

1. 9kw

This is an api wrapper for the 9kw captcha solver service. An Api Key is needed, generate using the 9kw website.

  • 9kw.eu
  • Library Documentation

1.1. Installation

node:

npm install 9kw-captcha-node

This library supports environment variables to pass parameters like API Key:

ENV variableTypeDescription
CAPTCHA_API_KEY_9KWStringAPI Key
CAPTCHA_SOURCE_9KWString9kw Source (app indicator)
CAPTCHA_OLD_SOURCE_9KWString9kw Old Source (indicator for captcha type)
CAPTCHA_PRIO_9KWNumber9kw default priority
CAPTCHA_DEBUG_9KWNumberDon't spend credits and get fake solutions. For testing...

In alternative you can pass it as parameters when instantiating the API constructor

1.2. Promises - Async/Await

const Api9kw = require("9kw-captcha-node");
const api = new Api9kw(/* You can pass parameters here or just use the ENV vars */);

(async () => {
  try {
    // Get the balance of credits from 9kw
    const balance = await api.asyncGetBalance();
    console.log(`BALANCE: ${balance} credits`);

    // Submit a local image file with the captcha
    // const captchaId = await api.asyncSubmitFile(config.pathToFile);

    // Submit using a Image Base 64 of the captha
    // const captchaId = await api.asyncSubmitBase64(config.image_base64);

    // Submit using a Image URL of the captha
    // const captchaId = await api.asyncSubmit(config.image_url);

    // Submit CaptchaV2 (using a siteKey + siteUrl)
    // CaptchaV2 will need to be solved by someone in real time
    //   so using the priority becomes important if you want faster captchas
    //   300 seconds (with 0 prio) is a reasonable number so you don't miss solved captchas
    //   If you want them faster, up the prio and you will pay one extra credit per captcha
    const captchaId = await api.asyncSubmit(
      SITEKEY,
      SITEURL,
      OVERWRITE_PRIO_IF_YOU_WANT
    );
    console.log(`CAPTCHA ID: ${captchaId}`);

    // Get the solution of the captcha with a timeout of 40 seconds (optional)
    // this means that the callback will be called when the captcha is solved
    // For image Solving 9kw seems to store the solutions in their own DB
    //   and some are instantaneous others may take some more but usually under 30 sec
    // For CaptchaV2 (sitekey + siteUrl) will need to be solved by someone in real time
    //   so using the priority becomes important if you want faster captchas
    //   300 seconds (with 0 prio) is a reasonable number so you don't miss solved captchas
    //   If you want them faster, up the prio and you will pay one extra credit per captcha
    // usually is solved under 30s (default timeout is 30 seconds)
    const solution = await api.asyncGetSolutionLoop(captchaId, 300);
    console.log("SOLUTION: ", solution);

    // Give feedback
    successSolve
      ? await api9kw.asyncIsCorrect(captchaId, true)
      : await api9kw.asyncIsCorrect(captchaId);
  } catch (err) {
    console.error(err); // Timeout or NO_USER
  }
})();

1.3. Callbacks

const Api9kw = require("9kw");
const api = new Api9kw(/* You can pass parameters here or just use the ENV vars */);

// Get your account balance (credits)
api.getBalance((err, balance) => {
  console.log(balance);
});

// Submit a local image file with the captcha
// api.submitFile("./captcha.png", (err, newID) => {
//   if (err) {
//     console.log(err);
//     return;
//   }
//   console.log("Captcha uploaded!: " + captchaId);
//   // Next step is to get the solution of the uploaded captcha using the new captchaID
// });

// Submit using a Image Base 64 of the captha
// api.submitBase64(base64, (err, newID) => {
//   if (err) {
//     console.log(err);
//     return;
//   }
//   console.log("Captcha uploaded!: " + captchaId);
//   // Next step is to get the solution of the uploaded captcha using the new captchaID
// });

// Submit using a Image URL of the captha
api.submit(URL, (err, newID) => {
  if (err) {
    console.log(err);
    return;
  }
  console.log("Captcha uploaded!: " + captchaId);
  // Next step is to get the solution of the uploaded captcha using the new captchaID
});

// Submit CaptchaV2 (using a siteKey + siteUrl)
// CaptchaV2 will need to be solved by someone in real time
//   so using the priority becomes important if you want faster captchas
//   300 seconds (with 0 prio) is a reasonable number so you don't miss solved captchas
//   If you want them faster, up the prio and you will pay one extra credit per captcha
api.submit(
  SITE_KEY,
  (err, newID) => {
    if (err) {
      console.log(err);
      return;
    }
    console.log("Captcha uploaded!: " + captchaId);
    // Next step is to get the solution of the uploaded captcha using the new captchaID
  },
  SITE_URL,
  OVERWRITE_PRIO_IF_YOU_WANT
);

// Get the solution of the captcha with a timeout of 40 seconds (optional)
// this means that the callback will be called when the captcha is solved
// usually is solved under 30s (default timeout is 30 seconds)
api.getSolutionLoop(captchaId, 40, (err, solution) => {
  if (err) {
    console.log(err);
    return;
  }
  console.log("Solution: " + solution);
});

// Tell 9kw the solution was correct or not
api.isCorrect(captchaId, true);

// Get the 9kw server check info
api.serverCheck((err, serverInfo) => {
  console.log(serverInfo);
});

1.4. Development

1.4.1. Linting and Generating Docs

npm run flow

1.4.2. Tests

In order to run the tests, create a .env file as .env.default and put your account details in the correct ENV variables, then run:

npm run test

Tests are not working on Node > 10

1.5. Credits

This project was initially a fork of iamfreee/9kw_node

Keywords

FAQs

Last updated on 29 Sep 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc