summaryrefslogtreecommitdiff
path: root/main.py
diff options
context:
space:
mode:
authorhmj6502 <hashim@hmj6502.com>2025-12-16 23:10:12 +0000
committerhmj6502 <hashim@hmj6502.com>2025-12-16 23:10:12 +0000
commit4a049aa2e0ade9c508bd2e62527ed615e1639546 (patch)
tree835eeceed2796f1efd9805576890b58819f6939d /main.py
downloadlock-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.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/main.py b/main.py
new file mode 100644
index 0000000..f4f7a03
--- /dev/null
+++ b/main.py
@@ -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")