Skip to content

Commit 502ac46

Browse files
authored
fix: scrape endpoints that don't expose count property (#52)
1 parent 1df397a commit 502ac46

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

pokeapi_ditto/commands/clone.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,15 @@ def _crawl_index(self) -> List[URL]:
6060

6161
def _crawl_resource_list(self, url: URL) -> List[URL]:
6262
zero_url = url.with_query({"limit": 0, "offset": 0})
63-
count = self._crawl(zero_url, save=False)["count"]
64-
full_url = url.with_query({"limit": count, "offset": 0})
65-
resource_list = self._crawl(full_url)
66-
return [URL(resource_ref["url"]) for resource_ref in resource_list["results"]]
63+
payload = self._crawl(zero_url, save=False)
64+
if "count" in payload:
65+
count = payload["count"]
66+
full_url = url.with_query({"limit": count, "offset": 0})
67+
resource_list = self._crawl(full_url)
68+
return [URL(resource_ref["url"]) for resource_ref in resource_list["results"]]
69+
else:
70+
self._crawl(url)
71+
return []
6772

6873
def clone_single(self, endpoint_and_id: Tuple[str, str]) -> None:
6974
endpoint, id = endpoint_and_id

0 commit comments

Comments
 (0)