iChanges: - zs - Zeitungsschau rss to email converter Err gopher.r-36.net 70 i Err gopher.r-36.net 70 1Log /scm/zs//log.gph gopher.r-36.net 70 1Files /scm/zs//files.gph gopher.r-36.net 70 1Refs /scm/zs//refs.gph gopher.r-36.net 70 1LICENSE /scm/zs//file/LICENSE.gph gopher.r-36.net 70 i--- Err gopher.r-36.net 70 1commit f98e35d1336421d251ad29089a23f77125aabc53 /scm/zs//commit/f98e35d1336421d251ad29089a23f77125aabc53.gph gopher.r-36.net 70 1parent 931341e7b92f25527dc5894fafb8a6ff4c645ff5 /scm/zs//commit/931341e7b92f25527dc5894fafb8a6ff4c645ff5.gph gopher.r-36.net 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net gopher.r-36.net 70 iDate: Thu, 27 Mar 2014 17:24:40 +0100 Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iChanges: Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i* Add a way to handle the Enclosure from a group file entry too. Err gopher.r-36.net 70 i* Support the decoding of HTML entities in headers. Err gopher.r-36.net 70 i* Handle some more error. Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iDiffstat: Err gopher.r-36.net 70 i feed.py | 7 +++++++ Err gopher.r-36.net 70 i feedemail.py | 4 ++++ Err gopher.r-36.net 70 i zs.py | 2 ++ Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i3 files changed, 13 insertions(+), 0 deletions(-) Err gopher.r-36.net 70 i--- Err gopher.r-36.net 70 1diff --git a/feed.py b/feed.py /scm/zs//file/feed.py.gph gopher.r-36.net 70 i@@ -130,6 +130,13 @@ def parse(astr): Err gopher.r-36.net 70 i else: Err gopher.r-36.net 70 i article["file"] = str(entry.enclosure) Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i+ if hasattr(entry, "group") and \ Err gopher.r-36.net 70 i+ hasattr(entry.group, "content"): Err gopher.r-36.net 70 i+ if "url" in entry.group.content: Err gopher.r-36.net 70 i+ article["file"] = \ Err gopher.r-36.net 70 i+ str(entry.group.content.\ Err gopher.r-36.net 70 i+ attrib["file"]) Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i # updated Err gopher.r-36.net 70 i if hasattr(entry, "updated"): Err gopher.r-36.net 70 i article["updated"] = parseiso(entry.updated) Err gopher.r-36.net 70 1diff --git a/feedemail.py b/feedemail.py /scm/zs//file/feedemail.py.gph gopher.r-36.net 70 i@@ -11,6 +11,7 @@ from email.mime.multipart import MIMEMultipart Err gopher.r-36.net 70 i from email.utils import formataddr, formatdate, parseaddr Err gopher.r-36.net 70 i from email.header import Header Err gopher.r-36.net 70 i import time Err gopher.r-36.net 70 i+import lxml.html.soupparser Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i import html2text as h2t Err gopher.r-36.net 70 i h2t.UNICODE_SNOB = 1 Err gopher.r-36.net 70 i@@ -20,6 +21,9 @@ h2t.INLINE_LINKS = 0 Err gopher.r-36.net 70 i html2text = h2t.html2text Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i def normalizeheader(hstr): Err gopher.r-36.net 70 i+ hstr = lxml.html.soupparser.tostring(hstr.replace("\n", " ").strip(),\ Err gopher.r-36.net 70 i+ encoding="utf-8") Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i return hstr.replace("\n", " ").strip() Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i def send(feed, to, smtphost="localhost", smtpport=None, ssl="False", \ Err gopher.r-36.net 70 1diff --git a/zs.py b/zs.py /scm/zs//file/zs.py.gph gopher.r-36.net 70 i@@ -37,6 +37,8 @@ def run(db, selfeed=None, dryrun=False): Err gopher.r-36.net 70 i retries += 1 Err gopher.r-36.net 70 i except socket.gaierror: Err gopher.r-36.net 70 i continue Err gopher.r-36.net 70 i+ except urllib.error.URLError: Err gopher.r-36.net 70 i+ continue Err gopher.r-36.net 70 i except TimeoutError: Err gopher.r-36.net 70 i continue Err gopher.r-36.net 70 i except ConnectionResetError: Err gopher.r-36.net 70 .