Esempio n. 1
0
def stop_task(context, owner: Message.author, message):
    with Db() as db:
        task_ids = get_list_items(db, owner)
        task_id = find_task_id_in_list(db, task_ids, message)
        if db.get_task_state(task_id) != "STARTED":
            return "That task hasn't been started.", None, None
        db.stop_task(task_id)
        return get_display_mode(context, db, owner,
                                f"{owner.name} stopped task '{message}'")
Esempio n. 2
0
def remove_tasks(context, owner: Message.author, message):
    with Db() as db:
        task_ids = get_list_items(db, owner)
        for item in message.split("\n"):
            task_id = find_task_id_in_list(db, task_ids, item)
            task_ids.remove(task_id)
        db.update_list_items(task_ids, owner.id)
        return get_display_mode(context, db, owner,
                                f"{owner.name} removed tasks from their list")
Esempio n. 3
0
def uncheck_task(context, owner: Message.author, message):
    with Db() as db:
        task_ids = get_list_items(db, owner)
        task_id = find_task_id_in_list(db, task_ids, message)
        if db.get_task_state(task_id) != "CHECKED":
            return "That task hasn't been completed.", None, None
        db.uncomplete_task(task_id)
        return get_display_mode(context, db, owner,
                                f"{owner.name} unchecked task '{message}'")
Esempio n. 4
0
def start_task(context, owner: Message.author, message):
    with Db() as db:
        task_ids = get_list_items(db, owner)
        task_id = find_task_id_in_list(db, task_ids, message)
        if db.get_task_state(task_id) == "STARTED":
            return "That task is already started.", None, None
        if "STARTED" in db.get_task_states(task_ids):
            return "You can only have one started task at a time.", None, None
        db.start_task(task_id)
        return get_display_mode(context, db, owner,
                                f"{owner.name} started task '{message}'")
Esempio n. 5
0
def _reorder_task(context, owner: Message.author, item: str, position: int):
    with Db() as db:
        task_ids = get_list_items(db, owner)
        task_id = find_task_id_in_list(db, task_ids, item)
        task_ids.remove(task_id)
        if position == -1:
            task_ids.append(task_id)
        else:
            task_ids.insert(position - 1, task_id)
        db.update_list_items(task_ids, owner.id)
        return get_display_mode(
            context, db, owner,
            f"{owner.name} moved task '{item}' to {position}")
Esempio n. 6
0
def check_list(context, owner: Message.author, message):
    with Db() as db:
        list_items = get_list_items(db, owner)
        tasks = message.split(" ")
        if not all([s.isdigit() for s in tasks]):
            return "All arguments must be positions of tasks, not names.", None, None
        task_ids = []
        for task in tasks:
            task_id = find_task_id_in_list(db, list_items, task)
            if db.get_task_state(task_id) == "CHECKED":
                return f"Task {task} has already been finished.", None, None
            task_ids.append(task_id)
        for task_id in task_ids:
            db.complete_task(task_id)
        return get_display_mode(context, db, owner,
                                f"{owner.name} finished tasks '{message}'")