diff options
Diffstat (limited to 'src/Watcher/watch_log.py')
-rwxr-xr-x | src/Watcher/watch_log.py | 58 |
1 files changed, 26 insertions, 32 deletions
diff --git a/src/Watcher/watch_log.py b/src/Watcher/watch_log.py index c8fbc95..250670d 100755 --- a/src/Watcher/watch_log.py +++ b/src/Watcher/watch_log.py @@ -2,8 +2,8 @@ import os import csv import time import get_windows as x -import afk -from time_operations import time_difference, time_addition +import afk as y +from time_operations import time_difference # get current time whenever the function is called def get_time(): @@ -15,15 +15,19 @@ def get_date(): d = os.popen('''date +"%Y-%m-%d"''').read() return d[0:-1] -def append_line_in_csv(date, opened_time, time_spent, window_name): +def append_line_in_csv(date, opened_time, closed_time, window_name): user = os.getlogin() - filename = "/home/"+user+"/.cache/Watcher/raw_data/"+date+".csv" - Data = [opened_time, time_spent, window_name] + time_spent = time_difference(opened_time, closed_time) + filename = "/home/"+os.getlogin()+"/.cache/Watcher/raw_data/"+date+".csv" + Data = [closed_time, time_spent, window_name] with open(filename, 'a') as csvfile: csvwriter = csv.writer(csvfile, delimiter='\t') csvwriter.writerow(Data) # Expected Behaviour == if date got changed then append line in new csv file after initializing the csv file +# also if usr is AFK then append line + +# TODO: AFK feature devlopement (it will be developed after completing alpha product (after whole project up end running) def log_creation(): filename = "/home/"+os.getlogin()+"/.cache/Watcher/raw_data/"+get_date()+".csv" @@ -31,37 +35,27 @@ def log_creation(): with open(filename, 'a') as csvfile: csvwriter = csv.writer(csvfile, delimiter='\t') csvwriter.writerow([get_time(), "00:00:00", ""]) + logout_time = os.popen("tail -n1 " + filename).read().split("\t")[0] + append_line_in_csv(get_date(), logout_time, get_time(), "User-logged-in") - # appending line at login - logged_out_time = os.popen("tail -n1 " + filename).read().split("\t")[0] - time_away_from_laptop = time_difference(logged_out_time, get_time()) - append_line_in_csv(get_date(), get_time(), time_away_from_laptop, "User-logged-in") + afk = False + afkTimeout = 3 # timeout in minutes while True: - actv_window = x.active_window() - if x.is_window_changed(actv_window): - next_actv_window = x.active_window() - date = get_date() - opened_at = get_time() - time.sleep(0.5) - time_spent = "00:00:01" - append_line_in_csv(date, opened_at, time_spent, next_actv_window) + opened_at = get_time() + previous_window = x.active_window() - else: - actv_window = x.active_window() - date = get_date() - now = get_time() # for next_window its the opening time - last_line = os.popen("tail -n1 " + filename).read().split("\t") - opened_at = last_line[0] - os.popen("""sed -i -e '$ d' """ + filename) - time.sleep(1) - time_spnt = time_difference(opened_at, get_time()) + if (y.returned_from_afk(afk, afkTimeout)): + previous_window = "AFK" + afk = False - if afk.IsAFK(): - append_line_in_csv(date, opened_time, time_spent, "AFK") - else: - append_line_in_csv(date, opened_at, time_spnt, actv_window) + if (x.is_window_changed(previous_window, afk, afkTimeout) and not afk): + if(y.is_afk(afkTimeout)): + afk = True + closed_at = get_time() # for next_window its the opening time + date = get_date() + filename = "/home/"+os.getlogin()+"/.cache/Watcher/raw_data/"+date+".csv" + append_line_in_csv(date, opened_at, closed_at, previous_window) if __name__ == "__main__": - opened_at = os.popen("""tail -n1 ~/.cache/Watcher/raw_data/2022-07-07.csv""").read().split("\t")[1] - print(opened_at) + log_creation() |