Discord bot for conducting standups in "The Programming Hangout".
# Docker
docker build -t standup .
docker run --name standup --env STANDUP_BOT_TOKEN="MY_TOKEN" standup
# Dockerless
poetry install
standup "MY_TOKEN"
We've provided the run.bat
and run.sh
scripts as a convenience for running the
bot. To configure these, replace the variables at the top of each script with
the appropriate values.
There are two important options to configure during image creation:
- Discord API token
- Volume mount
We can configure the token by passing it as an environment variable
STANDUP_BOT_TOKEN
. To configure volumes, mount to /data/
. This is because
the default Dockerfile persists all data to /data/standup.db
. The following
example depicts both of these options.
docker build -t "standup-img" .
docker run --name "my-standup-container" \
--env STANDUP_BOT_TOKEN="MY_TOKEN" \
--mount source=standup-volume,target=/data "standup-img"
We can use standup --help
to check the possible configuration options for the
standup
script. Among these include database customization.
standup --database "./data/custom_database.db" "MY_TOKEN"
MANAGE_ROLES
VIEW_CHANNEL
SEND_MESSAGES
MANAGE_MESSAGES
READ_MESSAGE_HISTORY
ADD_REACTIONS
EMBED_LINKS
This bot contains the following features:
- Allows delegating channels as "standup rooms".
- All message posts in the standup room must conform to the "standup format".
- Upon successfully posting, this bot assigns the author a customizable set of roles. These roles are removed from the user after a 24 hour period.
- If any of these assigned roles are removed before the associated post expires, then the post and remaining roles are removed.
Knowing this, we'll need to configure our channels and roles. These next steps
require the ADMINISTRATOR
permission.
Let's start with the channels. In this example, we'll configure the channel with id 648308883898499072 to be a room. We'll then list out the rooms to verify our configuration.
@standup-bot rooms add 648308883898499072
@standup-bot rooms list
1: 648308883898499072 | Cooldown: 3600 | Roles: {}
If we want to change the cooldown per standup post, we can do so through the
cooldown
key:
@standup-bot rooms config 648308883898499072 cooldown 10
@standup-bot rooms list
1: 648308883898499072 | Cooldown: 10 | Roles: {648395618359967744, 6483956183512382382}
Finally, we'll need to add what roles we want to assign per standup post.
This is done by setting the roles
key to a comma separated list of role ids.
@standup-bot rooms config 648308883898499072 roles 648395618359967744,6483956183512382382
@standup-bot rooms list
1: 648308883898499072 | Cooldown: 10 | Roles: {648395618359967744, 6483956183512382382}
Please read the contributing guidelines.