88mydb = myclient ["komubot" ]
99mycol = 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+
1118def 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
2533def 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