WoBot comes with a ton of features, including:
create a Discord Event, a thread and allow RSVP via reactions with a single command
export all events to your calendar (works on mobile)
add
, rename
and remove
upload
to convert images into emojis
copy
emojis from other servers to your own
simply react with the emojis you want
Obama: when someone congratulates themselves
Cutie Pie: tell your friends how cute they are
store anything you like
schedule whatever you like for later
know what's up for lunch
show the next available plan
automatically skips weekends
find your friends
Not yet convinced? Have some images:
If you have a great idea or suggestion, feel free to open an issue.
If you want a feature right now and can code, open a pull request.
Please make sure to run cargo fmt
before committing.
- Install Rust
- Install Shuttle
- Optional: Install PostgresQL, you can also use a Docker container
- Change the Database URL (
postgres://test:pass@localhost:5432/postgres
) inmain.rs
to your local PostgresQL instance, if you leave it blank shuttle will use a Docker container. - Create a Discord Bot on the Discord Developer Portal
- Copy the bot token and put it in a
Secrets.toml
file in the root directory:You can also create aDISCORD_TOKEN = "your token here"
Secrets.dev.toml
file if you want to test with a different token for development. - Invite the bot to your server with the
ADMINISTRATOR
permission. You can also only choose the permissions you need. - Run the bot with
cargo shuttle run
Some features also require a font and images from the assets
folder.
Due to legal reasons, not all of them can be provided here. What's missing:
rockwill.ttf
: Rockwill Fontobama_medal.jpg
: Obama Medalmensa_plan.png
: Mensa Plan or from here
Simply download them and place them in the assets
folder with the same name.
WoBot is a Discord Bot written in Rust with the Poise framework. It's hosted on Shuttle and uses a PostgresQL database.
The mensa plan uses the Eat API, the mensa coordinates link to Google Maps.
The Mensaplan API is also written by myself in Elixir.
config.hjson
uses a human-friendly JSON version, HJson.
You can set up automatic reactions and replies based on keywords. All of them are case-insensitive.
Auto-reactions match only on word boundaries, ignoring punctuation around them.
For example, wobot
would match WoBot!
but not wo bot
.
WoBot can react with both Unicode and custom Discord emojis, even animated ones.
{
// channel for event threads
event_channel_per_guild: {
// guild_id: channel_id
0: 0
}
auto_reactions: {
robot: {
name: "🤖"
}
vibing: {
animated: true
name: vibing
// emoji id
id: 0
}
}
auto_replies: [
{
keywords: [
"wobot info"
"wobot help"
]
// discord user id
user: 0
title: About WoBot
description: "Hi, I'm **WoBot**, your friendly neighborhood bot. Please send any questions or feedback to my author, {user}. This message was sent {count} times. Have a nice day!"
colour: 15844367
}
}