From ddbae467efc614d8d682b987704b32ebd17f089b Mon Sep 17 00:00:00 2001 From: auouymous Date: Sun, 2 Apr 2023 22:52:37 -0600 Subject: [PATCH] Raise exception when gpodder.net queries fail. This avoids JSON warnings when gpodder.net requests fail with "500 Internal Server" errors. --- src/gpodder/directory.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/gpodder/directory.py b/src/gpodder/directory.py index e2ff7091..a5b8f835 100644 --- a/src/gpodder/directory.py +++ b/src/gpodder/directory.py @@ -86,8 +86,12 @@ def directory_entry_from_opml(url): def directory_entry_from_mygpo_json(url): + r = util.urlopen(url) + if not r.ok: + raise Exception('%s: %d %s' % (url, r.status_code, r.reason)) + return [DirectoryEntry(d['title'], d['url'], d['logo_url'], d['subscribers'], d['description']) - for d in util.urlopen(url).json()] + for d in r.json()] class GPodderNetSearchProvider(Provider): @@ -150,7 +154,13 @@ class GPodderNetTagsProvider(Provider): return directory_entry_from_mygpo_json('http://gpodder.net/api/2/tag/%s/50.json' % urllib.parse.quote(tag)) def get_tags(self): - return [DirectoryTag(d['tag'], d['usage']) for d in util.urlopen('http://gpodder.net/api/2/tags/40.json').json()] + url = 'http://gpodder.net/api/2/tags/40.json' + + r = util.urlopen(url) + if not r.ok: + raise Exception('%s: %d %s' % (url, r.status_code, r.reason)) + + return [DirectoryTag(d['tag'], d['usage']) for d in r.json()] class SoundcloudSearchProvider(Provider):