# HG changeset patch # User souliane # Date 1390406870 -3600 # Node ID d7b98e4999355791f5dd7b823f3de65a083dceba # Parent b66028d21a1c160cc28cf2a82f4e67b5cb030430 server_side: Atom feed for blogposts is accessible from /blog//atom.xml diff -r b66028d21a1c -r d7b98e499935 libervia_server/blog.py --- a/libervia_server/blog.py Sat Jan 18 11:24:52 2014 +0100 +++ b/libervia_server/blog.py Wed Jan 22 17:07:50 2014 +0100 @@ -24,6 +24,7 @@ from twisted.web.resource import Resource from twisted.words.protocols.jabber.jid import JID from datetime import datetime +from feed import atom from constants import Const @@ -60,8 +61,12 @@ def got_jid(pub_jid_s): pub_jid = JID(pub_jid_s) d2 = defer.Deferred() - d2.addCallbacks(self.render_html_blog, self.render_error_blog, [request, prof_found], None, [request, prof_found], None) - self.host.bridge.getLastGroupBlogs(pub_jid.userhost(), 10, 'libervia', d2.callback, d2.errback) + if len(request.postpath) > 1 and request.postpath[1] == 'atom.xml': + d2.addCallbacks(self.render_atom_feed, self.render_error_blog, [request], None, [request, prof_found], None) + self.host.bridge.getLastGroupBlogsAtom(pub_jid.userhost(), 10, 'libervia', d2.callback, d2.errback) + else: + d2.addCallbacks(self.render_html_blog, self.render_error_blog, [request, prof_found], None, [request, prof_found], None) + self.host.bridge.getLastGroupBlogs(pub_jid.userhost(), 10, 'libervia', d2.callback, d2.errback) d1 = defer.Deferred() JID(self.host.bridge.asyncGetParamA('JabberID', 'Connection', 'value', Const.SERVER_SECURITY_LIMIT, prof_found, callback=d1.callback, errback=d1.errback)) @@ -93,6 +98,10 @@ request.write('') request.finish() + def render_atom_feed(self, feed, request): + request.write(feed.encode('utf-8')) + request.finish() + def render_error_blog(self, error, request, profile): request.write(MicroBlog.ERROR_TEMPLATE % "Can't access requested data") request.finish()