Много чего сделал
This commit is contained in:
68
track.py
68
track.py
@@ -59,7 +59,7 @@ def main():
|
||||
)
|
||||
if not WORKSPACE_ID or not USER_ID:
|
||||
if not os.path.exists(config.ENV_TXT):
|
||||
logging.info(f"{Fore.YELLOW}Необходимые переменные не были обнаружены. Попытка получения...{Fore.RESET}")
|
||||
logger.info(f"{Fore.YELLOW}Необходимые переменные не были обнаружены. Попытка получения...{Fore.RESET}")
|
||||
clock.getenvs()
|
||||
else:
|
||||
logger.info(f'{Fore.YELLOW}Проверьте файл "{config.ENV_TXT}". Если необходимых переменных в нём нет, то просто удалите его.{Fore.RESET}')
|
||||
@@ -82,34 +82,56 @@ def main():
|
||||
db.insert_user(**clock_user, **red_user)
|
||||
if args.init_db:
|
||||
logger.info(Fore.YELLOW + "Обновление базы данных..." + Fore.RESET)
|
||||
|
||||
try:
|
||||
logging.info(f"{Fore.YELLOW}Получение Тегов{Fore.RESET}")
|
||||
tags = clock.get_tags(is_updating=True, **{"page-size": clock.tags_count})
|
||||
# Обновление Тегов
|
||||
logger.info(f"{Fore.YELLOW}Обновление Тегов...\n{Fore.RESET}")
|
||||
|
||||
logging.info(f"{Fore.YELLOW}Получение Задач с Redmine{Fore.RESET}")
|
||||
issues = [red.get_issue(parse_task_id(tag.title)) for tag in tags]
|
||||
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 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}")
|
||||
|
||||
logging.info(f"{Fore.YELLOW}Получение Проектов Ветро{Fore.RESET}")
|
||||
vetro_projects = clock.get_vetro_projects()
|
||||
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 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}")
|
||||
|
||||
logging.info(f"{Fore.YELLOW}Получение Типов деятельности{Fore.RESET}")
|
||||
activity_types = red.get_time_entry_activities()
|
||||
# # Обновление Проектов Ветро
|
||||
# logger.info(f"{Fore.YELLOW}Получение Проектов Ветро{Fore.RESET}")
|
||||
# vetro_projects = clock.get_vetro_projects()
|
||||
|
||||
# logger.info(f"{Fore.YELLOW}Получение Типов деятельности{Fore.RESET}")
|
||||
# activity_types = red.get_time_entry_activities()
|
||||
|
||||
if tags:
|
||||
logging.info(f"{Fore.YELLOW}Сохранение Тегов{Fore.RESET}")
|
||||
db.insert_tags(tags)
|
||||
# if vetro_projects:
|
||||
# logger.info(f"{Fore.YELLOW}Сохранение Проектов Ветро{Fore.RESET}")
|
||||
# db.insert_vetro_projects(vetro_projects)
|
||||
|
||||
if issues:
|
||||
logging.info(f"{Fore.YELLOW}Сохранение Задач Redmine{Fore.RESET}")
|
||||
db.insert_tasks(issues)
|
||||
|
||||
if vetro_projects:
|
||||
logging.info(f"{Fore.YELLOW}Сохранение Проектов Ветро{Fore.RESET}")
|
||||
db.insert_vetro_projects(vetro_projects)
|
||||
|
||||
if activity_types:
|
||||
logging.info(f"{Fore.YELLOW}Сохранение Типов деятелности{Fore.RESET}")
|
||||
db.insert_activity_types(activity_types)
|
||||
# if activity_types:
|
||||
# logger.info(f"{Fore.YELLOW}Сохранение Типов деятелности{Fore.RESET}")
|
||||
# db.insert_activity_types(activity_types)
|
||||
except Exception as e:
|
||||
logger.error(Fore.RED + f"Ошибка при обновлении базы данных: {e}" + Fore.RESET)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user