iFix breakup when there is no timestamp. - 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 0c5b34160ace6864f1ce5bf7ef797f0bc792f03b /scm/zs//commit/0c5b34160ace6864f1ce5bf7ef797f0bc792f03b.gph gopher.r-36.net 70 1parent a27ba4bf6d84464ebafcc9a4306ab829852a2cbf /scm/zs//commit/a27ba4bf6d84464ebafcc9a4306ab829852a2cbf.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: Wed, 31 Dec 2014 14:53:48 +0100 Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iFix breakup when there is no timestamp. Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iThere was no tzoffset in now. Now there is UTC. It's the most compatible one. Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iDiffstat: Err gopher.r-36.net 70 i zeitungsschau/feed.py | 19 +++++++++++++------ Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i1 file changed, 13 insertions(+), 6 deletions(-) Err gopher.r-36.net 70 i--- Err gopher.r-36.net 70 1diff --git a/zeitungsschau/feed.py b/zeitungsschau/feed.py /scm/zs//file/zeitungsschau/feed.py.gph gopher.r-36.net 70 i@@ -11,6 +11,7 @@ from datetime import datetime Err gopher.r-36.net 70 i import dateutil.parser Err gopher.r-36.net 70 i import urllib.request, urllib.parse, urllib.error Err gopher.r-36.net 70 i import hashlib Err gopher.r-36.net 70 i+import pytz Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i def parseiso(dstr, now): Err gopher.r-36.net 70 i return dateutil.parser.parse(str(dstr), default=now) Err gopher.r-36.net 70 i@@ -46,7 +47,7 @@ def parse(astr): Err gopher.r-36.net 70 i articles = [] Err gopher.r-36.net 70 i isrss = False Err gopher.r-36.net 70 i isrdf = False Err gopher.r-36.net 70 i- now = datetime.now() Err gopher.r-36.net 70 i+ now = datetime.now(pytz.utc) Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i if hasattr(xml, "channel"): Err gopher.r-36.net 70 i if hasattr(xml, "item"): Err gopher.r-36.net 70 i@@ -141,11 +142,13 @@ def parse(astr): 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 i+ article["updated"] = parseiso(entry.updated,\ Err gopher.r-36.net 70 i+ now) Err gopher.r-36.net 70 i elif hasattr(entry, "pubDate"): Err gopher.r-36.net 70 i- article["updated"] = parseiso(entry.pubDate) Err gopher.r-36.net 70 i+ article["updated"] = parseiso(entry.pubDate,\ Err gopher.r-36.net 70 i+ now) Err gopher.r-36.net 70 i elif hasattr(entry, "date"): Err gopher.r-36.net 70 i- article["updated"] = parseiso(entry.date) Err gopher.r-36.net 70 i+ article["updated"] = parseiso(entry.date, now) Err gopher.r-36.net 70 i else: Err gopher.r-36.net 70 i article["updated"] = now Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i@@ -212,8 +215,12 @@ def parse(astr): Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i # Will not process feeds with more than 64 entries. Can you hear me Err gopher.r-36.net 70 i # Richard Stallman? Err gopher.r-36.net 70 i- feed["articles"] = sorted(articles, key=lambda article: \ Err gopher.r-36.net 70 i- article["updated"])[-64:] Err gopher.r-36.net 70 i+ try: Err gopher.r-36.net 70 i+ feed["articles"] = sorted(articles, key=lambda article: \ Err gopher.r-36.net 70 i+ article["updated"])[-64:] Err gopher.r-36.net 70 i+ except TypeError: Err gopher.r-36.net 70 i+ for article in articles: Err gopher.r-36.net 70 i+ print(article["updated"]) Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i return feed Err gopher.r-36.net 70 i Err gopher.r-36.net 70 .