##// END OF EJS Templates
fixes fixes fixes ! optimized queries on journal...
fixes fixes fixes ! optimized queries on journal added some logging, fixed found bugs due to previous refactorings

File last commit:

r1038:5554aa9c beta
r1040:8e49b6ce beta
Show More
feed.py
91 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
another major code rafactor, reimplemented (almost from scratch)...
r1038 from pylons.i18n.translation import _
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
another major code rafactor, reimplemented (almost from scratch)...
r1038 self.description = _('Changes on %s repository')
renamed project to rhodecode
r547 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
another major code rafactor, reimplemented (almost from scratch)...
r1038 repo, dbrepo = ScmModel().get(repo_name, retval='repo')
renamed project to rhodecode
r547
another major code rafactor, reimplemented (almost from scratch)...
r1038 for cs in repo[:self.feed_nr]:
renamed project to rhodecode
r547 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
another major code rafactor, reimplemented (almost from scratch)...
r1038 repo, dbrepo = ScmModel().get(repo_name, retval='repo')
for cs in repo[:self.feed_nr]:
renamed project to rhodecode
r547 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')