diff --git a/import-feeds.py b/import-feeds.py index f4436aa..3506e22 100755 --- a/import-feeds.py +++ b/import-feeds.py @@ -27,12 +27,12 @@ def fetch_links(url): for (name, u) in users.items(): for e in u['links']: - (title, url) = e[0:2] + (title, url) = e[1:3] try: - e[0] = e[0].strip() + e[1] = e[1].strip() except: - e[0] = e[0] - if len(e) == 3: + e[1] = e[1] + if len(e) == 4: continue link = fetch_links(url) if link: diff --git a/render.py b/render.py index 735df0f..b092951 100755 --- a/render.py +++ b/render.py @@ -76,8 +76,6 @@ def render_template(path, week=None, **kwargs): week_start = START + (week * datetime.timedelta(7)) week_end = START + ((week + 1) * datetime.timedelta(7)) - good = [] - lame = [] skip = [] skipped_users = [] userlist = [] @@ -97,7 +95,9 @@ def render_template(path, week=None, **kwargs): u.end = rec.get('end') u.stop = rec.get('stop') u.skip = parse_skip(rec) - u.weeks = report.get(un, []) + u.posts = report.get(un, {}) + u.goodblogs = [] + u.lameblogs = [] userlist.append(u) @@ -118,21 +118,25 @@ def render_template(path, week=None, **kwargs): continue if u.end and parse(u.end, default=START) <= week_start: continue - if should_skip(u.skip, week): skipped_users.append(u) + continue elif user_start > week_start: skip.append(u) - elif len(u.weeks) <= week or not u.weeks[week]: - lame.append(u) - else: - good.append(u) + continue + for blog in u.links: + b=blog[0] + weeks=u.posts[b] + if len(weeks) <= week or not weeks[week]: + u.lameblogs.append(b) + else: + u.goodblogs.append(b) debts = get_debts() return Template(filename=path, output_encoding='utf-8').render( week=week, week_start=week_start,week_end=week_end, - good=good, lame=lame, skip=skip, skipped_users=skipped_users, userlist=userlist, + skip=skip, skipped_users=skipped_users, userlist=userlist, pool=(get_balance('Pool')-get_balance('Event')), paid=get_balance('Pool:Paid'), event=get_balance('Pool:Event'), debts=debts, punted=punted, **kwargs) diff --git a/scan-feeds.py b/scan-feeds.py index deab8ae..88ff049 100755 --- a/scan-feeds.py +++ b/scan-feeds.py @@ -66,14 +66,16 @@ def parse_feeds(weeks, uri): if len(sys.argv) > 1: for username in sys.argv[1:]: - weeks = log.setdefault(username, []) + blogs = log.setdefault(username, {}) for l in users[username]['links']: - parse_feeds(weeks, l[2]) + weeks = blogs.setdefault(l[0], []) + parse_feeds(weeks, l[3]) else: for (username, u) in users.items(): - weeks = log.setdefault(username, []) + blogs = log.setdefault(username, {}) for l in u['links']: - parse_feeds(weeks, l[2]) + weeks = blogs.setdefault(l[0], []) + parse_feeds(weeks, l[3]) with open('out/report.yml', 'w') as f: yaml.safe_dump(log, f) diff --git a/templates/email.txt b/templates/email.txt index 36e7279..5adf587 100644 --- a/templates/email.txt +++ b/templates/email.txt @@ -2,16 +2,25 @@ Subject: IRON BLOGGER results for the week beginning ${week_start.strftime("%F")} To: ${mail} -SLACKERS: ${", ".join(sorted([u.username for u in lame]))} +SLACKERS: +<% lame=0 %> +% for u in sorted(userlist, key=lambda u:u.name[u.name.rfind(' '):].lower()): + % for b in u.lameblogs: + <% lame+=1 %> - ${u.name} in ${b} + % endfor +% endfor + % if punt: PUNTED for balance ≥$30: ${", ".join(sorted(punt))} % endif People who posted: -% for u in sorted(good, key=lambda u:u.name[u.name.rfind(' '):].lower()): - ${u.name} (${u.username}): - % for p in u.weeks[week]: - - ${p['url']} +% for u in sorted(userlist, key=lambda u:u.name[u.name.rfind(' '):].lower()): + % for b in u.goodblogs: + ${u.name} in ${b} (${u.username}): + % for p in u.posts[b][week]: + - ${p['url']} + % endfor % endfor % endfor @@ -30,7 +39,7 @@ People who are currently skipped: % endif Beer pool: -This Week: € ${5 * len(lame)} +This Week: € ${5 * lame} Total: € ${pool} Paid: € ${paid} Events: € ${event} diff --git a/templates/ledger b/templates/ledger index 9d7e04d..3c94236 100644 --- a/templates/ledger +++ b/templates/ledger @@ -1,6 +1,8 @@ # This Python file uses the following encoding: utf-8 -% for u in sorted(lame, key=lambda u:u.username): -${week_end.strftime("%F")} Week ${week} +% for u in sorted(userlist, key=lambda u:u.username): +% for b in u.lameblogs: +${week_end.strftime("%F")} Week ${week}, Blog ${b} User:${u.username} $-5 Pool:Owed:${u.username} % endfor +% endfor diff --git a/templates/users.tmpl b/templates/users.tmpl index 814425c..d922f44 100644 --- a/templates/users.tmpl +++ b/templates/users.tmpl @@ -17,7 +17,7 @@ % if u.links: % for a in u.links: - ${a[0]} + ${a[1]} % endfor % else: fehlt noch diff --git a/templates/week.tmpl b/templates/week.tmpl index f0807bc..5f4bc36 100644 --- a/templates/week.tmpl +++ b/templates/week.tmpl @@ -1,30 +1,48 @@ -Zusammenfassung für die Woche ab ${week_start.strftime("%d.%m.%Y")}: +Zusammenfassung der Woche ab ${week_start.strftime("%d.%m.%Y")}:

Die Fleißigen:

-% for u in sorted(good, key=lambda u:u.name[u.name.rfind(' '):].lower()): +% for u in sorted(userlist, key=lambda u:u.name[u.name.rfind(' '):].lower()): +% for g in u.goodblogs: +% for b in u.links: +% if b[0] == g:
${u.name} \ % if u.twitter != False: - @${u.username} \ + (@${u.username}) \ + % endif + % if len(u.links) != 1: + in ${b[1]} \ % endif :
+% endif +% endfor +% endfor % endfor
-

Die Faulen:

+

Die Faulen:

<% lame=0 %> @@ -65,9 +83,9 @@ Zusammenfassung für die Woche ab ${week_start.strftime("%d.%m.%Y")}:

Kasse:

- + - +
Diese Woche: ${5 * len(lame)} €
Diese Woche: ${5 * lame} €
Insgesamt: ${pool} €
Beglichen: ${paid} €
beglichen: ${paid} €
verfeiert: ${event} €
@@ -89,9 +107,11 @@ Zusammenfassung für die Woche ab ${week_start.strftime("%d.%m.%Y")}: %endif +% if punted:

Zuvor ausgeschieden (müssen 30 € für den Wiedereinstieg bezahlen):

+% endif