#!/usr/bin/python3 import pygal import csv import time import datetime import hashlib from collections import OrderedDict import inputs import timers import formatting as f print("welcome to lock-n-log, the best way to organise and analyse your focus time!") ratio = 1 # default for now sesh_type = "focus" print("tag for session? ", end="", flush=True) tag = input() if tag == "": tag = "work" 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': timer = "timer" 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() else: timer = "stopwatch" timer_length = 0 print("whenever you're ready, press enter to start", end="", flush=True) input() sesh_list = [] elapsed, rest, start = timers.timer(timer_length, ratio, 0) while rest > 0: # print("\nneed to rest " + str(int(rest))) session = OrderedDict() session["id"] = hashlib.sha256(str(start).encode('utf8')).hexdigest() session["date"] = start.strftime("%Y-%m-%d") session["start"] = start.strftime("%H:%M:%S") session["elapsed"] = int(elapsed) session["type"] = sesh_type session["tag"] = tag session["timer"] = timer session["ratio"] = ratio sesh_list.append(session) sesh_type = "rest" elapsed, dontcare, start = timers.timer(rest, 0, 0) if elapsed >= rest: # if exceeded break bank, then focus session ended break else: rest -= elapsed session = OrderedDict() session["id"] = hashlib.sha256(str(start).encode('utf8')).hexdigest() session["date"] = start.strftime("%Y-%m-%d") session["start"] = start.strftime("%H:%M:%S") session["elapsed"] = int(elapsed) session["type"] = sesh_type session["tag"] = tag session["timer"] = timer session["ratio"] = ratio sesh_list.append(session) sesh_type = "focus" elapsed, rest, start = timers.timer(0, ratio, rest) if rest == 0: break print("\nfocus session finished!\nlogging...") session = OrderedDict() session["id"] = hashlib.sha256(str(start).encode('utf8')).hexdigest() session["date"] = start.strftime("%Y-%m-%d") session["start"] = start.strftime("%H:%M:%S") session["elapsed"] = int(elapsed) session["type"] = sesh_type session["tag"] = tag session["timer"] = timer session["ratio"] = ratio sesh_list.append(session) for session in sesh_list: print(session) #f.sesh_to_log(session, "main.csv")