An open API service indexing awesome lists of open source software.

https://github.com/tulioabreu/shazow-bot

Customizable personal bot for any text platform with an API
https://github.com/tulioabreu/shazow-bot

bot discord-bot twitch-bot

Last synced: 3 months ago
JSON representation

Customizable personal bot for any text platform with an API

Awesome Lists containing this project

README

          


ShazowBot




Gitmoji


Tests

ShazowBot is my personal chat bot for general and useless stuff. The main focus here is making the bot
flexible enough to support any environment (discord, twitch, etc.) by simply implementing the message listener, message parser and action execution.

## Package Structure

| Codebase | Description |
| -------- | ----------- |
| [Chat](https://github.com/TulioAbreu/shazow-bot/tree/master/packages/chat) | Normalizes multiple environments input/output |
| [Server](https://github.com/TulioAbreu/shazow-bot/tree/master/packages/server) | Bot implementation |
| [Api](https://github.com/TulioAbreu/shazow-bot/tree/master/packages/api) | Bot database management API |
| [Front](https://github.com/TulioAbreu/shazow-bot/tree/master/packages/front) | Bot database management front |
| [Database](https://github.com/TulioAbreu/shazow-bot/tree/master/packages/database) | Models and Repositories |
| [Utils](https://github.com/TulioAbreu/shazow-bot/tree/master/packages/utils) | General utils |

## Settings

For `.env` settings, the following properties are needed:

- **MONGODB_CONNECTION_URL**: MongoDb connection URL for storing/retrieving [models](https://github.com/TulioAbreu/shazow-bot/tree/master/packages/server/src/models).

- **DISCORD_TOKEN**: Discord Bot Token.

- **TWITCH_USERNAME**: Your bot twitch username.

- **TWITCH_TOKEN**: Your `TWITCH_USERNAME` generated oauth token

For general (and not sensitive data), we use `config.json`:

- **prefix**: Prefix used for commands

- **trollCommandThreshold**: Troll commands are ignored since they generally dont mean anything besides trying to find problems inside the bot implementation. The threshold is the minimum message size for classifying it as troll

- **twitchChannels**: List of twitch channels to connect with

## Repository Commands

- **build**: Build all packages
- **start**: Start the bot
- **lint**: Run linter
- **new command**: Creates new command boilerplate

To see bot available commands, check out [this folder](https://github.com/TulioAbreu/shazow-bot/tree/master/docs).