Generalize show-week slightly.

This commit is contained in:
Nelson Elhage 2009-12-29 14:05:36 -05:00
parent 7c4f8245a5
commit c631489c69
2 changed files with 41 additions and 15 deletions

View File

@ -4,35 +4,62 @@ from dateutil.parser import parse
import datetime import datetime
import dateutil.tz as tz import dateutil.tz as tz
import sys import sys
import os
from mako.template import Template from mako.template import Template
if len(sys.argv) < 2:
print >>sys.stderr, "Usage: %s TEMPLATE [WEEK]"
sys.exit(1)
template = sys.argv[1]
START = datetime.datetime(2009, 12, 21, 6) START = datetime.datetime(2009, 12, 21, 6)
if len(sys.argv) == 3:
week = parse(sys.argv[2], default=START)
else:
week = START
with open('out/report.yml') as r: with open('out/report.yml') as r:
report = yaml.safe_load(r) report = yaml.safe_load(r)
with open('bloggers.yml') as f: with open('bloggers.yml') as f:
users = yaml.safe_load(f) users = yaml.safe_load(f)
week = (parse(sys.argv[1], default=START) - START).days / 7 week = (week - START).days / 7
week_start = START + (week * datetime.timedelta(7)) week_start = START + (week * datetime.timedelta(7))
week_end = START + ((week + 1) * datetime.timedelta(7)) week_end = START + ((week + 1) * datetime.timedelta(7))
good = [] good = []
lame = [] lame = []
skip = [] skip = []
userlist = []
class User(object):
pass
for (name, weeks) in report.items(): for (un, rec) in users.items():
user_start = parse(users[name]['start'], default=START) u = User()
u.username = un
u.links = rec['links']
u.start = rec['start']
u.weeks = report.get(un, [])
userlist.append(u)
def user_key(u):
return (u.start, u.username)
userlist.sort(key=user_key)
for u in userlist:
user_start = parse(u.start, default=START)
if user_start > week_start: if user_start > week_start:
skip.append(name) skip.append(u)
continue elif len(u.weeks) <= week or not u.weeks[week]:
elif len(weeks) <= week or not weeks[week]: lame.append(u)
lame.append(name)
else: else:
good.append(name) good.append(u)
print Template(filename=sys.argv[2], output_encoding='utf-8').render( print Template(filename=template, output_encoding='utf-8').render(
week=week, week_start=week_start,week_end=week_end, week=week, week_start=week_start,week_end=week_end,
good=good, lame=lame, skip=skip, users=users, report=report) good=good, lame=lame, skip=skip, userlist=userlist)

View File

@ -3,9 +3,8 @@ To: iron-blogger@mit.edu
People who posted: People who posted:
% for u in sorted(good): % for u in sorted(good):
<% posts = report[u][week] %>\ ${u.username}:
${u}: % for p in u.weeks[week]:
% for p in posts:
- ${p['url']} - ${p['url']}
% endfor % endfor
% endfor % endfor
@ -13,12 +12,12 @@ People who posted:
People who failed to post: People who failed to post:
<% cash = 0 %>\ <% cash = 0 %>\
% for u in sorted(lame): % for u in sorted(lame):
${u} ${u.username}
% endfor % endfor
People who have not yet started: People who have not yet started:
% for u in sorted(skip): % for u in sorted(skip):
${u} ${u.username}
% endfor % endfor
Beer pool: Beer pool: