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