##// END OF EJS Templates
source code cleanup: remove trailing white space, normalize file endings
source code cleanup: remove trailing white space, normalize file endings

File last commit:

r1203:6832ef66 beta
r1203:6832ef66 beta
Show More
feed.py
115 lines | 4.1 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.
"""
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.
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
# 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
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
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__)
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 = ''
a = [n.path for n in cs.added]
if a:
changes += '\nA ' + '\nA '.join(a)
m = [n.path for n in cs.changed]
if m:
changes += '\nM ' + '\nM '.join(m)
d = [n.path for n in cs.removed]
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,
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
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')
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
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')