diff --git a/gallery_dl/extractor/patreon.py b/gallery_dl/extractor/patreon.py index 8e900296..d858c043 100644 --- a/gallery_dl/extractor/patreon.py +++ b/gallery_dl/extractor/patreon.py @@ -97,8 +97,10 @@ class PatreonExtractor(Extractor): attr["attachments"] = self._files(post, included, "attachments") attr["date"] = text.parse_datetime( attr["published_at"], "%Y-%m-%dT%H:%M:%S.%f%z") - uid = post["relationships"]["user"]["data"]["id"] - attr["creator"] = included["user"][uid] + user = post["relationships"]["user"] + attr["creator"] = ( + self._user(user["links"]["related"]) or + included["user"][user["data"]["id"]]) return attr @staticmethod @@ -123,7 +125,10 @@ class PatreonExtractor(Extractor): @memcache(keyarg=1) def _user(self, url): """Fetch user information""" - user = self.request(url).json()["data"] + response = self.request(url, fatal=False) + if response.status_code >= 400: + return None + user = response.json()["data"] attr = user["attributes"] attr["id"] = user["id"] attr["date"] = text.parse_datetime( diff --git a/test/test_results.py b/test/test_results.py index 958e530d..eef5559d 100644 --- a/test/test_results.py +++ b/test/test_results.py @@ -21,7 +21,7 @@ TRAVIS_SKIP = { "exhentai", "kissmanga", "mangafox", "dynastyscans", "nijie", "bobx", "archivedmoe", "archiveofsins", "thebarchive", "fireden", "4plebs", "sankaku", "idolcomplex", "mangahere", "readcomiconline", "mangadex", - "sankakucomplex", "warosu", "fuskator", "patreon", + "sankakucomplex", "warosu", "fuskator", } # temporary issues, etc.