2020-10-01 23:51:02 +00:00
# reminder-rs
2021-10-12 20:52:43 +00:00
Reminder Bot for Discord.
2020-10-02 14:19:53 +00:00
## How do I use it?
2022-05-13 22:13:39 +00:00
I offer a hosted version of the bot. You can invite it with: **https://invite.reminder-bot.com** . The catch is that repeating
2021-01-25 20:24:24 +00:00
reminders are paid on the hosted version of the bot. Keep reading if you want to host it yourself.
2020-10-02 14:19:53 +00:00
You'll need rustc and cargo for compilation. To run, you'll need Python 3 still (due to no suitable replacement for dateparser in Rust)
2020-10-12 18:12:33 +00:00
### Compiling
2022-05-13 22:13:39 +00:00
Install build requirements:
2023-05-07 20:08:59 +00:00
`sudo apt install gcc gcc-multilib cmake libssl-dev build-essential python3-dateparser`
2022-05-13 22:13:39 +00:00
Install Rust from https://rustup.rs
Reminder Bot can then be built by running `cargo build --release` in the top level directory. It is necessary to create a
folder called 'assets' containing an image file with its name specified in the environment as `WEBHOOK_AVATAR` , of
dimensions 128x128px to be used as the webhook avatar.
2020-10-12 18:12:33 +00:00
2020-10-25 17:39:39 +00:00
#### Compilation environment variables
These environment variables must be provided when compiling the bot
2020-11-22 01:31:50 +00:00
* `DATABASE_URL` - the URL of your MySQL database (`mysql://user[:password]@domain/database`)
2020-10-25 17:39:39 +00:00
* `WEBHOOK_AVATAR` - accepts the name of an image file located in `$CARGO_MANIFEST_DIR/assets/` to be used as the avatar when creating webhooks. **IMPORTANT: image file must be 128x128 or smaller in size**
2023-01-21 12:25:24 +00:00
### Setting up database
Use MySQL 8. MariaDB is confirmed not working at the moment.
Load the SQL files in order from "migrations" to generate the database schema.
2020-10-12 18:12:33 +00:00
### Setting up Python
2023-05-07 20:08:59 +00:00
Reminder Bot uses `python3-dateparser` to handle dates. This depends on Python 3.
2020-10-12 18:12:33 +00:00
### Environment Variables
Reminder Bot reads a number of environment variables. Some are essential, and others have hardcoded fallbacks. Environment variables can be loaded from a .env file in the working directory.
__Required Variables__
* `DATABASE_URL` - the URL of your MySQL database (`mysql://user[:password]@domain/database`)
* `DISCORD_TOKEN` - your application's bot user's authorization token
__Other Variables__
2021-02-14 15:40:05 +00:00
* `MIN_INTERVAL` - default `600` , defines the shortest interval the bot should accept
2020-10-12 18:12:33 +00:00
* `LOCAL_TIMEZONE` - default `UTC` , necessary for calculations in the natural language processor
* `SUBSCRIPTION_ROLES` - default `None` , accepts a list of Discord role IDs that are given to subscribed users
* `CNC_GUILD` - default `None` , accepts a single Discord guild ID for the server that the subscription roles belong to
* `PYTHON_LOCATION` - default `venv/bin/python3` . Can be changed if your Python executable is located somewhere else
2020-10-13 13:35:13 +00:00
* `THEME_COLOR` - default `8fb677` . Specifies the hex value of the color to use on info message embeds