diff --git a/modules/todo.py b/modules/todo.py index 71ebe133..2224bbb2 100644 --- a/modules/todo.py +++ b/modules/todo.py @@ -4,47 +4,52 @@ class Module(object): def __init__(self, bot): self.bot = bot bot.events.on("received").on("command").on("todo").hook( - self.todo) + self.todo, help="Find out what's in your todo list", + usage="[item number]") + bot.events.on("received").on("command").on("todoadd").hook( + self.todo_add, min_args=1, help="Add something to your todo list", + usage="") + bot.events.on("received").on("command").on("tododel").hook( + self.todo_del, min_args=1, help="Remove something from your " + "todo list", usage="") def todo(self, event): - if len(event["args_split"]) > 1: - action = event["args_split"][0].lower() - arg = " ".join(event["args_split"][1:]) - arg_lower = arg.lower() - todo = event["user"].get_setting("todo", []) - if action == "add": - for item in todo: - if item.lower() == arg_lower: - event["stderr"].write( - "That is already in your todo") - return - todo.append(arg) - event["user"].set_setting("todo", list(todo)) - event["stdout"].write("Saved") - elif action == "remove": - if event["args_split"][1].isdigit(): - index = int(event["args_split"][1]) - if len(todo) >= index: - todo.pop(index-1) - event["user"].set_setting("todo", todo) - event["stdout"].write("Todo item removed") - else: - event["stderr"].write("You do not have that many things in " - "your todo") + todo = event["user"].get_setting("todo", []) + if event["args"]: + if event["args_split"][0].isdigit() and int(event["args_split"][0]) > 0: + index = int(event["args_split"][0]) + if len(todo) >= index: + event["stdout"].write("Todo %d: %s" % (index, todo[index-1])) else: - event["stderr"].write("Please provided a todo item number to remove") - elif action == "show": - if event["args_split"][1].isdigit(): - index = int(event["args_split"][1]) - if len(todo) >= index: - event["stdout"].write("Todo %d: %s" % (index, todo[index-1])) - else: - event["stderr"].write("You do not have that many things in " - "your todo") - else: - event["stderr"].write("Please provide a todo item number to show") - elif len(event["args_split"]) == 1: - event["stderr"].write("Please provided an action and an argument") + event["stderr"].write("You do not have that many things in your todo") + else: + event["stderr"].write("Please provide a number") else: - todo_count = len(event["user"].get_setting("todo", [])) + todo_count = len(todo) event["stdout"].write("There are %d items in your todo" % todo_count) + + def todo_add(self, event): + arg_lower = event["args"].lower() + todo = event["user"].get_setting("todo", []) + for item in todo: + if item.lower() == arg_lower: + event["stderr"].write( + "That is already in your todo") + return + todo.append(event["args"]) + event["user"].set_setting("todo", todo) + event["stdout"].write("Saved") + + def todo_del(self, event): + todo = event["user"].get_setting("todo", []) + if event["args_split"][0].isdigit() and int(event["args_split"][0]) > 0: + index = int(event["args_split"][0]) + if len(todo) >= index: + todo.pop(index-1) + event["user"].set_setting("todo", todo) + event["stdout"].write("Todo item removed") + else: + event["stderr"].write("You do not have that many things in " + "your todo") + else: + event["stderr"].write("Please provided a todo item number to remove")