diff options
-rw-r--r-- | src/hircine/plugins/scrapers/ehentai_api.py | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/src/hircine/plugins/scrapers/ehentai_api.py b/src/hircine/plugins/scrapers/ehentai_api.py index 86b6cfa..e34d80c 100644 --- a/src/hircine/plugins/scrapers/ehentai_api.py +++ b/src/hircine/plugins/scrapers/ehentai_api.py @@ -55,23 +55,23 @@ class EHentaiAPIScraper(Scraper): request = requests.post(API_URL, data=data) - if request.status_code == requests.codes.ok: - try: - response = json.loads(request.text)["gmetadata"][0] - except json.JSONDecodeError as err: - raise ScrapeError("Could not parse JSON response") from err - except (KeyError, IndexError) as err: - raise ScrapeError("Response is missing 'gmetadata' field") from err - - title = response.get("title") - if title: - response["title"] = html.unescape(title) - - title_jpn = response.get("title_jpn") - if title_jpn: - response["title_jpn"] = html.unescape(title_jpn) - - handler = ExHentaiHandler() - yield from handler.scrape(response) - else: + if request.status_code != requests.codes.ok: raise ScrapeError(f"Request failed with status code {request.status_code}") + + try: + response = json.loads(request.text)["gmetadata"][0] + except json.JSONDecodeError as err: + raise ScrapeError("Could not parse JSON response") from err + except (KeyError, IndexError) as err: + raise ScrapeError("Response is missing 'gmetadata' field") from err + + title = response.get("title") + if title: + response["title"] = html.unescape(title) + + title_jpn = response.get("title_jpn") + if title_jpn: + response["title_jpn"] = html.unescape(title_jpn) + + handler = ExHentaiHandler() + yield from handler.scrape(response) |