diff --git a/Makefile b/Makefile index d7c3ed0..0324f48 100644 --- a/Makefile +++ b/Makefile @@ -41,7 +41,7 @@ run-container: lint: venv @ # Run flake8 and black linters flake8 --max-line-length=160 --exclude venv,assets . - black --line-length=160 --check --exclude='/venv/|/assets/' . + black --line-length=160 --exclude='/venv/|/assets/' . .PHONY: lint clean: diff --git a/sources/manager_download.py b/sources/manager_download.py index 140130a..4259d21 100644 --- a/sources/manager_download.py +++ b/sources/manager_download.py @@ -243,16 +243,16 @@ class DownloadManager: } } Where `...` states for any number of dictionaries containing _one single key_ only. - If the structure of the response isn't met, an exception is thrown! + If the structure of the response isn't met, a tuple of empty list and dist with only `hasNextPage=False` is returned! :param response: Response JSON dictionary. :returns: Tuple of the acquired pagination data list ("nodes" key) and pagination info dict ("pageInfo" key). """ if "nodes" in response.keys() and "pageInfo" in response.keys(): return response["nodes"], response["pageInfo"] - elif len(response) == 1: + elif len(response) == 1 and isinstance(response[list(response.keys())[0]], Dict): return DownloadManager._find_pagination_and_data_list(response[list(response.keys())[0]]) else: - raise RuntimeError(f"Received structure '{response}' isn't a paginated response!") + return list(), dict(hasNextPage=False) @staticmethod async def _fetch_graphql_paginated(query: str, **kwargs) -> Dict: