diff --git a/api/clockify.py b/api/clockify.py index e332d7a..759dcf6 100644 --- a/api/clockify.py +++ b/api/clockify.py @@ -33,6 +33,8 @@ class ClockifyAPI(ClockifyConfig): """ time_entries_url = self.time_entries_url activities = requests.get(self.base_url + time_entries_url, params=kwargs, headers={"X-API-KEY": self.token}).json() + if not activities: + return [] logger.info(f"Получено задач: {len(activities)}") time_worked_out_total = 0 diff --git a/api/redmine.py b/api/redmine.py index cef1937..b48123b 100644 --- a/api/redmine.py +++ b/api/redmine.py @@ -31,9 +31,6 @@ class RedmineAPI(RedmineConfig): is_beginner = config.is_beginner if is_beginner: logging.info(f"{Fore.YELLOW}Делим трудочасы пополам{Fore.RESET}") - if len(activities) == 0: - logger.info(Fore.YELLOW + "Нет задач для занесения трудочасов" + Fore.RESET) - return tracked = [] for activity in tqdm(activities, desc="Занесение трудочасов"): if not(not activity.is_tracked and activity.date_end): diff --git a/db/db.py b/db/db.py index 0b6b0ba..bd28b71 100644 --- a/db/db.py +++ b/db/db.py @@ -257,4 +257,3 @@ class Database: ) finally: self.con.commit() - diff --git a/track.py b/track.py index 7ef94d1..9b257e4 100644 --- a/track.py +++ b/track.py @@ -46,8 +46,11 @@ def main(): if end: to_ = f"{end.day} {config.MONTHS.get(end.month)} {end.year} г." - - logger.info(Fore.YELLOW + "Парсим задачи" + (f" с {from_} " if start else " ") + (f"до {to_}" if end else "") + Fore.RESET) + + if start == end: + logger.info(f"{Fore.YELLOW}Парсим задачи за {from_}{Fore.RESET}") + else: + logger.info(Fore.YELLOW + "Парсим задачи" + (f" с {from_} " if start else " ") + (f"до {to_}" if end else "") + Fore.RESET) clock = ClockifyAPI( token=config.CLOCKIFY_TOKEN, @@ -82,18 +85,25 @@ def main(): try: logging.info(f"{Fore.YELLOW}Получение Тегов{Fore.RESET}") tags = clock.get_tags(is_updating=True, **{"page-size": clock.tags_count}) + logging.info(f"{Fore.YELLOW}Получение Задач с Redmine{Fore.RESET}") issues = [red.get_issue(parse_task_id(tag.title)) for tag in tags] + logging.info(f"{Fore.YELLOW}Получение Проектов Ветро{Fore.RESET}") vetro_projects = clock.get_vetro_projects() + logging.info(f"{Fore.YELLOW}Получение Типов деятельности{Fore.RESET}") activity_types = red.get_time_entry_activities() + logging.info(f"{Fore.YELLOW}Сохранение Тегов{Fore.RESET}") db.insert_tags(tags) + logging.info(f"{Fore.YELLOW}Сохранение Задач Redmine{Fore.RESET}") db.insert_tasks(issues) + logging.info(f"{Fore.YELLOW}Сохранение Проектов Ветро{Fore.RESET}") db.insert_vetro_projects(vetro_projects) + logging.info(f"{Fore.YELLOW}Сохранение Типов деятелности{Fore.RESET}") db.insert_activity_types(activity_types) except Exception as e: @@ -108,6 +118,9 @@ def main(): "page-size": args.page_size, }, ), key=lambda x: x.date_start) + if not activities: + logger.info(Fore.YELLOW + "Нет задач для занесения трудочасов" + Fore.RESET) + return db.insert_activities(activities) if args.debug: logger.debug("Пропускаем этап загрузки трудочасов")