X-Git-Url: https://apps.delaporte.us/gitweb/matrix-goal-bot.git/blobdiff_plain/6f0b0c0bc55d45e3b0ad316a6d34057217834256..913b65b598c1a233cce4f69724b4aca8ca6ef02a:/matrix_goal_bot/bot.py diff --git a/matrix_goal_bot/bot.py b/matrix_goal_bot/bot.py index 3b4f240..37cb90d 100644 --- a/matrix_goal_bot/bot.py +++ b/matrix_goal_bot/bot.py @@ -10,9 +10,6 @@ SERVER = os.environ.get('MATRIX_SERVER') BOT_NAME = os.environ.get('GOAL_BOT') BOT_PWD = os.environ.get('GOAL_BOT_PWD') -def get_bot(): - creds = botlib.Creds(SERVER, BOT_NAME, BOT_PWD) - return botlib.Bot(creds) DATE_FORMAT = '%Y-%m-%d' @@ -34,19 +31,22 @@ async def do_goal(match): Commands: help - show this help + extra.help - show extended help add - add a goal - add-task ID - add a task under the goal specified by ID - add-vision - add a new vision (collection of goals) - close-goal ID - mark goal done by ID - close-vision ID - mark vision as complete by ID + task ID - add a task under the goal specified by ID + close.goal ID - mark goal done by ID done ID - mark task done by ID list - list incomplete goals - list-all - list everything - list-done - list completed goals print GOAL_ID - print a goal and all tasks - print-vision ID - print a vision and all goals - set-vision GOAL_ID VISION_ID- associate GOAL_ID with VISION_ID + ''' + ex_help = ''' + add.vision - add a new vision (collection of goals) + close.vision ID - mark vision as complete by ID + list.all - list everything + print.vision ID - print a vision and all goals + set.vision GOAL_ID VISION_ID- associate GOAL_ID with VISION_ID visions - list incomplete visions + list.done - list completed goals visionless - list goals with no set vision ''' @@ -74,15 +74,12 @@ async def do_goal(match): results.append(str(goal)) return results - - if match.command('add.task'): - goal_id = int(match.args()[1]) - new = ' '.join(match.args()[2:]) - result = Data().add_task(goal_id=goal_id, name=new) + if match.command('task'): + new = ' '.join(match.args()[1:]) + goal_id = Data().quick_add_task(new) goal,tasks = Data().get_goal(goal_id) results = pretty_print(goal, tasks) return results - # return [f'Added task with id {result}'] if match.command('add.vision'): new = ' '.join(match.args()[1:]) @@ -90,10 +87,15 @@ async def do_goal(match): return [f'Vision added with id {result}'] if match.command('print'): - goal_id = int(match.args()[1]) + if len(match.args()) > 1: + goal_id = int(match.args()[1]) + else: + goal_id = Data()._get_pref_goal_id() + logger.debug(f'Searching for goal {goal_id}...') goal,tasks = Data().get_goal(goal_id) results = pretty_print(goal, tasks) + return results @@ -145,7 +147,7 @@ async def do_goal(match): results.append(item) return results - if match.command('visions'): + if match.command('visionless'): items = Data().visionless() results = ['# Goals with no vision'] if not items: @@ -172,6 +174,14 @@ async def do_goal(match): results = pretty_print(goal, tasks) return results + if match.command('remove'): + task_id = int(match.args()[1]) + result = Data().remove_task(task_id) + return [result] + + if match.command('extra.help'): + return [ex_help] + # Help text return [do_goal.__doc__]