From 8e33d0b985e0d5ccf603aac5da9334acb3ddd0a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Sat, 26 Jul 2025 07:33:58 +0200 Subject: [PATCH] [pixiv] improve AJAX error handling (#7896) --- gallery_dl/extractor/pixiv.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gallery_dl/extractor/pixiv.py b/gallery_dl/extractor/pixiv.py index b430e23d..cb0e93e5 100644 --- a/gallery_dl/extractor/pixiv.py +++ b/gallery_dl/extractor/pixiv.py @@ -232,7 +232,14 @@ class PixivExtractor(Extractor): def _request_ajax(self, endpoint): url = f"{self.root}/ajax{endpoint}" try: - return self.request_json(url, headers=self.headers_web)["body"] + data = self.request_json( + url, headers=self.headers_web, fatal=False) + if not data.get("error"): + return data["body"] + + self.log.debug("Server response: %s", util.json_dumps(data)) + return self.log.error( + "'%s'", data.get("message") or "General Error") except Exception: return None @@ -437,6 +444,8 @@ class PixivArtworksExtractor(PixivExtractor): if self.sanity_workaround: body = self._request_ajax( f"/user/{self.user_id}/profile/all") + if not body: + return () try: ajax_ids = list(map(int, body["illusts"])) ajax_ids.extend(map(int, body["manga"]))