From 6f54c6d3ace97508e1d3ddcd98efb0a043bc9d6b Mon Sep 17 00:00:00 2001 From: Eduard Date: Thu, 3 Jul 2025 17:02:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=BE=D1=82=D1=81=D1=83=D1=82=D1=81=D1=82=D0=B2?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=9F=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=B8=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=92=D0=B5=D1=82=D1=80=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils.py | 86 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/utils.py b/utils.py index 891f031..bef78ef 100644 --- a/utils.py +++ b/utils.py @@ -49,65 +49,69 @@ def db_update(): logger.info(f"{Fore.YELLOW}Обновление Тегов...\n{Fore.RESET}") clock_tags = clock.get_tags(is_updating=True, **{"page-size": clock.tags_count}) - db_tags = db.get_tags() - new_tags = [tag for tag in clock_tags if tag not in db_tags] + if clock_tags: + db_tags = db.get_tags() + new_tags = [tag for tag in clock_tags if tag not in db_tags] - if new_tags: - try: - db.insert_tags(new_tags) - logger.info(f"{Fore.GREEN}Обновлено тегов: {len(new_tags)}{Fore.RESET}") - except Exception as e: - logger.error(f"{Fore.RED}Ошибка при сохранении тегов!{Fore.RESET}") - else: - logger.info(f"{Fore.YELLOW}Обновление тегов не требуется.\n{Fore.RESET}") + if new_tags: + try: + db.insert_tags(new_tags) + logger.info(f"{Fore.GREEN}Обновлено тегов: {len(new_tags)}{Fore.RESET}") + except Exception as e: + logger.error(f"{Fore.RED}Ошибка при сохранении тегов!{Fore.RESET}") + else: + logger.info(f"{Fore.YELLOW}Обновление тегов не требуется.\n{Fore.RESET}") # Обновление Задач logger.info(f"{Fore.YELLOW}Обновление Задач...\n{Fore.RESET}") - db_tasks = db.get_tasks() red_tasks = red.get_issues() - clock_tasks = [task for task in red_tasks if task.id in [parse_task_id(tag.title) for tag in [*db_tags, *new_tags]]] - new_tasks = [task for task in clock_tasks if task not in db_tasks] + if red_tasks: + db_tasks = db.get_tasks() + clock_tasks = [task for task in red_tasks if task.id in [parse_task_id(tag.title) for tag in [*db_tags, *new_tags]]] + new_tasks = [task for task in clock_tasks if task not in db_tasks] - if new_tasks: - try: - db.insert_tasks(new_tasks) - logger.info(f"{Fore.GREEN}Обновлено задач: {len(new_tasks)}{Fore.RESET}") - except Exception as e: - logger.error(f"{Fore.RED}Ошибка при сохранении задач!{Fore.RESET}") - else: - logger.info(f"{Fore.YELLOW}Обновление задач не требуется\n{Fore.RESET}") + if new_tasks: + try: + db.insert_tasks(new_tasks) + logger.info(f"{Fore.GREEN}Обновлено задач: {len(new_tasks)}{Fore.RESET}") + except Exception as e: + logger.error(f"{Fore.RED}Ошибка при сохранении задач!{Fore.RESET}") + else: + logger.info(f"{Fore.YELLOW}Обновление задач не требуется\n{Fore.RESET}") # Обновление Проектов Ветро logger.info(f"{Fore.YELLOW}Обновление Проектов Ветро{Fore.RESET}") clock_projects = clock.get_vetro_projects() - db_projects = db.get_vetro_projects() - new_projects = [project for project in clock_projects if project not in db_projects] + if clock_projects: + db_projects = db.get_vetro_projects() + new_projects = [project for project in clock_projects if project not in db_projects] - if new_projects: - try: - db.insert_vetro_projects(new_projects) - logger.info(f"{Fore.GREEN}Обновлено Проектов Ветро: {len(new_projects)}{Fore.RESET}") - except Exception as e: - logger.error(f"{Fore.RED}Ошибка при сохранении Проектов Ветро!{Fore.RESET}") - else: - logger.info(f"{Fore.YELLOW}Обновление Проектов Ветро не требуется\n{Fore.RESET}") + if new_projects: + try: + db.insert_vetro_projects(new_projects) + logger.info(f"{Fore.GREEN}Обновлено Проектов Ветро: {len(new_projects)}{Fore.RESET}") + except Exception as e: + logger.error(f"{Fore.RED}Ошибка при сохранении Проектов Ветро!{Fore.RESET}") + else: + logger.info(f"{Fore.YELLOW}Обновление Проектов Ветро не требуется\n{Fore.RESET}") # Обновление Типов деятельности logger.info(f"{Fore.YELLOW}Обновление Типов деятельности{Fore.RESET}") red_types = red.get_time_entry_activities() - db_types = db.get_activity_types() - new_types = [type_ for type_ in red_types if type_ not in db_types] + if red_types: + db_types = db.get_activity_types() + new_types = [type_ for type_ in red_types if type_ not in db_types] - if new_types: - try: - db.insert_activity_types(new_types) - logger.info(f"{Fore.GREEN}Обновлено Типов деятельности: {len(new_types)}{Fore.RESET}") - except Exception as e: - logger.error(f"{Fore.RED}Ошибка при сохранении Типов деятельности!{Fore.RESET}") - else: - logger.info(f"{Fore.YELLOW}Обновление Типов деятельности не требуется\n{Fore.RESET}") + if new_types: + try: + db.insert_activity_types(new_types) + logger.info(f"{Fore.GREEN}Обновлено Типов деятельности: {len(new_types)}{Fore.RESET}") + except Exception as e: + logger.error(f"{Fore.RED}Ошибка при сохранении Типов деятельности!{Fore.RESET}") + else: + logger.info(f"{Fore.YELLOW}Обновление Типов деятельности не требуется\n{Fore.RESET}") except Exception as e: logger.error(Fore.RED + f"Ошибка при обновлении базы данных: {e}" + Fore.RESET)