From b5a9232467b68df24c346d95cad4c99794f02fc0 Mon Sep 17 00:00:00 2001 From: Eduard Date: Thu, 19 Jun 2025 10:18:32 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D1=83,=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80=D0=BE=D0=B9=20=D0=BD?= =?UTF-8?q?=D1=83=D0=B6=D0=BD=D1=8B=D0=B9=20=D1=82=D0=B5=D0=B3=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=BF=D0=B0=D1=80=D1=81=D0=B8=D0=BB=D1=81=D1=8F=20?= =?UTF-8?q?=D1=81=20=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=B0=20=D0=B8?= =?UTF-8?q?=D0=B7-=D0=B7=D0=B0=20=D0=BE=D0=B3=D1=80=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=D1=8B=D0=B1=D0=BE=D1=80?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=B2=2050=20=D1=82=D0=B5=D0=B3=D0=BE=D0=B2.=20?= =?UTF-8?q?=D0=A3=D0=B2=D0=B5=D0=BB=D0=B8=D1=87=D0=B8=D0=BB=20=D0=B4=D0=BE?= =?UTF-8?q?=20100=20=D1=82=D0=B5=D0=B3=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/clockify.py | 7 +++++-- config/clockify.py | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/api/clockify.py b/api/clockify.py index 2aba360..a7b4884 100644 --- a/api/clockify.py +++ b/api/clockify.py @@ -36,6 +36,8 @@ class ClockifyAPI(ClockifyConfig): logger.info(f"Получено задач: {len(activities)}") time_worked_out_total = 0 + tags = self.get_tags(**{"page-size": self.tags_count}) + result = [] for activity in tqdm(activities, desc="Парсинг задач"): if not activity.get("tagIds"): @@ -45,9 +47,9 @@ class ClockifyAPI(ClockifyConfig): start = datetime.strptime(activity["timeInterval"]["start"], config.DATETIME_FORMAT) 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) - 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: - task_id = parse_task_id(tag.title) + task_id = parse_task_id(tag[0].title) except ValueError: logger.info(f'{activity["timeInterval"]["start"]}: {activity["description"]} - Неправильный формат тега {tag}') continue @@ -79,6 +81,7 @@ class ClockifyAPI(ClockifyConfig): Получает с сервера Clockify теги name: str - 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() return [Tag( diff --git a/config/clockify.py b/config/clockify.py index 588c6f1..663f20d 100644 --- a/config/clockify.py +++ b/config/clockify.py @@ -9,6 +9,8 @@ class ClockifyConfig: self.time_entries_url = f"/{self.workspace_url}/user/{self.user_id}/time-entries" self.user_url = "/user" self.projects_url = f"{self.workspace_url}/projects" + + self.tags_count = 100 def update_time_entry(self, activity_id): return f"{self.workspace_url}/time-entries/{activity_id}"