add accumulation of captured time

This commit is contained in:
2025-11-13 19:04:55 +01:00
parent a54b19b938
commit 0e48ce265c
5 changed files with 26 additions and 4 deletions

View File

@@ -42,3 +42,8 @@ class TimeSlot():
def end_now(self):
self.end = datetime.now()
def duration(self) -> datetime.timedelta:
end = self.end
if not end: end = datetime.now()
return self.end - self.start

View File

@@ -1,4 +1,6 @@
from datetime import date, datetime
import re
from datetime import date, datetime, timedelta
from model.DataStore import DataStore
from model.TimeSlot import TimeSlot
@@ -43,5 +45,12 @@ class TimeSlotContainer:
def delete_time_slot(self, ts: TimeSlot):
raise NotImplementedError
def accumulate_duration(self, query: str) -> timedelta:
pattern = re.compile(query)
return sum([ts.duration() for ts in self._ds.get_all_time_slots()
if pattern.search(ts.name) ], start=timedelta(0))
time_slot_container = TimeSlotContainer(DataStore("data.json"))
try:
time_slot_container = TimeSlotContainer(DataStore("data.json"))
except FileNotFoundError:
time_slot_container = TimeSlotContainer(DataStore("data.json", create=True))