diff options
| author | hmj6502 <hashim@hmj6502.com> | 2025-12-16 23:10:12 +0000 |
|---|---|---|
| committer | hmj6502 <hashim@hmj6502.com> | 2025-12-16 23:10:12 +0000 |
| commit | 4a049aa2e0ade9c508bd2e62527ed615e1639546 (patch) | |
| tree | 835eeceed2796f1efd9805576890b58819f6939d /main.py | |
| download | lock-n-log-4a049aa2e0ade9c508bd2e62527ed615e1639546.tar.gz lock-n-log-4a049aa2e0ade9c508bd2e62527ed615e1639546.tar.bz2 lock-n-log-4a049aa2e0ade9c508bd2e62527ed615e1639546.zip | |
initial commit
basic timer functionality; writing to log
Diffstat (limited to 'main.py')
| -rw-r--r-- | main.py | 50 |
1 files changed, 50 insertions, 0 deletions
@@ -0,0 +1,50 @@ +import pygal +import csv +import time +import datetime +import hashlib +from collections import OrderedDict +import inputs +import formatting as f + +print("welcome to lock-n-log, the best way to organise and analyse your focus time!") + +valid_timer_types = ('t', 's') +option = False +while not option: + print("(t)imer or (s)topwatch? ", end="", flush=True) + option = inputs.get_valid_char(valid_timer_types) + print("") + +if option == 't': + print("timer length (in minutes)? ", end="", flush=True) + timer_length = inputs.get_pos_int() + while not timer_length: + print("please enter a positive integer") + print("timer length (in minutes)? ", end="", flush=True) + timer_length = inputs.get_pos_int() + + # need timer to be accurate; sleep until next second start? processing time + # although small will still add to time so needs to be avoided + # timer loop + time_left = timer_length #* 60 + time_start = time.time() + while time_left: + # see https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797 + print("\x1b[2K\r" + f.sec_to_min(time_left), end="", flush=True) + time_left -= 1 + time.sleep(1) + + print("\nfocus session finished!\nlogging...") + session = OrderedDict() + session["id"] = hashlib.sha256(str(time_start).encode('utf8')).hexdigest() + session["date"] = time.strftime("%Y-%m-%d") + session["start"] = time.strftime("%H:%M") + session["elapsed"] = timer_length * 60 + session["type"] = "focus" + session["tag"] = "work" + session["timer"] = "timer" + session["ratio"] = 0.2 + #print(session) + + f.sess_to_log(session, "lock-n-log.csv") |
