|
|
Index: view.py
===================================================================
--- view.py (revision 33)
+++ view.py (revision 51)
@@ -6,45 +6,12 @@
import sys
from mixi import Mixi, load
-CMDS = ["all", "diary", "footprint", "per_weekday", "per_hour", "latest"]
+CMDS = ["latest", "all", "diary", "footprint", "per_weekday", "per_hour"]
WEEKDAYS = u'譛育↓豌エ譛ィ驥大悄譌・'
def all(mixi):
- logs = mixi.logs
- diaries = mixi.diaries
+ latest(mixi, days=None)
- for idx, (y,m,d,hr,mn,id,title) in enumerate(diaries):
- start = datetime.datetime(y,m,d,hr,mn)
- if idx < len(diaries) - 1:
- to = datetime.datetime(*diaries[idx + 1][:5])
- else:
- to = datetime.datetime.now()
- delta = to - start
- delta_hours = delta.days * 24 + delta.seconds / 60.0 / 60
- footprint = len(mixi.get_log(start=start, to=to))
-
- print "%04d.%02d.%02d(%s) %02d:%02d %-20s (%d / %4.1f; avg %.1f per hour)"%(y, m, d, WEEKDAYS[start.weekday()], hr, mn, title, footprint, delta_hours, footprint / delta_hours)
-
- names = {}
- days = {}
- hours = {}
- by_ids = {}
- for y,m,d,h,s,id,name in logs:
- day = datetime.date(y, m, d)
- k = '%04d.%02d.%02d(%s)'%(y,m,d, WEEKDAYS[day.weekday()])
- days[k] = days.get(k, 0) + 1
- hours[h] = hours.get(h, 0) + 1
- by_ids[id] = by_ids.get(id, 0) + 1
- names[id] = name
-
- mygraph.draw(days)
- mygraph.draw(hours)
-
- by_names = {}
- for id in by_ids:
- by_names[names[id]] = by_ids[id]
- mygraph.draw(by_names, True)
-
def per_hour(mixi):
logs = mixi.logs
start = datetime.datetime(*logs[0][0:4])
@@ -64,11 +31,14 @@
logs = mixi.logs
diaries = mixi.diaries
- limit = datetime.datetime.now() - datetime.timedelta(days=days)
+ if days:
+ limit = datetime.datetime.now() - datetime.timedelta(days=days)
+ else:
+ limit = None
for idx, (y,m,d,hr,mn,id,title) in enumerate(diaries):
start = datetime.datetime(y,m,d,hr,mn)
- if start < limit: continue
+ if limit and start < limit: continue
if idx < len(diaries) - 1:
to = datetime.datetime(*diaries[idx + 1][:5])
else:
@@ -77,7 +47,7 @@
delta_hours = delta.days * 24 + delta.seconds / 60.0 / 60
footprint = len(mixi.get_log(start=start, to=to))
- print "%04d.%02d.%02d(%s) %02d:%02d %-20s (%d / %4.1f; avg %.1f per hour)"%(y, m, d, WEEKDAYS[start.weekday()], hr, mn, title, footprint, delta_hours, footprint / delta_hours)
+ print "%04d.%02d.%02d(%s) %02d:%02d %s (%2d / %4.1f; avg %.1f per hour)"%(y, m, d, WEEKDAYS[start.weekday()], hr, mn, title + ' ' * (20 - mygraph.str_width(title)), footprint, delta_hours, footprint / delta_hours)
names = {}
days = {}
@@ -85,7 +55,7 @@
by_ids = {}
for y,m,d,h,s,id,name in logs:
day = datetime.datetime(y, m, d, 0, 0)
- if day < limit: continue
+ if limit and day < limit: continue
k = '%04d.%02d.%02d(%s)'%(y,m,d, WEEKDAYS[day.weekday()])
days[k] = days.get(k, 0) + 1
hours[h] = hours.get(h, 0) + 1
@@ -102,12 +72,12 @@
def main():
- cmd = sys.argv[1] if len(sys.argv) > 1 else "all"
+ cmd = sys.argv[1] if len(sys.argv) > 1 else CMDS[0]
if not (cmd in CMDS):
print "usage: python view.py []"
print " is:"
for c in CMDS:
- print " %s"%(c)
+ print " %s%s"%(c, " (default)" if c == CMDS[0] else "")
sys.exit(1)
mixi = Mixi()
|