bots/README.md
2023-05-22 21:05:29 +02:00

1.7 KiB

 _   _  _____        __  _____ ___    ____   ___ _____
| | | |/ _ \ \      / / |_   _/ _ \  | __ ) / _ \_   _|
| |_| | | | \ \ /\ / /    | || | | | |  _ \| | | || |
|  _  | |_| |\ V  V /     | || |_| | | |_) | |_| || |
|_| |_|\___/  \_/\_/      |_| \___/  |____/ \___/ |_|

status: experimental

Bots

The Varia XMPP botspace. These bots are written using slixmpp and sometimes also xbotlib.

Write your own

The idea is that you create a single python file and then using one of the above libraries, you write a single Python class which knows how to speak XMPP, join rooms, respond to commands etc. Probably the simplest place to start is by reading the xbotlib getting started guide.

Deploy it on the Varia server

Add a configuration entry to /etc/supervisor/conf.d/bots.conf like the following.

[program:whisperbot]
directory=/srv/gitea/clones/bots/whisperbot.xbotlib
user=bot
autostart=true
autorestart=true
environment=PATH="/srv/gitea/clones/bots/.venv/lib/python3.7/site-packages:%(ENV_PATH)s"
command=/srv/gitea/clones/bots/.venv/bin/python3 whisperbot.py --password <YOUR-PASSWORD>

Then systemctl restart supervisorctl and then check if it comes up with supervisorctl status bots:. Logs for all bots can be found in /var/log/supervisor/. Finally, when you git push your bot changes, a git hook will restart your bot.

Stop and start bots

For example logbot:

supervisorctl status bots:logbot

supervisorctl start bots:logbot

supervisorctl stop bots:logbot

supervisorctl restart bots:logbot