Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/haileybot/captcha-generator
An NPM package to generate captcha images that can be used in Discord bots or various other projects
https://github.com/haileybot/captcha-generator
authentication captcha captcha-generator captcha-images discord discord-bots discord-js haileybot javascript nodejs npm slack slack-bot verification
Last synced: 25 days ago
JSON representation
An NPM package to generate captcha images that can be used in Discord bots or various other projects
- Host: GitHub
- URL: https://github.com/haileybot/captcha-generator
- Owner: HaileyBot
- License: gpl-3.0
- Created: 2020-03-04T02:56:08.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T17:41:17.000Z (almost 2 years ago)
- Last Synced: 2024-05-01T17:26:27.785Z (6 months ago)
- Topics: authentication, captcha, captcha-generator, captcha-images, discord, discord-bots, discord-js, haileybot, javascript, nodejs, npm, slack, slack-bot, verification
- Language: TypeScript
- Homepage: https://haileybot.com/captcha-generator
- Size: 757 KB
- Stars: 51
- Watchers: 2
- Forks: 17
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Captcha Generator
Captcha Generator is a Node library for quickly and easily generating captcha images that can be used through an authorized bot to verify human users on a chat platform such as Slack or Discord.
## Installation
Use the package manager [npm](https://www.npmjs.com/) to install Captcha Generator
```bash
npm i @haileybot/captcha-generator
```## Usage
### Basic
```js
// Import the module
const Captcha = require("@haileybot/captcha-generator");// Create a new Captcha object
// - Optional argument to specify image height (250 to 400px, default 250)
// - Image width is 400px
// - Returned object will contain 4 properties
// - "PNGStream" is a stream object for the image file in PNG format
// - "JPEGStream" is a stream object for the image file in JPEG format
// - "dataURL" is a data URL containing the JPEG image data
// - "value" is the 6 character code the image contains
let captcha = new Captcha();
console.log(captcha.value);
```### Save to file example
```js
const path = require("path"),
fs = require("fs"),
Captcha = require("@haileybot/captcha-generator");let captcha = new Captcha();
captcha.PNGStream.pipe(fs.createWriteStream(path.join(__dirname, `${captcha.value}.png`)));
captcha.JPEGStream.pipe(fs.createWriteStream(path.join(__dirname, `${captcha.value}.jpeg`)));
```### Discord Example
This example assumes you already have the core framework of a Discord Bot set up
```js
const Captcha = require("@haileybot/captcha-generator");// Use this function for blocking certain commands or features from automated self-bots
function verifyHuman(msg) {
let captcha = new Captcha();
msg.channel.send(
"**Enter the text shown in the image below:**",
new Discord.MessageAttachment(captcha.JPEGStream, "captcha.jpeg")
);
let collector = msg.channel.createMessageCollector(m => m.author.id === msg.author.id);
collector.on("collect", m => {
if (m.content.toUpperCase() === captcha.value) msg.channel.send("Verified Successfully!");
else msg.channel.send("Failed Verification!");
collector.stop();
});
}
```## License
This project is licensed under [GPL-3.0](https://github.com/HaileyBot/captcha-generator/blob/master/LICENSE)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FHaileyBot%2Fcaptcha-generator.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FHaileyBot%2Fcaptcha-generator?ref=badge_large)