char_encoding='utf8',
)
self.items = []
- self.feeds = []
+ self.topposters = []
+ self.topteams = []
self.staticfiles = ['policy','add']
settings.configure(
description=desc))
self.items.append(PlanetPost(post[0], post[1], post[2], post[3], post[5], post[6], desc, post[8], post[9]))
- c.execute("SELECT name,blogurl,feedurl FROM planet.feeds WHERE approved ORDER BY name")
+ c.execute("SELECT name,blogurl,feedurl,count(*) FROM planet.feeds INNER JOIN planet.posts ON planet.feeds.id=planet.posts.feed WHERE age(dat) < '1 month' AND team IS NULL GROUP BY name,blogurl,feedurl")
for feed in c.fetchall():
- self.feeds.append(PlanetFeed(feed[0], feed[1], feed[2]))
+ self.topposters.append(PlanetFeed(feed))
+ if len(self.topposters) < 2: self.topposters = []
+
+ c.execute("SELECT teams.name,teams.teamurl,NULL,count(*) FROM planet.teams INNER JOIN planet.feeds ON planet.feeds.team=planet.teams.id INNER JOIN planet.posts ON planet.feeds.id=planet.posts.feed WHERE age(dat) < '1 month' GROUP BY teams.name,teams.teamurl")
+ for feed in c.fetchall():
+ self.topteams.append(PlanetFeed(feed))
+ if len(self.topteams) < 2: self.topteams = []
rss.write_xml(open("www/rss20.xml","w"), encoding='utf-8')
rssshort.write_xml(open("www/rss20_short.xml","w"), encoding='utf-8')
tmpl = get_template(templatename)
f = open(outputname, "w")
f.write(tmpl.render(Context({
- 'feeds': self.feeds,
+ 'topposters': self.topposters,
+ 'topteams': self.topteams,
'posts': self.items,
})).encode('utf-8'))
f.close()
title = property(_get_title)
class PlanetFeed:
- def __init__(self,name,blogurl,feedurl):
- self.name = name
- self._blogurl = blogurl
- self._feedurl = feedurl
+ def __init__(self,row):
+ self.name = row[0]
+ self._blogurl = row[1]
+ self._feedurl = row[2]
+ self.numposts = row[3]
def _get_blogurl(self):
return quoteurl(self._blogurl)
{% extends "base.tmpl" %}
{% block content %}
<div id="planetRight">
- <div class="planetRightTitle">Subscriptions</div>
+{% if topposters %}
+ <div class="planetRightTitle">Top posters</div>
<ul>
-{% for feed in feeds %}
- <li><a href="{{feed.feedurl}}"><img src="img/feed-icon-14x14.png" alt="RSS"/></a> {%if feed.blogurl %}<a href="{{feed.blogurl}}">{{feed.name}}</a>{%else%}{{feed.name}}{%endif%}</li>
+{% for feed in topposters %}
+ <li><a href="{{feed.feedurl}}"><img src="img/feed-icon-14x14.png" alt="RSS"/></a> {%if feed.blogurl %}<a href="{{feed.blogurl}}">{{feed.name}}</a>{%else%}{{feed.name}}{%endif%} ({{feed.numposts}})</li>
{% endfor %}
</ul>
+{% endif %}
+{% if topteams %}
+ <div class="planetRightTitle">Top teams</div>
+ <ul>
+{% for feed in topteams %}
+ <li><a href="{{feed.feedurl}}"><img src="img/feed-icon-14x14.png" alt="RSS"/></a> {%if feed.blogurl %}<a href="{{feed.blogurl}}">{{feed.name}}</a>{%else%}{{feed.name}}{%endif%} ({{feed.numposts}})</li>
+{% endfor %}
+ </ul>
+{% endif %}
<div class="planetRightTitle">Feeds</div>
<ul>
<li><a href="rss20.xml"><img src="img/feed-icon-14x14.png" alt="rss" /></a> <a href="rss20.xml">All feeds (full entries)</a></li>