From 02d5fb4c15ed441da37db02054cbd50ac4e65cfe Mon Sep 17 00:00:00 2001 From: Florent Date: Mon, 30 Apr 2012 11:28:12 +0200 Subject: [PATCH] Valid feed for w3c validator --- weboob/applications/boobmsg/boobmsg.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/weboob/applications/boobmsg/boobmsg.py b/weboob/applications/boobmsg/boobmsg.py index cb665d77..732fd9a2 100644 --- a/weboob/applications/boobmsg/boobmsg.py +++ b/weboob/applications/boobmsg/boobmsg.py @@ -21,6 +21,8 @@ import sys import os import datetime +import md5 + from tempfile import NamedTemporaryFile from lxml import etree @@ -42,8 +44,11 @@ class AtomFormatter(IFormatter): def start_format(self, **kwargs): self.output(u'\n') - self.output(u'%s\n' % datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%SZ")) self.output(u'Atom feed by Weboob') # TODO : get backend name + self.output(u'%s' % datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%SZ")) + m = md5.new() + m.update(datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%SZ")) + self.output(u'urn:md5:%s' % m.hexdigest()) def format_obj(self, obj, alias): elem = etree.Element('entry') @@ -53,7 +58,9 @@ class AtomFormatter(IFormatter): elem.append(title) id = etree.Element('id') - id.text = obj.full_id + m = md5.new() + m.update(obj.content.encode('utf8', 'ascii')) + id.text = "urn:md5:%s" % m.hexdigest() elem.append(id) link = etree.Element('link') @@ -62,20 +69,22 @@ class AtomFormatter(IFormatter): link.attrib["type"] = "text/html" elem.append(link) + author = etree.Element('author') + name = etree.Element('name') if obj.sender: - author = etree.Element('author') - name = etree.Element('name') name.text = obj.sender - author.append(name) - elem.append(author) + else: + name.text = obj.backend + author.append(name) + elem.append(author) date = etree.Element('updated') date.text = obj.date.strftime("%Y-%m-%dT%H:%M:%SZ") elem.append(date) content = etree.Element('content') - content.text = html2text(obj.content) - content.attrib["type"] = "text" + content.text = obj.content + content.attrib["type"] = "html" elem.append(content) return etree.tostring(elem, pretty_print=True)