diff --git a/src/plugins/plugin_xep_0277.py b/src/plugins/plugin_xep_0277.py
index bbb530ef..c55914e3 100755
--- a/src/plugins/plugin_xep_0277.py
+++ b/src/plugins/plugin_xep_0277.py
@@ -17,7 +17,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from sat.core.i18n import _
+from sat.core.i18n import _, D_
from sat.core.constants import Const as C
from sat.core.log import getLogger
log = getLogger(__name__)
@@ -859,30 +859,19 @@ class XEP_0277(object):
node = NS_MICROBLOG
items, metadata = yield self._p.getItems(service_jid, node, max_items=max_items, item_ids=item_ids, rsm_request=rsm_request, extra=extra, profile_key=profile_key)
- feed = """
-
- %(user)s's blogposts
-
-
- %(id)s
- %(date)s\n""" % {'user': service_jid.user,
- 'feed': 'http://%s/blog/%s/atom.xml' % (service_jid.host, service_jid.user),
- 'blog': 'http://%s/blog/%s' % (service_jid.host, service_jid.user),
- 'id': node,
- 'date': rfc3339.timestamp_from_tf(rfc3339.tf_utc())}
-
- def removeAllURIs(element):
- """Recursively remove the URIs of the element and its children.
- Without that, the entry would still be valid but not displayed
- by Firefox nor Thunderbird (and probably more readers)"""
- element.uri = element.defaultUri = None
- for child in element.children:
- if isinstance(child, domish.Element):
- removeAllURIs(child)
-
- for item in items:
- entry = item.firstChildElement()
- removeAllURIs(entry)
- feed += " " + entry.toXml() + "\n"
- defer.returnValue(feed + "")
+ feed_elt = domish.Element((NS_ATOM, 'feed'))
+ title = D_(u"{user}'s blogposts").format(user=service_jid.user)
+ feed_elt.addElement('title', content=title)
+ link_feed_elt = feed_elt.addElement('link')
+ link_feed_elt['href'] = 'http://{host}/blog/{user}/atom.xml'.format(
+ host=urllib.quote(service_jid.host,''),
+ user=urllib.quote(service_jid.user,''))
+ link_feed_elt['rel'] = 'self'
+ link_blog_elt = feed_elt.addElement('link')
+ link_blog_elt['href'] = 'http://{host}/blog/{user}'.format(
+ host=urllib.quote(service_jid.host,''),
+ user=urllib.quote(service_jid.user,''))
+ feed_elt.addElement('id', content=node)
+ feed_elt.addElement('updated', rfc3339.timestamp_from_tf(rfc3339.tf_utc()))
+ defer.returnValue(u''+feed_elt.toXml())