Исправил ошибку, при которой нужный тег не парсился с сервера из-за ограничения выборки в 50 тегов. Увеличил до 100 тегов #1

Merged
e.vlasov merged 1 commits from dev into master 2025-06-19 10:19:48 +03:00
2 changed files with 7 additions and 2 deletions

View File

@@ -36,6 +36,8 @@ class ClockifyAPI(ClockifyConfig):
logger.info(f"Получено задач: {len(activities)}") logger.info(f"Получено задач: {len(activities)}")
time_worked_out_total = 0 time_worked_out_total = 0
tags = self.get_tags(**{"page-size": self.tags_count})
result = [] result = []
for activity in tqdm(activities, desc="Парсинг задач"): for activity in tqdm(activities, desc="Парсинг задач"):
if not activity.get("tagIds"): if not activity.get("tagIds"):
@@ -45,9 +47,9 @@ class ClockifyAPI(ClockifyConfig):
start = datetime.strptime(activity["timeInterval"]["start"], config.DATETIME_FORMAT) start = datetime.strptime(activity["timeInterval"]["start"], config.DATETIME_FORMAT)
end = datetime.strptime(activity["timeInterval"]["end"], config.DATETIME_FORMAT) if activity["timeInterval"]["end"] else None end = datetime.strptime(activity["timeInterval"]["end"], config.DATETIME_FORMAT) if activity["timeInterval"]["end"] else None
time_worked_out_total += time_to_hour((end if end else datetime.utcnow()) - start) time_worked_out_total += time_to_hour((end if end else datetime.utcnow()) - start)
tag = [tag for tag in self.get_tags() if tag.id == tag_id][0] tag = [tag for tag in tags if tag.id == tag_id]
try: try:
task_id = parse_task_id(tag.title) task_id = parse_task_id(tag[0].title)
except ValueError: except ValueError:
logger.info(f'{activity["timeInterval"]["start"]}: {activity["description"]} - Неправильный формат тега {tag}') logger.info(f'{activity["timeInterval"]["start"]}: {activity["description"]} - Неправильный формат тега {tag}')
continue continue
@@ -79,6 +81,7 @@ class ClockifyAPI(ClockifyConfig):
Получает с сервера Clockify теги Получает с сервера Clockify теги
name: str - optional name: str - optional
archived: bool - optional archived: bool - optional
page-size: int - optional
""" """
tags = requests.get(self.base_url + self.tags_url, params=kwargs, headers={"X-API-KEY": self.token}).json() tags = requests.get(self.base_url + self.tags_url, params=kwargs, headers={"X-API-KEY": self.token}).json()
return [Tag( return [Tag(

View File

@@ -9,6 +9,8 @@ class ClockifyConfig:
self.time_entries_url = f"/{self.workspace_url}/user/{self.user_id}/time-entries" self.time_entries_url = f"/{self.workspace_url}/user/{self.user_id}/time-entries"
self.user_url = "/user" self.user_url = "/user"
self.projects_url = f"{self.workspace_url}/projects" self.projects_url = f"{self.workspace_url}/projects"
self.tags_count = 100
def update_time_entry(self, activity_id): def update_time_entry(self, activity_id):
return f"{self.workspace_url}/time-entries/{activity_id}" return f"{self.workspace_url}/time-entries/{activity_id}"