Skip to content

Commit 7606b00

Browse files
update thread from 12 to 4
1 parent 341846a commit 7606b00

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

misc/report_spent_time.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,27 @@
88
mydb = myclient["komubot"]
99
mycol = mydb["komu_tracker_spent_time"]
1010

11+
def get_call_time_simple(aw, email, daystart, dayend):
12+
events = aw.get_events(f"aw-watcher-window_{email}", start=daystart, end=dayend)
13+
events = [e for e in events if "title" in e.data and e.data["title"] == "KomuTracker - Google Chrome"]
14+
komutracker_duration = sum((e.duration for e in events), timedelta())
15+
16+
return komutracker_duration.total_seconds()
17+
1118
def get_call_time(aw, email, timeperiods):
1219
query = f"""
1320
events = flood(query_bucket(find_bucket("aw-watcher-window_{email}")));
21+
events = filter_keyvals(events, "title", ["KomuTracker - Google Chrome"]);
1422
afk = flood(query_bucket(find_bucket("aw-watcher-afk_{email}")));
1523
afk = filter_keyvals(afk, "status", ["afk"]);
1624
events = filter_period_intersect(events, afk);
17-
RETURN = {{"events": events}};
25+
duration = sum_durations(events);
26+
RETURN = {{"events": events, "duration": duration}};
1827
"""
1928
events = aw.query(query=query, timeperiods=timeperiods)
29+
total_duration = events[0]["duration"]
2030

21-
events = [e for e in events[0]["events"] if "title" in e["data"] and e["data"]["title"] == "KomuTracker - Google Chrome"]
22-
23-
return sum((e.duration for e in events), timedelta())
31+
return total_duration
2432

2533
def get_spent_time(aw, email, timeperiods):
2634
canonicalQuery = queries.canonicalEvents(
@@ -62,7 +70,7 @@ def main():
6270
dayend = daystart + timedelta(days=1)
6371

6472
timeperiods = [(daystart.astimezone(), dayend.astimezone())]
65-
73+
6674
for email in users:
6775
try:
6876
try:
@@ -71,14 +79,12 @@ def main():
7179
total_duration = get_spent_time(aw, f"{email}.ncc", timeperiods)
7280

7381
# add time for afk but
74-
events = aw.get_events(f"aw-watcher-window_{email}", start=daystart, end=dayend)
75-
events = [e for e in events if "title" in e.data and e.data["title"] == "KomuTracker - Google Chrome"]
76-
komtracker_duration = sum((e.duration for e in events), timedelta())
82+
komutracker_duration = get_call_time_simple(aw, email, daystart, dayend)
7783

7884
rec = {
7985
"email": email,
8086
"spent_time": total_duration,
81-
"call_time" : komtracker_duration.total_seconds(),
87+
"call_time" : komutracker_duration,
8288
"date" : datetime.now().strftime("%m/%d/%Y"),
8389
"wfh": True
8490
}

0 commit comments

Comments
 (0)