-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathdump.py
More file actions
57 lines (46 loc) · 1.65 KB
/
Copy pathdump.py
File metadata and controls
57 lines (46 loc) · 1.65 KB
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
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env python
"""
This is an example script to dump the fitbit data for the previous day.
This can be set up in a cronjob to dump data daily.
Create a config file at ~/.fitbit.conf with the following:
[fitbit]
user_id: XXXXX
uid: 123456
u: <large string>
dump_dir: ~/Dropbox/fitbit
"""
import time
import os
import ConfigParser
import fitbit
CONFIG = ConfigParser.ConfigParser()
CONFIG.read(["fitbit.conf", os.path.expanduser("~/.fitbit.conf")])
DUMP_DIR=os.path.expanduser(CONFIG.get('fitbit', 'dump_dir'))
def client():
return fitbit.Client(CONFIG.get('fitbit', 'user_id'), CONFIG.get('fitbit', 'uid'), CONFIG.get('fitbit', 'u'))
def dump_to_str(data):
return "\n".join(["%s,%s" % (str(ts), v) for ts, v in data])
def dump_to_file(data_type, date, data):
directory = "%s/%s" % (DUMP_DIR, data_type)
if not os.path.isdir(directory):
os.makedirs(directory)
with open("%s/%s.csv" % (directory, str(date)), "w") as f:
f.write(dump_to_str(data))
def dump_day(date):
c = client()
dump_to_file("steps", date, c.intraday_steps(date))
time.sleep(5)
dump_to_file("calories", date, c.intraday_calories_burned(date))
time.sleep(5)
#dump_to_file("active_score", date, c.intraday_active_score(date))
dump_to_file("floors", date, c.intraday_floors(date))
time.sleep(5)
dump_to_file("distance", date, c.intraday_distance(date))
time.sleep(5)
dump_to_file("sleep", date, c.intraday_sleep(date))
time.sleep(5)
if __name__ == '__main__':
#import logging
#logging.basicConfig(level=logging.DEBUG)
import datetime
dump_day((datetime.datetime.now().date() - datetime.timedelta(days=1)))