##// END OF EJS Templates
Do a redirect to login for anonymous users
Do a redirect to login for anonymous users

File last commit:

r1295:11548cc1 beta
r1336:e9fe4ff5 beta
Show More
feed.py
116 lines | 4.2 KiB | text/x-python | PythonLexer
updated docs on every controller
r861 # -*- coding: utf-8 -*-
"""
rhodecode.controllers.feed
~~~~~~~~~~~~~~~~~~~~~~~~~~
Feed controller for rhodecode
source code cleanup: remove trailing white space, normalize file endings
r1203
updated docs on every controller
r861 :created_on: Apr 23, 2010
:author: marcink
source code cleanup: remove trailing white space, normalize file endings
r1203 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
updated docs on every controller
r861 :license: GPLv3, see COPYING for more details.
"""
fixed license issue #149
r1206 # 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, either version 3 of the License, or
# (at your option) any later version.
source code cleanup: remove trailing white space, normalize file endings
r1203 #
renamed project to rhodecode
r547 # 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.
source code cleanup: remove trailing white space, normalize file endings
r1203 #
renamed project to rhodecode
r547 # You should have received a copy of the GNU General Public License
fixed license issue #149
r1206 # along with this program. If not, see <http://www.gnu.org/licenses/>.
updated docs on every controller
r861
import logging
another major codes rewrite:...
r1045 from pylons import url, response, tmpl_context as c
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
fixes #183 decoding of paths in changes
r1295 from rhodecode.lib import safe_unicode
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
another major codes rewrite:...
r1045 from rhodecode.lib.base import BaseRepoController
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__)
pep8ify
r1212
another major codes rewrite:...
r1045 class FeedController(BaseRepoController):
updated docs on every controller
r861
fixed some bugs in api key auth, added access by api key into rss/atom feeds in global journal...
r1120 @LoginRequired(api_access=True)
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 @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')
made simple global rss and atom feed
r1088 self.title = self.title = _('%s %s feed') % (c.rhodecode_name, '%s')
renamed project to rhodecode
r547 self.language = 'en-us'
self.ttl = "5"
self.feed_nr = 10
fixed wrong order of changes in feeds...
r1162 def __changes(self, cs):
changes = ''
fixes #183 decoding of paths in changes
r1295 a = [safe_unicode(n.path) for n in cs.added]
fixed wrong order of changes in feeds...
r1162 if a:
changes += '\nA ' + '\nA '.join(a)
fixes #183 decoding of paths in changes
r1295 m = [safe_unicode(n.path) for n in cs.changed]
fixed wrong order of changes in feeds...
r1162 if m:
changes += '\nM ' + '\nM '.join(m)
fixes #183 decoding of paths in changes
r1295 d = [safe_unicode(n.path) for n in cs.removed]
fixed wrong order of changes in feeds...
r1162 if d:
changes += '\nD ' + '\nD '.join(d)
changes += '</pre>'
return changes
renamed project to rhodecode
r547 def atom(self, repo_name):
"""Produce an atom-1.0 feed via feedgenerator module"""
feed = Atom1Feed(title=self.title % repo_name,
pep8ify
r1212 link=url('summary_home', repo_name=repo_name,
qualified=True),
renamed project to rhodecode
r547 description=self.description % repo_name,
language=self.language,
ttl=self.ttl)
updated docs on every controller
r861
fixed wrong order of changes in feeds...
r1162 for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])):
desc = '%s - %s<br/><pre>' % (cs.author, cs.date)
desc += self.__changes(cs)
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),
fixed wrong order of changes in feeds...
r1162 author_name=cs.author,
description=desc)
updated docs on every controller
r861
renamed project to rhodecode
r547 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,
pep8ify
r1212 link=url('summary_home', repo_name=repo_name,
qualified=True),
renamed project to rhodecode
r547 description=self.description % repo_name,
language=self.language,
ttl=self.ttl)
updated docs on every controller
r861
fixed wrong order of changes in feeds...
r1162 for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])):
desc = '%s - %s<br/><pre>' % (cs.author, cs.date)
desc += self.__changes(cs)
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),
fixed wrong order of changes in feeds...
r1162 author_name=cs.author,
description=desc,
)
updated docs on every controller
r861
renamed project to rhodecode
r547 response.content_type = feed.mime_type
return feed.writeString('utf-8')