async def do_goal(match):
'''
- Bot help here?
+ Prefix: !goal
+
+ Synax:
+ !goal COMMAND ARGS
+
+ Commands:
+ help - show this help
+ add - add a goal
+ add-task ID - add a task under the goal specified by ID
+ list - list incomplete goals
+ list-all - list everything
+ print ID - print a goal and all tasks
+ done ID - mark task done by ID
+ goal-done ID - mark goal done by ID
'''
- # logger.debug(f'match {str(match)}')
- if match.command('help'):
- return ['help']
if match.command('setup'):
result = Data().setup()
return [f'Goal added with id {result}']
if match.command('list'):
- goals = Data().list_goals()
+ goals = Data().get_all_goals()
results = ['Goals list...']
for goal in goals:
results.append(str(goal))
results = pretty_print(goal, tasks)
return results
- return __doc__
+ if match.command('list-all'):
+ goals = Data().get_all_goals()
+ results = ['Everything is...']
+ for goal in goals:
+ _,tasks = Data().get_goal(goal.id)
+ details = pretty_print(goal, tasks)
+ results += details
+ return results
+
+ return [do_goal.__doc__]
@bot.listener.on_message_event
self.file = db_file
self.engine = self.get_engine()
+
def get_engine(self):
return create_engine(f"sqlite:///{self.file}")
def print_all_visions(self):
pass
- def print_all_goals(self):
- pass
-
def print_ophan_tasks(self):
pass
- def list_goals(self):
+ def get_all_goals(self):
'''List all goals'''
with Session(self.engine) as session:
cmd = select(Goal).where(Goal.complete_date == None)