diff --git a/notion/store.py b/notion/store.py index 57620c96..43a3ac17 100644 --- a/notion/store.py +++ b/notion/store.py @@ -269,23 +269,31 @@ def get_current_version(self, table, id): else: return -1 - def call_load_page_chunk(self, page_id): + def call_load_page_chunk(self, page_id, limit=100): if self._client.in_transaction(): self._pages_to_refresh.append(page_id) return - data = { - "pageId": page_id, - "limit": 100000, - "cursor": {"stack": []}, - "chunkNumber": 0, - "verticalColumns": False, - } - - recordmap = self._client.post("loadPageChunk", data).json()["recordMap"] - - self.store_recordmap(recordmap) + cursor = {"stack": []} + chunk_number = 0 + while True: + data = { + "pageId": page_id, + "limit": limit, + "cursor": cursor, + "chunkNumber": chunk_number, + "verticalColumns": False, + } + chunk_number += 1 + + result = self._client.post("loadPageChunk", data).json() + recordmap = result["recordMap"] + + self.store_recordmap(recordmap) + cursor = result['cursor'] + if len(cursor['stack']) <= 0: + break def store_recordmap(self, recordmap): for table, records in recordmap.items():