Example #1
0
def edit_task(cur_tasks, sources, notif_agents, file):
    creator.print_title("Edit Task")
    task = creator.prompt_complex_list("Choose a task",
                                       cur_tasks,
                                       "name",
                                       extra_options=["d"],
                                       extra_options_desc=["done"])
    if task == "d":
        return
    else:
        task_creator(cur_tasks, sources, notif_agents, file, task)
def edit_source(cur_sources, scrapers, file):
    creator.print_title("Edit Source")
    source = creator.prompt_complex_dict("Choose a source",
                                         cur_sources,
                                         "name",
                                         extra_options=["d"],
                                         extra_options_desc=["done"])
    if source == "d":
        return
    else:
        create_source(cur_sources, scrapers, file, edit_source=source)
Example #3
0
def create_task(cur_tasks, sources, notif_agents, file):
    if len(sources) == 0:
        log.error_print(
            "No sources found. Please add a source before creating a task")
        return

    if len(notif_agents) == 0:
        log.error_print(
            "No notification agents found. Please add a notification agent before creating a task"
        )
        return

    creator.print_title("Add Task")
    task_creator(cur_tasks, sources, notif_agents, file, edit_task=None)
Example #4
0
def delete_task(tasks_list, file):
    creator.print_title("Delete Task")
    while True:
        for i in range(len(tasks_list)):
            print(f"{i} - {tasks_list[i].name}")

        print("s - save")
        print("q - quit without saving")
        tnum_str = creator.prompt_string("Delete task")
        if tnum_str == "s":
            save(tasks_list, file)
            return
        elif tnum_str == "q":
            return

        if re.match("[0-9]+$", tnum_str):
            tnum = int(tnum_str)
            if tnum >= 0 and tnum < len(tasks_list):
                if creator.yes_no(
                        f"Are you sure you want to delete {tasks_list[tnum].name}"
                ) == "y":
                    del tasks_list[tnum]
def delete_source(sources_dict, sources_file, tasks_list, tasks_file):
    creator.print_title("Delete Source")
    save = False
    changes_made = False

    while True:
        sources_list = []
        for s in sources_dict:
            sources_list.append(sources_dict[s])

        for i in range(len(sources_list)):
            print(f"{i} - {sources_list[i].name} [id: {sources_list[i].id}]")

        print("s - save and quit")
        print("q - quit without saving")

        tnum_str = creator.prompt_string("Delete source")
        if tnum_str == "s":
            save = True
            break
        elif tnum_str == "q":
            if changes_made and creator.yes_no("Quit without saving",
                                               "n") == "y":
                return
            elif not changes_made:
                return

        if re.match("[0-9]+$", tnum_str):
            tnum = int(tnum_str)
            if tnum >= 0 and tnum < len(sources_list):
                if creator.yes_no(f"Delete {sources_list[tnum].name}",
                                  "y") == "y":
                    do_delete_source(sources_list[tnum].id, sources_dict,
                                     tasks_list)
                    changes_made = True

    if save:
        save(sources_list, sources_file)
        tasklib.save(tasks_list, tasks_file)
def create_source(cur_sources, scrapers, file, edit_source=None):
    creator.print_title("Add Source")
    source_creator(cur_sources, scrapers, file, edit_source=edit_source)