Mercurial > public > src > rhodecode
view pylons_app/controllers/feed.py @ 245:a83a1799480c
Reimplemented way of caching repos list, hg model now get's repos objects right from cached dict, this way we skipp creating instances of MercurialRepository and gain performance. Some import cleanup
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Thu, 03 Jun 2010 00:04:48 +0200 |
parents | 8bdec09436cb |
children | 3782a6d698af |
line wrap: on
line source
#!/usr/bin/python # -*- coding: utf-8 -*- from pylons import tmpl_context as c, url, response from pylons_app.lib.base import BaseController, render from pylons_app.model.hg_model import _full_changelog_cached from webhelpers.feedgenerator import Atom1Feed, Rss201rev2Feed import logging log = logging.getLogger(__name__) class FeedController(BaseController): #secure it or not ? def __before__(self): super(FeedController, self).__before__() #common values for feeds self.description = 'Changes on %s repository' self.title = "%s feed" self.language = 'en-us' self.ttl = "5" self.feed_nr = 10 def atom(self, repo_name): """Produce an atom-1.0 feed via feedgenerator module""" feed = Atom1Feed(title=self.title % repo_name, link=url('summary_home', repo_name=repo_name, qualified=True), description=self.description % repo_name, language=self.language, ttl=self.ttl) for cnt, cs in enumerate(_full_changelog_cached(repo_name)): if cnt > self.feed_nr: break feed.add_item(title=cs.message, link=url('changeset_home', repo_name=repo_name, revision=cs.raw_id, qualified=True), description=str(cs.date)) response.content_type = feed.mime_type return feed.writeString('utf-8') def rss(self, repo_name): """Produce an rss2 feed via feedgenerator module""" feed = Rss201rev2Feed(title=self.title % repo_name, link=url('summary_home', repo_name=repo_name, qualified=True), description=self.description % repo_name, language=self.language, ttl=self.ttl) for cnt, cs in enumerate(_full_changelog_cached(repo_name)): if cnt > self.feed_nr: break feed.add_item(title=cs.message, link=url('changeset_home', repo_name=repo_name, revision=cs.raw_id, qualified=True), description=str(cs.date)) response.content_type = feed.mime_type return feed.writeString('utf-8')