comparison rhodecode/controllers/feed.py @ 1897:0f22dedb588f beta

added short_id to feeds, and made it more compact
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 13 Jan 2012 21:31:01 +0200
parents 89efedac4e6c
children 82a88013a3fd 8ecfed1d8f8b
comparison
equal deleted inserted replaced
1896:12135cff4c77 1897:0f22dedb588f
49 self.title = self.title = _('%s %s feed') % (c.rhodecode_name, '%s') 49 self.title = self.title = _('%s %s feed') % (c.rhodecode_name, '%s')
50 self.language = 'en-us' 50 self.language = 'en-us'
51 self.ttl = "5" 51 self.ttl = "5"
52 self.feed_nr = 10 52 self.feed_nr = 10
53 53
54 def _get_title(self, cs):
55 return "R%s:%s - %s" % (
56 cs.revision, cs.short_id, cs.message
57 )
58
54 def __changes(self, cs): 59 def __changes(self, cs):
55 changes = [] 60 changes = []
56 61
57 a = [safe_unicode(n.path) for n in cs.added] 62 a = [safe_unicode(n.path) for n in cs.added]
58 if a: 63 if a:
70 75
71 return ''.join(changes) 76 return ''.join(changes)
72 77
73 def atom(self, repo_name): 78 def atom(self, repo_name):
74 """Produce an atom-1.0 feed via feedgenerator module""" 79 """Produce an atom-1.0 feed via feedgenerator module"""
75 feed = Atom1Feed(title=self.title % repo_name, 80 feed = Atom1Feed(
76 link=url('summary_home', repo_name=repo_name, 81 title=self.title % repo_name,
77 qualified=True), 82 link=url('summary_home', repo_name=repo_name,
78 description=self.description % repo_name, 83 qualified=True),
79 language=self.language, 84 description=self.description % repo_name,
80 ttl=self.ttl) 85 language=self.language,
81 desc_msg = [] 86 ttl=self.ttl
87 )
88
82 for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])): 89 for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])):
90 desc_msg = []
83 desc_msg.append('%s - %s<br/><pre>' % (cs.author, cs.date)) 91 desc_msg.append('%s - %s<br/><pre>' % (cs.author, cs.date))
84 desc_msg.append(self.__changes(cs)) 92 desc_msg.append(self.__changes(cs))
85 93
86 feed.add_item(title=cs.message, 94 feed.add_item(title=self._get_title(cs),
87 link=url('changeset_home', repo_name=repo_name, 95 link=url('changeset_home', repo_name=repo_name,
88 revision=cs.raw_id, qualified=True), 96 revision=cs.raw_id, qualified=True),
89 author_name=cs.author, 97 author_name=cs.author,
90 description=''.join(desc_msg)) 98 description=''.join(desc_msg))
91 99
92 response.content_type = feed.mime_type 100 response.content_type = feed.mime_type
93 return feed.writeString('utf-8') 101 return feed.writeString('utf-8')
94 102
95 def rss(self, repo_name): 103 def rss(self, repo_name):
96 """Produce an rss2 feed via feedgenerator module""" 104 """Produce an rss2 feed via feedgenerator module"""
97 feed = Rss201rev2Feed(title=self.title % repo_name, 105 feed = Rss201rev2Feed(
98 link=url('summary_home', repo_name=repo_name, 106 title=self.title % repo_name,
99 qualified=True), 107 link=url('summary_home', repo_name=repo_name,
100 description=self.description % repo_name, 108 qualified=True),
101 language=self.language, 109 description=self.description % repo_name,
102 ttl=self.ttl) 110 language=self.language,
103 desc_msg = [] 111 ttl=self.ttl
112 )
113
104 for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])): 114 for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])):
115 desc_msg = []
105 desc_msg.append('%s - %s<br/><pre>' % (cs.author, cs.date)) 116 desc_msg.append('%s - %s<br/><pre>' % (cs.author, cs.date))
106 desc_msg.append(self.__changes(cs)) 117 desc_msg.append(self.__changes(cs))
107 118
108 feed.add_item(title=cs.message, 119 feed.add_item(title=self._get_title(cs),
109 link=url('changeset_home', repo_name=repo_name, 120 link=url('changeset_home', repo_name=repo_name,
110 revision=cs.raw_id, qualified=True), 121 revision=cs.raw_id, qualified=True),
111 author_name=cs.author, 122 author_name=cs.author,
112 description=''.join(desc_msg), 123 description=''.join(desc_msg),
113 ) 124 )