X-Git-Url: https://us-delaporte.pagekite.me/gitweb/matrix-goal-bot.git/blobdiff_plain/68d84ff98092b507ca453894c1bcb8f6f2f90e4b..HEAD:/matrix_goal_bot/bot.py diff --git a/matrix_goal_bot/bot.py b/matrix_goal_bot/bot.py index ec3e97d..037173b 100644 --- a/matrix_goal_bot/bot.py +++ b/matrix_goal_bot/bot.py @@ -1,8 +1,8 @@ ''' -Prefix: !goal +Prefix: .goal Synax: - !goal COMMAND ARGS + .goal COMMAND ARGS Commands: help - show this help @@ -21,7 +21,7 @@ More commands: add.vision - add a new vision (collection of goals) close.vision ID - mark vision as complete by ID dump - dump the full data set - BEWARE - so many messages - later GOAL_ID - put off goal for 14 days + later VISION_ID - put off all goals in VISION 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 @@ -30,6 +30,7 @@ More commands: 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 + wins - list recently completed goals ''' @@ -64,7 +65,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) @@ -89,9 +90,16 @@ class GoalBot(): if match.prefix(): try: result_lines = await self._handle_match(match) + + message_lines = [] for line in result_lines: - await self.bot.api.send_text_message( - room.room_id, str(line)) + message_lines.append(str(line)) + + message = '\n'.join(message_lines) + + await self.bot.api.send_text_message( + room.room_id, message) + except Exception as ex: logger.warn(f'Caught exception: {str(ex)}') dumb_msg_idx = len(str(ex)) % len(snark) @@ -125,7 +133,8 @@ class GoalBot(): if match.command('list'): logger.debug('Asked to list current goals...') goals = self.data.get_current_goals() - results = ['# Goals list...'] + results = ['# Goals list'] + results.append('------------') for goal in goals: results.append(str(goal)) return results @@ -196,10 +205,13 @@ class GoalBot(): 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) + vision_id = int(match.args()[1]) + self.data.put_off_vision(vision_id) + # Want to see what we just cleaned up + goals = self.data.get_current_goals() + results = ['# Goals list...'] + for goal in goals: + results.append(str(goal)) return results @@ -254,6 +266,18 @@ class GoalBot(): results.append(item) return results + if match.command('wins'): + items = self.data.wins() + results = ['# Wins'] + if not items: + results.append('-- No wins yet --') + + for item in items: + results.append(item) + return results + + + if match.command('set.vision'): goal_id = int(match.args()[1]) vision_id = int(match.args()[2])