@kamuridesu/whatframework
Version:
A simple WhatsApp Bot Framework on top of Baileys
76 lines (46 loc) • 2.69 kB
Markdown
# WhatFramework
An extensible Framework for WhatsApp!
<img src="https://count.kamuridesu.com?username=whatframework" />
## Getting started
### Installing the framework
1. Create a new folder and start the project with `npm init`
2. Install WhatFramework: `npm install --save @kamuridesu/whatframework`
### Creating your EntryPoint file
WhatFramework needs modules to work. A module is made of a file called entrypoint.js file, which has a class `Entrypoint` that has some properties and methods used by the Framework to define how the bot will handle commands and messages.
#### Parameters
The following parameters are needed to start the framework:
1. `prefix`: the commands prefix for your bot;
2. `name`: the name of the bot;
3. `botNumber`: the number of the bot;
4. `ownerNumber`: Number of the bot owner;
Optional parameters:
5. `language`: Language of the bot. Defaults to en-us;
6. `commandsFilename`: Name of the commands file. The reason for this will be explained later.
#### Methods
We need to define at least the two following methods in our Entrypoin class:
1. `chatHandlers`: Handles any message received by the bot, except those who start with the `prefix` property.
2. `commandHandlers`: Handles any message that starts with the `prefix` property.
Each method will have a different signature:
`chatHandlers` must have the following parameters:
- `bot`: a bot instance;
- `message`: a string with the message;
- `context`: a MessageData instance containing all the data for that message;
- `group`: a GroupData instance holding all the data for a group. If the chat is not a group, the value is `undefined`;
- `metadata`: a ChatMetadata instance containing some meta info for the chat.
`commandHandlers` must have the following parameters:
- `bot`: a bot instance;
- `command`: a string with the command;
- `args`: command arguments, if any;
- `context`: a MessageData instance containing all the data for that message;
- `group`: a GroupData instance holding all the data for a group. If the chat is not a group, the value is `undefined`;
- `metadata`: a ChatMetadata instance containing some meta info for the chat.
You can see an example in [examples](../examples/).
### Helpers
The framework have some libs to help the developer to build their bots.
Helper libs will be available in `whatframework/libs/`.
### Running
After installing WhatFramework and creating your module with the entrypoint, just run the following command:
```bash
npx whatframework
```
You'll be prompted to scan a QR code to login with a phone number. Scan the code and the bot will start.