Merge branch 'master' of wazong.de:iron-blogger
Conflicts: bloggers.yml ledger
This commit is contained in:
commit
2893516e6b
|
@ -27,12 +27,12 @@ def fetch_links(url):
|
||||||
|
|
||||||
for (name, u) in users.items():
|
for (name, u) in users.items():
|
||||||
for e in u['links']:
|
for e in u['links']:
|
||||||
(title, url) = e[0:2]
|
(title, url) = e[1:3]
|
||||||
try:
|
try:
|
||||||
e[0] = e[0].strip()
|
e[1] = e[1].strip()
|
||||||
except:
|
except:
|
||||||
e[0] = e[0]
|
e[1] = e[1]
|
||||||
if len(e) == 3:
|
if len(e) == 4:
|
||||||
continue
|
continue
|
||||||
link = fetch_links(url)
|
link = fetch_links(url)
|
||||||
if link:
|
if link:
|
||||||
|
|
20
render.py
20
render.py
|
@ -76,8 +76,6 @@ def render_template(path, week=None, **kwargs):
|
||||||
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 = []
|
|
||||||
lame = []
|
|
||||||
skip = []
|
skip = []
|
||||||
skipped_users = []
|
skipped_users = []
|
||||||
userlist = []
|
userlist = []
|
||||||
|
@ -97,7 +95,9 @@ def render_template(path, week=None, **kwargs):
|
||||||
u.end = rec.get('end')
|
u.end = rec.get('end')
|
||||||
u.stop = rec.get('stop')
|
u.stop = rec.get('stop')
|
||||||
u.skip = parse_skip(rec)
|
u.skip = parse_skip(rec)
|
||||||
u.weeks = report.get(un, [])
|
u.posts = report.get(un, {})
|
||||||
|
u.goodblogs = []
|
||||||
|
u.lameblogs = []
|
||||||
|
|
||||||
userlist.append(u)
|
userlist.append(u)
|
||||||
|
|
||||||
|
@ -118,21 +118,25 @@ def render_template(path, week=None, **kwargs):
|
||||||
continue
|
continue
|
||||||
if u.end and parse(u.end, default=START) <= week_start:
|
if u.end and parse(u.end, default=START) <= week_start:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if should_skip(u.skip, week):
|
if should_skip(u.skip, week):
|
||||||
skipped_users.append(u)
|
skipped_users.append(u)
|
||||||
|
continue
|
||||||
elif user_start > week_start:
|
elif user_start > week_start:
|
||||||
skip.append(u)
|
skip.append(u)
|
||||||
elif len(u.weeks) <= week or not u.weeks[week]:
|
continue
|
||||||
lame.append(u)
|
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:
|
else:
|
||||||
good.append(u)
|
u.goodblogs.append(b)
|
||||||
|
|
||||||
debts = get_debts()
|
debts = get_debts()
|
||||||
|
|
||||||
return Template(filename=path, output_encoding='utf-8').render(
|
return Template(filename=path, 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, 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'),
|
pool=(get_balance('Pool')-get_balance('Event')), paid=get_balance('Pool:Paid'),
|
||||||
event=get_balance('Pool:Event'),
|
event=get_balance('Pool:Event'),
|
||||||
debts=debts, punted=punted, **kwargs)
|
debts=debts, punted=punted, **kwargs)
|
||||||
|
|
|
@ -66,14 +66,16 @@ def parse_feeds(weeks, uri):
|
||||||
|
|
||||||
if len(sys.argv) > 1:
|
if len(sys.argv) > 1:
|
||||||
for username in sys.argv[1:]:
|
for username in sys.argv[1:]:
|
||||||
weeks = log.setdefault(username, [])
|
blogs = log.setdefault(username, {})
|
||||||
for l in users[username]['links']:
|
for l in users[username]['links']:
|
||||||
parse_feeds(weeks, l[2])
|
weeks = blogs.setdefault(l[0], [])
|
||||||
|
parse_feeds(weeks, l[3])
|
||||||
else:
|
else:
|
||||||
for (username, u) in users.items():
|
for (username, u) in users.items():
|
||||||
weeks = log.setdefault(username, [])
|
blogs = log.setdefault(username, {})
|
||||||
for l in u['links']:
|
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:
|
with open('out/report.yml', 'w') as f:
|
||||||
yaml.safe_dump(log, f)
|
yaml.safe_dump(log, f)
|
||||||
|
|
|
@ -2,18 +2,27 @@
|
||||||
Subject: IRON BLOGGER results for the week beginning ${week_start.strftime("%F")}
|
Subject: IRON BLOGGER results for the week beginning ${week_start.strftime("%F")}
|
||||||
To: ${mail}
|
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:
|
% if punt:
|
||||||
PUNTED for balance ≥$30: ${", ".join(sorted(punt))}
|
PUNTED for balance ≥$30: ${", ".join(sorted(punt))}
|
||||||
% endif
|
% endif
|
||||||
|
|
||||||
People who posted:
|
People who posted:
|
||||||
% 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()):
|
||||||
${u.name} (${u.username}):
|
% for b in u.goodblogs:
|
||||||
% for p in u.weeks[week]:
|
${u.name} in ${b} (${u.username}):
|
||||||
|
% for p in u.posts[b][week]:
|
||||||
- ${p['url']}
|
- ${p['url']}
|
||||||
% endfor
|
% endfor
|
||||||
% endfor
|
% endfor
|
||||||
|
% endfor
|
||||||
|
|
||||||
% if skip:
|
% if skip:
|
||||||
People who have not yet started:
|
People who have not yet started:
|
||||||
|
@ -30,7 +39,7 @@ People who are currently skipped:
|
||||||
% endif
|
% endif
|
||||||
|
|
||||||
Beer pool:
|
Beer pool:
|
||||||
This Week: € ${5 * len(lame)}
|
This Week: € ${5 * lame}
|
||||||
Total: € ${pool}
|
Total: € ${pool}
|
||||||
Paid: € ${paid}
|
Paid: € ${paid}
|
||||||
Events: € ${event}
|
Events: € ${event}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
# This Python file uses the following encoding: utf-8
|
# This Python file uses the following encoding: utf-8
|
||||||
% for u in sorted(lame, key=lambda u:u.username):
|
% for u in sorted(userlist, key=lambda u:u.username):
|
||||||
${week_end.strftime("%F")} Week ${week}
|
% for b in u.lameblogs:
|
||||||
|
${week_end.strftime("%F")} Week ${week}, Blog ${b}
|
||||||
User:${u.username} $-5
|
User:${u.username} $-5
|
||||||
Pool:Owed:${u.username}
|
Pool:Owed:${u.username}
|
||||||
% endfor
|
% endfor
|
||||||
|
% endfor
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<td align="left" valign="top">
|
<td align="left" valign="top">
|
||||||
% if u.links:
|
% if u.links:
|
||||||
% for a in u.links:
|
% for a in u.links:
|
||||||
<a href="${a[1]}">${a[0]}</a>
|
<a href="${a[2]}">${a[1]}</a>
|
||||||
% endfor
|
% endfor
|
||||||
% else:
|
% else:
|
||||||
fehlt noch
|
fehlt noch
|
||||||
|
|
|
@ -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")}:
|
||||||
<h3>Die Fleißigen:</h3>
|
<h3>Die Fleißigen:</h3>
|
||||||
<dl>
|
<dl>
|
||||||
% 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:
|
||||||
<dt><span class="user"><strong>${u.name} </strong> \
|
<dt><span class="user"><strong>${u.name} </strong> \
|
||||||
% if u.twitter != False:
|
% if u.twitter != False:
|
||||||
@<a href="http://twitter.com/${u.username}">${u.username}</a> \
|
(@<a href="http://twitter.com/${u.username}">${u.username}</a>) \
|
||||||
|
% endif
|
||||||
|
% if len(u.links) != 1:
|
||||||
|
in <a href="${b[2]}">${b[1]}</a> \
|
||||||
% endif
|
% endif
|
||||||
:</span></dt>
|
:</span></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<ul>
|
<ul>
|
||||||
% for p in u.weeks[week]:
|
% for p in u.posts[g][week]:
|
||||||
<li><a href="${p['url']}">${p['title'] or "[ohne Titel]"}</a></li>
|
<li><a href="${p['url']}">${p['title'] or "[ohne Titel]"}</a></li>
|
||||||
% endfor
|
% endfor
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
</dd>
|
||||||
|
% endif
|
||||||
|
% endfor
|
||||||
|
% endfor
|
||||||
% endfor
|
% endfor
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<h3>Die Faulen:</h3>
|
<h3>Die Faulen:</h3> <% lame=0 %>
|
||||||
<ul>
|
<ul>
|
||||||
% for u in sorted(lame, key=lambda u:u.name[u.name.rfind(' '):].lower()):
|
% for u in sorted(userlist, key=lambda u:u.name[u.name.rfind(' '):].lower()):
|
||||||
<li class="user"><strong>${u.name} </strong> \
|
% for g in u.lameblogs:
|
||||||
|
% for b in u.links:
|
||||||
|
% if b[0] == g:
|
||||||
|
<li class="user"><strong>${u.name} </strong> <% lame+=1 %> \
|
||||||
% if u.twitter != False:
|
% if u.twitter != False:
|
||||||
@<a href="http://twitter.com/${u.username}">${u.username}</a> \
|
@<a href="http://twitter.com/${u.username}">${u.username}</a> \
|
||||||
% endif
|
% endif
|
||||||
|
% if len(u.links) != 1:
|
||||||
|
in <a href="${b[2]}">${b[1]}</a> \
|
||||||
|
% endif
|
||||||
</li>
|
</li>
|
||||||
|
% endif
|
||||||
|
% endfor
|
||||||
|
% endfor
|
||||||
% endfor
|
% endfor
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
@ -65,9 +83,9 @@ Zusammenfassung für die Woche ab ${week_start.strftime("%d.%m.%Y")}:
|
||||||
|
|
||||||
<h3>Kasse:</h3>
|
<h3>Kasse:</h3>
|
||||||
<table style="border-left-style:none; border-right-style:none;">
|
<table style="border-left-style:none; border-right-style:none;">
|
||||||
<tr> <td> Diese Woche: </td> <td> ${5 * len(lame)} € </td> </tr>
|
<tr> <td> Diese Woche: </td> <td> ${5 * lame} € </td> </tr>
|
||||||
<tr> <td> Insgesamt: </td> <td> ${pool} €</td> </tr>
|
<tr> <td> Insgesamt: </td> <td> ${pool} €</td> </tr>
|
||||||
<tr> <td> Beglichen: </td> <td> ${paid} €</td> </tr>
|
<tr> <td> beglichen: </td> <td> ${paid} €</td> </tr>
|
||||||
<tr> <td> verfeiert: </td> <td> ${event} €</td> </tr>
|
<tr> <td> verfeiert: </td> <td> ${event} €</td> </tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
@ -89,9 +107,11 @@ Zusammenfassung für die Woche ab ${week_start.strftime("%d.%m.%Y")}:
|
||||||
%endif
|
%endif
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
% if punted:
|
||||||
<h3>Zuvor ausgeschieden (müssen 30 € für den Wiedereinstieg bezahlen):</h3>
|
<h3>Zuvor ausgeschieden (müssen 30 € für den Wiedereinstieg bezahlen):</h3>
|
||||||
<ul>
|
<ul>
|
||||||
% for (u) in sorted(punted, key=lambda p:p.name[p.name.rfind(' '):].lower()):
|
% for (u) in sorted(punted, key=lambda p:p.name[p.name.rfind(' '):].lower()):
|
||||||
<li>${u.name} (seit ${u.end_de})</li>
|
<li>${u.name} (seit ${u.end_de})</li>
|
||||||
% endfor
|
% endfor
|
||||||
</ul>
|
</ul>
|
||||||
|
% endif
|
||||||
|
|
Loading…
Reference in New Issue