This bot connects your team to the outside and makes it addressable.
Go to file
2023-12-21 01:34:37 +01:00
src/teams_bot send error to relay group if sending outside message fails 2023-12-21 01:34:37 +01:00
tests bot: forward sending errors to relay group 2023-12-08 13:58:15 +01:00
.gitignore added pickleDB to store crew.id #2 2023-10-08 10:32:44 +02:00
LICENSE added necessary project files 2023-10-07 08:50:04 +02:00
pyproject.toml added necessary project files 2023-10-07 08:50:04 +02:00
README.md README: small improvements 2023-12-15 22:06:23 +01:00
setup.cfg test: check if /set_avatar works 2023-10-25 00:26:22 +02:00

Teams Bot

This bot connects your team to the outside and makes it addressable.

Configure this bot with your team address (e.g. helpdesk@example.org), and add all your team members to the crew. Then, every time an outsider writes to your team address, the bot opens a new relay group with all of you; you can use the relay group to discuss the request in private and when you have come to a conclusion, answer the request. The bot will forward the answer to the outsider in the name of the team, hiding the identities of the team members.

Setup

To install this bot, run:

git clone https://git.0x90.space/missytake/teams-bot
cd teams-bot
pip install .

Now you can configure it with an email address you want to use as a team:

teams-bot init --email helpdesk@example.org --password p455w0rD

This command will show a QR code; scan it with Delta Chat to become part of the "team", the verified group which manages the Teams Bot.

Now to run it, simply execute:

teams-bot run -v

The bot only works as long as this command is running. Read more about running bots on bots.delta.chat.

Deploy with pyinfra

If you use pyinfra to manage a server, you can deploy this bot with it. Just import it into your deploy.py file like this:

from teams_bot.pyinfra import deploy_teams_bot

deploy_teams_bot(
    unix_user='root',                   # an existing UNIX user (doesn't need root or sudo privileges)
    bot_email='helpdesk@example.org',   # the email address your team wants to use
    bot_passwd='p4ssw0rd',              # the password to the email account
)

After you deployed it, you need to do two steps manually:

First, to initialize the bot, create the crew, and join the crew, login to the user with ssh and run:

export $(cat ~/.env | xargs) && ~/.local/lib/teams-bot.venv/bin/teams-bot init

Then, to start the bot and keep it running in the background, run:

systemctl --user enable --now teams-bot

You can view the log output with journalctl --user -fu teams-bot to confirm that it works.

Development Environment

To get started with developing, run:

python3 -m venv venv
. venv/bin/activate
pip install pytest tox black pytest-xdist pytest-timeout
pip install -e .
tox