##// END OF EJS Templates
Added implementation of Ordered Dict.
Added implementation of Ordered Dict.

File last commit:

r252:3782a6d6 default
r358:23e720be default
Show More
feed.py
81 lines | 3.2 KiB | text/x-python | PythonLexer
licensing updates, code cleanups
r252 #!/usr/bin/env python
# encoding: utf-8
# feed controller for pylons
# Copyright (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com>
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2
# of the License or (at your opinion) any later version of the license.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
"""
Created on April 23, 2010
feed controller for pylons
@author: marcink
"""
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
r245 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
Added feed controllers, urls,and changed index page to use them.
r205 import logging
log = logging.getLogger(__name__)
class FeedController(BaseController):
#secure it or not ?
def __before__(self):
super(FeedController, self).__before__()
bumped version to 0.7.1 added atom and rss feeds. Moved https Fixud middleware before error middleware to proper generate debug page (static imports)
r207 #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)
Added feed controllers, urls,and changed index page to use them.
r205
bumped version to 0.7.1 added atom and rss feeds. Moved https Fixud middleware before error middleware to proper generate debug page (static imports)
r207
for cnt, cs in enumerate(_full_changelog_cached(repo_name)):
if cnt > self.feed_nr:
break
feed.add_item(title=cs.message,
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
r245 link=url('changeset_home', repo_name=repo_name,
revision=cs.raw_id, qualified=True),
description=str(cs.date))
bumped version to 0.7.1 added atom and rss feeds. Moved https Fixud middleware before error middleware to proper generate debug page (static imports)
r207
response.content_type = feed.mime_type
return feed.writeString('utf-8')
Added feed controllers, urls,and changed index page to use them.
r205
bumped version to 0.7.1 added atom and rss feeds. Moved https Fixud middleware before error middleware to proper generate debug page (static imports)
r207 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')