import logging
import os

from matrix_goal_bot.bot import GoalBot

logging.basicConfig(filename='matrix-goal-bot.log', encoding='utf-8', level=logging.DEBUG)
logging.getLogger('nio').setLevel(logging.WARNING)
logging.getLogger('asyncio').setLevel(logging.WARNING)

logger = logging.getLogger(__name__)
logger.info("Starting goal bot...")

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')

# Prefix to listen for
kwargs['bot_prefix'] = os.environ.get('MATRIX_BOT_PREFIX', '.goal')

logger.info(f'Goal bot will connect to {kwargs["matrix_server"]} as {kwargs["bot_name"]}')

# Where to store data
DATA_DIR = os.environ.get('MATRIX_DATA_DIR', '')
DB_FILE = os.environ.get('MATRIX_DB_FILE', 'goal.db')
kwargs['db_file'] = os.path.join(DATA_DIR, DB_FILE)

logger.info(f'Goal bot will store data at {kwargs["db_file"]}')


goal_bot = GoalBot(**kwargs) 

@goal_bot.bot.listener.on_message_event
async def do_bot_stuff(room, message):
    '''Pass messages to our bot'''
    await goal_bot.handle_message(room, message)

goal_bot.run()

