]> us-delaporte.pagekite.me Git - matrix-cadbury.git/blobdiff - app.py
Add borg config
[matrix-cadbury.git] / app.py
diff --git a/app.py b/app.py
index 35b1be8ca4480a5375501675e70960fec64c9aba..502e9406405b26fd3ee8b2ad904088cc7bc329cb 100644 (file)
--- a/app.py
+++ b/app.py
@@ -1,32 +1,70 @@
 import os
 
 import os
 
-import simplematrixbotlib as botlib
-
-from matrix_goal_bot.bot import get_bot, goal_bot
-from matrix_chore_bot.bot import chore_bot
+from matrix_chore_bot.bot import ChoreBot
+from matrix_fridge_bot.bot import FridgeBot
+from matrix_goal_bot.bot import GoalBot
 from matrix_shop_bot.bot import shop_bot
 
 from matrix_shop_bot.bot import shop_bot
 
-SERVER = os.environ.get('MATRIX_SERVER')
-BOT_NAME = os.environ.get('MATRIX_BOT')
-BOT_PWD = os.environ.get('MATRIX_BOT_PWD')
+kwargs = {}
+# How to connect to Matrix
+kwargs['matrix_server'] = os.environ.get('MATRIX_SERVER')
+kwargs['bot_name'] = os.environ.get('MATRIX_BOT')
+kwargs['bot_pwd'] = os.environ.get('MATRIX_BOT_PWD')
 
 
-creds = botlib.Creds(SERVER, BOT_NAME, BOT_PWD)
-bot = botlib.Bot(creds)
+# Prefix to listen for
 
 
+# Where to store data
+DATA_DIR = os.environ.get('MATRIX_DATA_DIR', '')
+DB_FILE = os.environ.get('CHORE_DB_FILE', 'chore.db')
+kwargs['db_file'] = os.path.join(DATA_DIR, DB_FILE)
+kwargs['bot_prefix'] = os.environ.get('CHORE_BOT_PREFIX', '.chore')
+chore_bot = ChoreBot(**kwargs) 
 
 
-@bot.listener.on_message_event
-async def do_goal_stuff(room, message):
-    await goal_bot(room, message, bot)
+
+# Re-use chore_bot's inner bot for goal and shopping
+bot = chore_bot.bot
 
 
 @bot.listener.on_message_event
 async def do_chore_stuff(room, message):
 
 
 @bot.listener.on_message_event
 async def do_chore_stuff(room, message):
-    await chore_bot(room, message, bot)
+    await chore_bot.handle_message(room, message)
+
+# Fridge Bot
+DB_FILE = os.environ.get('GOAL_DB_FILE', 'fridge.db')
+kwargs['db_file'] = os.path.join(DATA_DIR, DB_FILE)
+kwargs['bot_prefix'] = os.environ.get('GOAL_BOT_PREFIX', '.fridge')
+fridge_bot = FridgeBot(**kwargs) 
+fridge_bot.bot = bot
+
+@bot.listener.on_message_event
+async def do_fridge_stuff(room, message):
+    await fridge_bot.handle_message(room, message)
+
+# Goal bot
+DB_FILE = os.environ.get('GOAL_DB_FILE', 'goal.db')
+kwargs['db_file'] = os.path.join(DATA_DIR, DB_FILE)
+kwargs['bot_prefix'] = os.environ.get('GOAL_BOT_PREFIX', '.goal')
+goal_bot = GoalBot(**kwargs) 
+goal_bot.bot = bot
 
 
+@bot.listener.on_message_event
+async def do_goal_stuff(room, message):
+    await goal_bot.handle_message(room, message)
 
 
+# Shop bot has not been updated to use a class object.
 @bot.listener.on_message_event
 async def do_shopping_stuff(room, message):
     await shop_bot(room, message, bot)
 
 @bot.listener.on_message_event
 async def do_shopping_stuff(room, message):
     await shop_bot(room, message, bot)
 
+# Bot for daily school tasks, using ChoreBot source code
+kwargs['bot_prefix'] = os.environ.get('SCHOOL_BOT_PREFIX', '.school')
+DB_FILE = os.environ.get('SCHOOL_DB_FILE', 'school.db')
+kwargs['db_file'] = os.path.join(DATA_DIR, DB_FILE)
+school_bot = ChoreBot(**kwargs) 
+school_bot.bot = bot
+
+@bot.listener.on_message_event
+async def do_school_stuff(room, message):
+    await school_bot.handle_message(room, message)
 
 
-bot.run()
+chore_bot.run()