"use strict";
const SimpleCaptcha = require('../../src/js/SimpleCaptcha.js');
const echo = console.log;
const tile = JSON.parse(require('fs').readFileSync('../tile.json'));
function tile_pattern(x, y)
{
x = x % tile.width;
y = y % tile.height;
if (0 > x) x += tile.width;
if (0 > y) y += tile.height;
const i = (x + y*tile.width) << 2;
return [tile.image[i ], tile.image[i+1], tile.image[i+2]];
}
async function test()
{
const captcha = (new SimpleCaptcha())
.option('secret_key', 'SECRET_KEY')
.option('secret_salt', 'SECRET_SALT_')
.option('num_terms', 2)
.option('max_num_terms', 3) // -1 means constant num_terms
.option('min_term', 1)
.option('max_term', 21)
.option('color', 0x121212) // text color
.option('background', 0xffffff) // background color
;
captcha.reset();
captcha.option('difficulty', 2); // 0 (easy) to 3 (difficult)
captcha.option('distortion_type', 1); // 1: position distortion
captcha.option('color', [0xff0000, 0xffff00, 0x0000ff, 0x00ff00]); // text color gradient
captcha.option('background', /*0x1Da1C1*/tile_pattern); // background color/pattern
echo(await captcha.getCaptcha());
echo();
echo(await captcha.getHash());
echo("\n");
captcha.reset();
captcha.option('difficulty', 2); // 0 (easy) to 3 (difficult)
captcha.option('distortion_type', 2); // 2: scale distortion
captcha.option('color', 0xffffff); // text color
captcha.option('background', [0xff0000, 0xffff00, 0x00ff00, 0x0000ff]); // background color gradient
echo(await captcha.getCaptcha());
echo();
echo(await captcha.getHash());
}
echo('SimpleCaptcha.VERSION ' + SimpleCaptcha.VERSION);
test();
|