itIn case no items are defined in a jsonfeed, don't bail. - zs - Zeitungsschau rss to email converter Err gopher.r-36.net 70 hgit clone git://r-36.net/zs URL:git://r-36.net/zs 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 ee341c7915c2d85c90eb6deef11c964fb88986fa /scm/zs//commit/ee341c7915c2d85c90eb6deef11c964fb88986fa.gph gopher.r-36.net 70 1parent 19899f9da5895c6493f499e00cd0feec00732f1f /scm/zs//commit/19899f9da5895c6493f499e00cd0feec00732f1f.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, 20 Dec 2017 18:41:05 +0100 Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iIn case no items are defined in a jsonfeed, don't bail. Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iDiffstat: Err gopher.r-36.net 70 i zeitungsschau/feed.py | 97 ++++++++++++++++--------------- Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i1 file changed, 49 insertions(+), 48 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 it@@ -100,59 +100,60 @@ def parsejsonfeed(astr): Err gopher.r-36.net 70 i feed["author"] = js["author"]["name"] Err gopher.r-36.net 70 i feed["updated"] = now Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i- for item in js["items"]: Err gopher.r-36.net 70 i- article = {} Err gopher.r-36.net 70 i- if "url" in item: Err gopher.r-36.net 70 i- article["file"] = item["url"] Err gopher.r-36.net 70 i- if "title" in item: Err gopher.r-36.net 70 i- article["title"] = item["title"] Err gopher.r-36.net 70 i- if "id" in item: Err gopher.r-36.net 70 i- article["id"] = item["id"] Err gopher.r-36.net 70 i- else: Err gopher.r-36.net 70 i- if "link" in article: Err gopher.r-36.net 70 i- article["id"] = article["link"] Err gopher.r-36.net 70 i- elif "file" in article: Err gopher.r-36.net 70 i- article["id"] = article["file"] Err gopher.r-36.net 70 i+ if "items" in js: Err gopher.r-36.net 70 i+ for item in js["items"]: Err gopher.r-36.net 70 i+ article = {} Err gopher.r-36.net 70 i+ if "url" in item: Err gopher.r-36.net 70 i+ article["file"] = item["url"] Err gopher.r-36.net 70 i+ if "title" in item: Err gopher.r-36.net 70 i+ article["title"] = item["title"] Err gopher.r-36.net 70 i+ if "id" in item: Err gopher.r-36.net 70 i+ article["id"] = item["id"] Err gopher.r-36.net 70 i else: Err gopher.r-36.net 70 i- article["id"] = article["text"][:30] Err gopher.r-36.net 70 i- Err gopher.r-36.net 70 i- if "summary" in item: Err gopher.r-36.net 70 i- article["text"] = html.unescape(item["summary"]) Err gopher.r-36.net 70 i- if "content_html" in item: Err gopher.r-36.net 70 i- article["text"] = html.unescape(item["content_html"]) Err gopher.r-36.net 70 i- if "content_text" in item: Err gopher.r-36.net 70 i- article["text"] = html.unescape(item["content_text"]) Err gopher.r-36.net 70 i- if "date_published" in item: Err gopher.r-36.net 70 i- article["updated"] = \ Err gopher.r-36.net 70 i- dateutil.parser.parse(item["date_published"]) 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+ if "link" in article: Err gopher.r-36.net 70 i+ article["id"] = article["link"] Err gopher.r-36.net 70 i+ elif "file" in article: Err gopher.r-36.net 70 i+ article["id"] = article["file"] Err gopher.r-36.net 70 i+ else: Err gopher.r-36.net 70 i+ article["id"] = article["text"][:30] Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i- if article["updated"] == now: Err gopher.r-36.net 70 i- article["uuid"] = "" Err gopher.r-36.net 70 i- else: Err gopher.r-36.net 70 i- article["uuid"] = "%s" % (article["updated"]) Err gopher.r-36.net 70 i+ if "summary" in item: Err gopher.r-36.net 70 i+ article["text"] = html.unescape(item["summary"]) Err gopher.r-36.net 70 i+ if "content_html" in item: Err gopher.r-36.net 70 i+ article["text"] = html.unescape(item["content_html"]) Err gopher.r-36.net 70 i+ if "content_text" in item: Err gopher.r-36.net 70 i+ article["text"] = html.unescape(item["content_text"]) Err gopher.r-36.net 70 i+ if "date_published" in item: Err gopher.r-36.net 70 i+ article["updated"] = \ Err gopher.r-36.net 70 i+ dateutil.parser.parse(item["date_published"]) 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- for e in ("id", "title", "file"): Err gopher.r-36.net 70 i- if e in article: Err gopher.r-36.net 70 i- article["uuid"] = "%s-%s" % \ Err gopher.r-36.net 70 i- (article["uuid"],\ Err gopher.r-36.net 70 i- article[e]) Err gopher.r-36.net 70 i- Err gopher.r-36.net 70 i- def mkuuid(s): Err gopher.r-36.net 70 i- return hashlib.sha256(str(s).\ Err gopher.r-36.net 70 i- encode("utf8")).hexdigest() Err gopher.r-36.net 70 i- if len(article["uuid"]) == 0: Err gopher.r-36.net 70 i- article["uuid"] = mkuuid(now) Err gopher.r-36.net 70 i- else: Err gopher.r-36.net 70 i- article["uuid"] = mkuuid(article["uuid"]) Err gopher.r-36.net 70 i+ if article["updated"] == now: Err gopher.r-36.net 70 i+ article["uuid"] = "" Err gopher.r-36.net 70 i+ else: Err gopher.r-36.net 70 i+ article["uuid"] = "%s" % (article["updated"]) Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i- # sanity checks Err gopher.r-36.net 70 i- if "title" not in article and "text" not in article \ Err gopher.r-36.net 70 i- and "file" not in article: Err gopher.r-36.net 70 i- continue Err gopher.r-36.net 70 i+ for e in ("id", "title", "file"): Err gopher.r-36.net 70 i+ if e in article: Err gopher.r-36.net 70 i+ article["uuid"] = "%s-%s" % \ Err gopher.r-36.net 70 i+ (article["uuid"],\ Err gopher.r-36.net 70 i+ article[e]) Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i- articles.append(article) Err gopher.r-36.net 70 i+ def mkuuid(s): Err gopher.r-36.net 70 i+ return hashlib.sha256(str(s).\ Err gopher.r-36.net 70 i+ encode("utf8")).hexdigest() Err gopher.r-36.net 70 i+ if len(article["uuid"]) == 0: Err gopher.r-36.net 70 i+ article["uuid"] = mkuuid(now) Err gopher.r-36.net 70 i+ else: Err gopher.r-36.net 70 i+ article["uuid"] = mkuuid(article["uuid"]) Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i+ # sanity checks Err gopher.r-36.net 70 i+ if "title" not in article and "text" not in article \ Err gopher.r-36.net 70 i+ and "file" not in article: Err gopher.r-36.net 70 i+ continue Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i+ articles.append(article) Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i feed["articles"] = articles Err gopher.r-36.net 70 i Err gopher.r-36.net 70 .