From 067d745f6e4750fe350cc0ab62ab3735361917ba Mon Sep 17 00:00:00 2001 From: Barabazs <31799121+Barabazs@users.noreply.github.com> Date: Fri, 7 Jun 2024 16:40:23 +0200 Subject: [PATCH] refactor: raise custom exception in get_user_status_request --- archivooor/archiver.py | 23 +++++++++++++++++++---- archivooor/exceptions.py | 5 +++++ 2 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 archivooor/exceptions.py diff --git a/archivooor/archiver.py b/archivooor/archiver.py index 6c83c91..0bee39f 100644 --- a/archivooor/archiver.py +++ b/archivooor/archiver.py @@ -7,6 +7,8 @@ from requests.adapters import HTTPAdapter from urllib3.util.retry import Retry +from archivooor import exceptions + class NetworkHandler: """ @@ -185,15 +187,28 @@ def get_user_status_request(self): """ url = f"https://web.archive.org/save/status/user?_t={int(time.time())}" response = self.session.get(url=url) + if response.status_code == 200: try: return response.json() - except: + except Exception as exc: if "Too Many Requests" in response.text: - return 429, "Too Many Requests" - return response.text + raise exceptions.ArchivooorException( + "Too Many Requests - Please try again later." + ) from exc + raise exc + elif response.status_code == 429: + raise exceptions.ArchivooorException( + "Too Many Requests - Please try again later." + ) + elif response.status_code == 401: + raise exceptions.ArchivooorException( + "Unauthorized - Please check if the keys are correct." + ) else: - return response.status_code, response.text + raise exceptions.ArchivooorException( + f"Unexpected error: {response.status_code} - {response.text}" + ) class Sitemap: diff --git a/archivooor/exceptions.py b/archivooor/exceptions.py new file mode 100644 index 0000000..f8edb25 --- /dev/null +++ b/archivooor/exceptions.py @@ -0,0 +1,5 @@ +"""Exceptions for Archivooor.""" + + +class ArchivooorException(Exception): + """Base class for archivooor exceptions."""