From b7a734da05eff171717348969d79c89359e5844b Mon Sep 17 00:00:00 2001 From: Eduard Date: Thu, 15 May 2025 17:08:41 +0300 Subject: [PATCH] 0 --- api.py | 23 ++++++----------------- classes.py | 5 +++-- main.py | 13 +++++-------- 3 files changed, 14 insertions(+), 27 deletions(-) diff --git a/api.py b/api.py index 437e0e5..7b56f1e 100644 --- a/api.py +++ b/api.py @@ -1,4 +1,4 @@ -from datetime import datetime, timezone +from datetime import datetime, timedelta, timezone import logging import requests @@ -15,18 +15,6 @@ WORKSPACE_ID = config.CLOCKIFY_WORKSPACE_ID USER_ID = config.CLOCKIFY_USER_ID -""" -{ - "time_entry": { - "issue_id": 28882, - "hours": 0.55, - "activity_id": 9, - "comments": "Дейлик" - } -} -""" - - class ClockifyAPI(ClockifyConfig): def __init__(self, token: str): self.token = self._check_token(token) @@ -46,8 +34,8 @@ class ClockifyAPI(ClockifyConfig): result = [] for activity in tqdm(activities, desc="Парсинг задач"): for tag_id in activity["tagIds"]: - start = datetime.strptime(activity["timeInterval"]["start"], config.DATETIME_FORMAT) - end = datetime.strptime(activity["timeInterval"]["end"] or str(datetime.now(timezone.utc).strftime(config.DATETIME_FORMAT)), config.DATETIME_FORMAT) + start = datetime.strptime(activity["timeInterval"]["start"], config.DATETIME_FORMAT) + timedelta(hours=3) + end = datetime.strptime(activity["timeInterval"]["end"] or str(datetime.now(timezone.utc).strftime(config.DATETIME_FORMAT)), config.DATETIME_FORMAT) + timedelta(hours=3) time_worked_out_total += time_to_hour(end - start) tag = [tag for tag in self.get_tags(workspace_id=WORKSPACE_ID) if tag.id == tag_id][0] task_id, task_title = tag.title.split(" - ") @@ -58,7 +46,8 @@ class ClockifyAPI(ClockifyConfig): task_title=task_title, description=activity["description"], time_spent=time_to_hour(end - start), - date=end + date_start=start, + date_end=end ) ) logging.info(f"Сохранено задач: {len(result)}") @@ -98,7 +87,7 @@ class ClockifyAPI(ClockifyConfig): def _check_token(self, token: str) -> str: - resp = requests.get(self.base_url + self.config.user_url, headers={"X-API-KEY": token}) + resp = requests.get(self.base_url + self.user_url, headers={"X-API-KEY": token}) if not resp.ok: logging.error(resp.json()) raise InvalidToken diff --git a/classes.py b/classes.py index 717a448..eaef1c5 100644 --- a/classes.py +++ b/classes.py @@ -9,14 +9,15 @@ class Activity: task_title: str description: str time_spent: float - date: datetime = datetime.now() + date_start: datetime + date_end: datetime @property def is_tracked(self): return self.description.startswith("*") def __str__(self): - return f'{self.date}: {self.description.strip("*")} для задачи "{self.task_title}"' + return f'{self.date_start}: {self.description.strip("*")} для задачи "{self.task_title}"' @dataclass diff --git a/main.py b/main.py index 5703958..e055014 100644 --- a/main.py +++ b/main.py @@ -9,14 +9,11 @@ from utils import today_start, today_end def main(): clock = ClockifyAPI(config.CLOCKIFY_TOKEN) red = RedmineAPI(config.REDMINE_TOKEN) - if False: - tracked_activities = red.track_activities(clock.get_activities( - start=today_start(), - end=today_end() - )) - clock.mark_tracked(tracked_activities) - - + tracked_activities = red.track_activities(clock.get_activities( + start=today_start(), + end=today_end() + )) + clock.mark_tracked(tracked_activities) if __name__ == "__main__":