A welcoming bot
.env.dist | ||
.gitignore | ||
Dockerfile | ||
LICENSE | ||
message.template | ||
README.md | ||
requirements.txt | ||
run.py |
Mastodon Welcome Bot
This is a Mastodon bot that sends out a welcome toot (DM) to new users, brought to you by jawns.club.
Because Mastodon's API doesn't currently have a route for getting an array of accounts in an instance,
this bot queries the followers of an account and pages through for any have been created in the
last x days (see configuration below). This means that you'll want ACCOUNT_ID
to be an account
that is auto-followed by all new users.
Installation/Development
Requires:
- python3
- pip
Steps with Docker
git clone https://git.lattuga.net/ekardnam/mastodon-welcome-bot
cd mastodon-welcome-bot
cp .env.dist .env
- Fill in the env vars as required in the
.env
file (see definitions below) docker build . -t mastodon-welcome-message
- Run the app with
docker run -d mastodon-welcome-bot
Steps without Docker
git clone https://git.lattuga.net/ekardnam/mastodon-welcome-bot
cd mastodon-welcome-bot
virtualenv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.dist .env
- Fill in the env vars as required in the
.env
file (see definitions below) python3 run.py
Environment Variables
The application uses the following environment variables.
name | required | default | description |
---|---|---|---|
ACCESS_TOKEN | yes | n/a | the access token for the Mastodon account that you want the toots to come from |
INSTANCE_BASE_URL | yes | n/a | the base url of the Mastodon instance you want to run this for (ex: "https://jawns.club") |
DEBUG | no | false | boolean (either "true" or "false") for debug mode. If true, won't actually send out the toots, will just print the message for each to stdout |
ACCOUNT_ID | yes | n/a | the account ID that you want to pull followers from |
INSTANCE_MAX_CHARS | no | 500 | the max char length a toot can have |
In file message.template
put the template of the toot that you want to send out. Jinja2 syntax is used here and you can use any of the Account
variables.