Исправил ошибку, при которой нужный тег не парсился с сервера из-за ограничения выборки в 50 тегов. Увеличил до 100 тегов #1
@@ -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(
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ class ClockifyConfig:
|
|||||||
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}"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user