X-Git-Url: https://apps.delaporte.us/gitweb/matrix-goal-bot.git/blobdiff_plain/8958d1dc084e3d468e8880cafa29652754e99875..a59a86dc16ca8bf553ecaa3f0e582b4c5479dfd6:/matrix_goal_bot/bot.py diff --git a/matrix_goal_bot/bot.py b/matrix_goal_bot/bot.py index 47c71a3..d463855 100644 --- a/matrix_goal_bot/bot.py +++ b/matrix_goal_bot/bot.py @@ -2,14 +2,15 @@ Prefix: !goal Synax: - !goal COMMAND ARGS + .goal COMMAND ARGS Commands: help - show this help extra.help - show extended help add - add a goal + clear - clear completed tasks under current goal task ID - add a task under the goal specified by ID - close.goal ID - mark goal done by ID + close ID - mark goal done by ID done ID - mark task done by ID list - list incomplete goals print GOAL_ID - print a goal and all tasks @@ -19,11 +20,15 @@ ex_help = ''' More commands: add.vision - add a new vision (collection of goals) close.vision ID - mark vision as complete by ID - list.all - list everything + dump - dump the full data set - BEWARE - so many messages + later GOAL_ID - put off goal for 14 days + list.later - list all 'later' goals 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 + remove ID - remove a task by ID + start GOAL_ID - un-put-off a goal (reverse of later) visionless - list goals with no set vision ''' @@ -59,7 +64,7 @@ class GoalBot(): bot_name, bot_pwd, db_file=None, - bot_prefix='!goal'): + bot_prefix='.goal'): creds = botlib.Creds(matrix_server, bot_name, bot_pwd) self.bot = botlib.Bot(creds) @@ -118,8 +123,8 @@ class GoalBot(): return results if match.command('list'): - logger.debug('Asked to list goals...') - goals = self.data.get_all_goals() + logger.debug('Asked to list current goals...') + goals = self.data.get_current_goals() results = ['# Goals list...'] for goal in goals: results.append(str(goal)) @@ -164,13 +169,40 @@ class GoalBot(): results = pretty_print(vision, goals) return results - if match.command('close.goal'): + if match.command('close'): goal_id = int(match.args()[1]) vision_id = self.data.complete_goal(goal_id) vision,goals = self.data.get_vision(vision_id) results = pretty_print(vision, goals) return results + + if match.command('clear'): + if len(match.args()) > 1: + goal_id = int(match.args()[1]) + else: + goal_id = self.data._get_pref_goal_id() + _ = self.data.clear(goal_id) + + goal,tasks = self.data.get_goal(goal_id) + results = pretty_print(goal, tasks) + return results + + + if match.command('start'): + goal_id = int(match.args()[1]) + vision,goals = self.data.start_goal(goal_id) + results = pretty_print(vision, goals) + return results + + if match.command('later'): + goal_id = int(match.args()[1]) + vision_id = self.data.put_off_goal(goal_id) + vision,goals = self.data.get_vision(vision_id) + results = pretty_print(vision, goals) + return results + + if match.command('close.vision'): vision_id = int(match.args()[1]) self.data.complete_vision(vision_id) @@ -187,15 +219,21 @@ class GoalBot(): results = pretty_print(goal, tasks) return results - if match.command('list.all'): + if match.command('dump'): goals = self.data.get_all_goals() - results = ['# Everything is...'] + results = ['# Everything ... '] for goal in goals: _,tasks = self.data.get_goal(goal.id) details = pretty_print(goal, tasks) results += details return results + + if match.command('list.later'): + goals = self.data.get_all_goals() + results = ['# All Goals ... '] + return results + if match.command('visions'): items = self.data.get_all_visions() results = ['# Visions']