diff --git a/dmapp/config.py b/dmapp/config.py new file mode 100644 index 0000000..996d122 --- /dev/null +++ b/dmapp/config.py @@ -0,0 +1,6 @@ +DESKTOPS = ("Work", + "Browse", + "Write", + "Learn", + "Idle", + "Self") \ No newline at end of file diff --git a/dmapp/dmcore/__init__.py b/dmapp/dmcore/__init__.py new file mode 100644 index 0000000..826dded --- /dev/null +++ b/dmapp/dmcore/__init__.py @@ -0,0 +1,14 @@ +class ActiveDesktop: + + def __init__(self, desktops, unlabeled = "Other"): + self.desktops = desktops + + + def active_workspace(): + + workspaces = subprocess.check_output(["wmctrl", "-d"]) \ + .decode("utf-8").strip("\n").split("\n") + + for workspace in workspaces: + if workspace[3] == "*": + return int(workspace[0]) \ No newline at end of file diff --git a/dmapp/dmdb/__init__.py b/dmapp/dmdb/__init__.py new file mode 100644 index 0000000..d6b55fb --- /dev/null +++ b/dmapp/dmdb/__init__.py @@ -0,0 +1,6 @@ +from pymongo import MongoClient + +client = MongoClient() + +db = client.deskmeter +switches = db.switch \ No newline at end of file diff --git a/dmapp/dmweb/dm.py b/dmapp/dmweb/dm.py index d5413a9..8ed7af0 100644 --- a/dmapp/dmweb/dm.py +++ b/dmapp/dmweb/dm.py @@ -146,7 +146,7 @@ def get_period_totals(start, end): #TODO _1 remove #day += total rows.append( {"ws": ws, - "total" : datetime.timedelta(seconds=total)}) + "total" : convert_timedelta(datetime.timedelta(seconds=total)) }) #TODO _1 remove #rows.append({"ws":"sum","total": day}) @@ -172,3 +172,11 @@ def local_date(date, convert=False): if convert: return pytz.utc.localize(date, is_dst=None).astimezone(bsas) return date.replace(tzinfo=bsas) + + +def convert_timedelta(duration): + days, seconds = duration.days, duration.seconds + hours = days * 24 + seconds // 3600 + minutes = (seconds % 3600) // 60 + seconds = (seconds % 60) + return "{}:{:02d}:{:02d}".format(hours, minutes, seconds) diff --git a/dmapp/dmweb/dmcal.py b/dmapp/dmweb/dmcal.py index 5649296..0de9875 100644 --- a/dmapp/dmweb/dmcal.py +++ b/dmapp/dmweb/dmcal.py @@ -42,6 +42,77 @@ class DMHTMLCalendar(calendar.HTMLCalendar): return returnstr + def oneweek(self,month,week): + + start_day = None + end_day = None + + for (d, wd) in week: + if d == 0: + continue + else: + start_day = d + break + + + for (d, wd) in reversed(week): + if d == 0: + continue + else: + end_day = d + break + + + start = datetime.datetime(2020, month, start_day).replace(hour=0, + minute=0, + second=0) + + end = datetime.datetime(2020, month, end_day).replace (hour=23, + minute=59, + second=59) + + rows = get_period_totals( local_date(start), + local_date(end)) + + returnstr = "
| {} | {} |