From: Edward Delaporte Date: Tue, 31 Mar 2026 21:17:01 +0000 (-0500) Subject: Add ability to run with separate prefix and database file X-Git-Url: https://apps.delaporte.us/gitweb/matrix-chore-bot.git/commitdiff_plain/refs/heads/assignments?ds=inline Add ability to run with separate prefix and database file --- diff --git a/app.py b/app.py index ead7f4c..fcc2652 100644 --- a/app.py +++ b/app.py @@ -1,9 +1,22 @@ -from matrix_chore_bot.bot import get_bot, chore_bot +import os + +import simplematrixbotlib as botlib + +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') +BOT_PREFIX = os.environ.get('MATRIX_BOT_PREFIX', '!chore') + +def get_bot(): + creds = botlib.Creds(SERVER, BOT_NAME, BOT_PWD) + return botlib.Bot(creds) bot = get_bot() @bot.listener.on_message_event async def do_bot_stuff(room, message): - await chore_bot(room, message, bot) + await chore_bot(room, message, bot, BOT_PREFIX) bot.run() diff --git a/matrix_chore_bot/bot.py b/matrix_chore_bot/bot.py index 8a9e755..7e33ade 100644 --- a/matrix_chore_bot/bot.py +++ b/matrix_chore_bot/bot.py @@ -12,16 +12,12 @@ BOT_PWD = os.environ.get('MATRIX_BOT_PWD') CHORES = ChoreData() -def get_bot(): - creds = botlib.Creds(SERVER, BOT_NAME, BOT_PWD) - return botlib.Bot(creds) - logger = logging.getLogger(__name__) logging.basicConfig(filename='matrix-chore-bot.log', encoding='utf-8', level=logging.DEBUG) logging.getLogger('nio').setLevel(logging.WARNING) -async def chore_bot(room, message, bot): - match = botlib.MessageMatch(room, message, bot, '!chore') +async def chore_bot(room, message, bot, prefix='!chore'): + match = botlib.MessageMatch(room, message, bot, prefix) if not match.is_not_from_this_bot() and match.prefix(): return @@ -33,7 +29,7 @@ async def chore_bot(room, message, bot): await bot.api.send_text_message( room.room_id, str(line)) except Exception as ex: - line = 'Ye flask must be load bearing, or something...' + line = f'Ye flask must be load bearing, or something... {str(ex)}' await bot.api.send_text_message( room.room_id, str(line)) diff --git a/matrix_chore_bot/db.py b/matrix_chore_bot/db.py index 8467d32..b4d3374 100644 --- a/matrix_chore_bot/db.py +++ b/matrix_chore_bot/db.py @@ -13,6 +13,8 @@ DATE_FORMAT = '%Y-%m-%d' def today(): return dt.now().strftime(DATE_FORMAT) +DEFAULT_DB_FILE = os.path.join(os.environ.get('MATRIX_DATA_DIR', ''), 'chores.db') +DB_FILE = os.environ.get('MATRIX_CHORE_DB_FILE', DEFAULT_DB_FILE) logger = logging.getLogger(__name__) logging.basicConfig(filename='chore.log', encoding='utf-8', level=logging.DEBUG) @@ -39,7 +41,7 @@ class Data(): def __init__(self, db_file=None): if not db_file: - db_file = os.path.join(os.environ.get('MATRIX_DATA_DIR', ''), 'chores.db') + db_file = DB_FILE self.file = db_file self.engine = self.get_engine()