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)
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)
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)