##// END OF EJS Templates
Changelog update
Changelog update

File last commit:

r902:07a6e8c6 beta
r919:6c3d81f9 beta
Show More
feed.py
90 lines | 3.4 KiB | text/x-python | PythonLexer
updated docs on every controller
r861 # -*- coding: utf-8 -*-
"""
rhodecode.controllers.feed
~~~~~~~~~~~~~~~~~~~~~~~~~~
Feed controller for rhodecode
:created_on: Apr 23, 2010
:author: marcink
fixed copyright year to 2011
r902 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
updated docs on every controller
r861 :license: GPLv3, see COPYING for more details.
"""
renamed project to rhodecode
r547 # 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.
updated docs on every controller
r861
import logging
from pylons import url, response
security bugfix: protected feeds, from unauthorized access, even without this, the feeds would crash and were unreadable, But proper way of securing it is with the secure decarators.
r862
from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
updated docs on every controller
r861 from rhodecode.lib.base import BaseController
Refactor codes for scm model...
r691 from rhodecode.model.scm import ScmModel
security bugfix: protected feeds, from unauthorized access, even without this, the feeds would crash and were unreadable, But proper way of securing it is with the secure decarators.
r862
renamed project to rhodecode
r547 from webhelpers.feedgenerator import Atom1Feed, Rss201rev2Feed
updated docs on every controller
r861
renamed project to rhodecode
r547 log = logging.getLogger(__name__)
class FeedController(BaseController):
updated docs on every controller
r861
security bugfix: protected feeds, from unauthorized access, even without this, the feeds would crash and were unreadable, But proper way of securing it is with the secure decarators.
r862 @LoginRequired()
@HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
'repository.admin')
renamed project to rhodecode
r547 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)
updated docs on every controller
r861
Refactor codes for scm model...
r691 changesets = ScmModel().get_repo(repo_name)
renamed project to rhodecode
r547
for cs in changesets[:self.feed_nr]:
feed.add_item(title=cs.message,
link=url('changeset_home', repo_name=repo_name,
Fixes for raw_id, needed for git...
r636 revision=cs.raw_id, qualified=True),
renamed project to rhodecode
r547 description=str(cs.date))
updated docs on every controller
r861
renamed project to rhodecode
r547 response.content_type = feed.mime_type
return feed.writeString('utf-8')
updated docs on every controller
r861
renamed project to rhodecode
r547 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)
updated docs on every controller
r861
Refactor codes for scm model...
r691 changesets = ScmModel().get_repo(repo_name)
renamed project to rhodecode
r547 for cs in changesets[:self.feed_nr]:
feed.add_item(title=cs.message,
link=url('changeset_home', repo_name=repo_name,
Fixes for raw_id, needed for git...
r636 revision=cs.raw_id, qualified=True),
renamed project to rhodecode
r547 description=str(cs.date))
updated docs on every controller
r861
renamed project to rhodecode
r547 response.content_type = feed.mime_type
return feed.writeString('utf-8')