X-Git-Url: https://git.sommitrealweird.co.uk/rss2maildir.git/blobdiff_plain/85df49e4c373d62bd5e9e6b45e1792a6d637ca25..6eb051aa19ec7dfb7a67c858e06c4d0078e16d22:/rss2maildir.py diff --git a/rss2maildir.py b/rss2maildir.py index ce6c342..e8883b1 100755 --- a/rss2maildir.py +++ b/rss2maildir.py @@ -99,6 +99,7 @@ class HTML2Text(HTMLParser): self.ignorenodata = False self.listcount = [] self.urls = [] + self.images = {} HTMLParser.__init__(self) def handle_starttag(self, tag, attrs): @@ -187,16 +188,31 @@ class HTML2Text(HTMLParser): elif attr[0] == 'src': url = attr[1].decode('utf-8') if url: - self.curdata = self.curdata \ - + u' [img:' \ - + url if alt: - self.curdata = self.curdata \ - + u'(' \ - + alt \ - + u')' - self.curdata = self.curdata \ - + u']' + if self.images.has_key(alt): + if self.images[alt]["url"] == url: + self.curdata = self.curdata \ + + u'|%s|' %(alt,) + else: + while self.images.has_key(alt): + alt = alt + "_" + self.images[alt]["url"] = url + self.curdata = self.curdata \ + + u'|%s|' %(alt,) + else: + self.images[alt] = {} + self.images[alt]["url"] = url + self.curdata = self.curdata \ + + u'|%s|' %(alt,) + else: + if self.images.has_key(url): + self.curdata = self.curdata \ + + u'|%s|' %(url,) + else: + self.images[url] = {} + self.images[url]["url"] =url + self.curdata = self.curdata \ + + u'|%s|' %(url,) def handle_curdata(self): @@ -270,7 +286,7 @@ class HTML2Text(HTMLParser): paragraph, self.textwidth - self.indentlevel)) elif tag_thats_done == "pre": self.text = self.text + unicode( \ - " ".join(self.curdata.encode("utf-8").split()), "utf-8") + self.curdata.encode("utf-8"), "utf-8") elif tag_thats_done == u'blockquote': quote = unicode( \ " ".join(self.curdata.encode("utf-8").strip().split()), \ @@ -444,6 +460,12 @@ class HTML2Text(HTMLParser): if len(self.urls) > 0: self.text = self.text + u'\n__ ' + u'\n__ '.join(self.urls) + u'\n' self.urls = [] + if len(self.images.keys()) > 0: + self.text = self.text + u'\n.. ' \ + + u'.. '.join( \ + ["|%s| image:: %s" %(a, self.images[a]["url"]) \ + for a in self.images.keys()]) + u'\n' + self.images = {} return self.text def open_url(method, url):