Create a bot account on your Matrix server, and set the necessary environment variables: `MATRIX_SERVER`, `MATRIX_BOT`, `MATRIX_BOT_PWD`.
+Set `MATRIX_DATA_DIR` to an existing directory path where you would like Cadbury to store any `sqlite3` databases.
+
+Expect files such as `goals.db` and `chores.db` to appear there after you tell Cadbury `!chore setup` and `!goal setup`, etc.
+
+Ensure that `python` and `sqlite3` are installed and available on the path.
+
> Tip: Cadbury has no use for email. Your Matrix server may allow creating the bot account without an email account, using a `token` registration type.
Run the bot with `make serve`,
.venv/bin/python app.py
+## Chatting
+
+Invite you Cadbury bot to a Matrix channel, and it will accept automatically, if it can.
+
+> Tip: Additional setup is required to add a Matrix bot to an encrypted channel.
+
+Use `!goal help` and `!chore help`, to get started.
+
+> Tip: Many bot roles require creating a sqlite3 database, and may require you to tell Cadbuary something like `!chore setup` one initial time to create the database file.
+
## Remixing
When creating your own unique mix of bot roles, consider creating a public fork of
SERVER = os.environ.get('MATRIX_SERVER')
BOT_NAME = os.environ.get('MATRIX_BOT')
BOT_PWD = os.environ.get('MATRIX_BOT_PWD')
+DATA_DIR = os.environ.get('MATRIX_DATA_DIR')
creds = botlib.Creds(SERVER, BOT_NAME, BOT_PWD)
bot = botlib.Bot(creds)
@bot.listener.on_message_event
async def do_goal_stuff(room, message):
- await goal_bot(room, message, bot)
+ await goal_bot(room, message, bot, DATA_DIR)
@bot.listener.on_message_event
async def do_chore_stuff(room, message):
- await chore_bot(room, message, bot)
+ await chore_bot(room, message, bot, DATA_DIR)
bot.run()