From f86c05d41f140d19a41680a5002ff47554ebab2e Mon Sep 17 00:00:00 2001 From: Edward Delaporte Date: Fri, 27 Mar 2026 20:37:14 -0500 Subject: [PATCH] Add DATA_DIR --- README.md | 16 ++++++++++++++++ app.py | 5 +++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1b48dfd..e0449eb 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,12 @@ the purpose of `Cadbury` is to compose several together under a single Matrix bo 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`, @@ -27,6 +33,16 @@ Then use the following command to launch the bot: .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 diff --git a/app.py b/app.py index 3b80207..01fdc2e 100644 --- a/app.py +++ b/app.py @@ -8,6 +8,7 @@ from matrix_chore_bot.bot import chore_bot 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) @@ -15,12 +16,12 @@ 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() -- 2.47.3