summaryrefslogtreecommitdiff
path: root/formatting.py
blob: 04f213d7841f13b01dcc5bdbda915b14ef024b1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import os
import csv

def sec_to_min(sec):
    """converts seconds to MM:SS"""
    mins = int(sec / 60)
    sec_left = sec % 60
    return str(mins).zfill(2) + ":" + str(sec_left).zfill(2)

def sesh_to_log(session, filename):
    """writes session dict to logfile specified"""
    fields = []
    for field in session.keys():
        fields.append(field)

    if os.path.exists(filename):
        logmode = 'a'
    else:
        logmode = 'w'
    with open(filename, logmode) as logfile:
        writer = csv.DictWriter(logfile, fieldnames=fields)
        if logmode == 'w':
            writer.writeheader()
        writer.writerow(session)

def per_tag_per_day(file):
    """returns list of dicts, each has date, tag and time spent per tag"""
    reader = csv.DictReader(file)

    rows = [] # need to make into list to transverse backwards
    for row in reader:
        rows.append(row)

# list of dicts; each dict is tag: time_spent
    day_times = []
    cur = -1
    for i in range(len(rows)):
        date = rows[i]['date']
        tag = rows[i]['tag']
        if i > 0 and date == rows[i-1]['date']:
            if rows[i]['type'] == 'focus':
                day_times[cur][tag] = day_times[cur].get(tag, 0) + int(rows[i]['elapsed'])
        else:
            cur += 1
            day_times.append({"date": date, tag: int(rows[i]['elapsed'])})

    return day_times