Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

body.children[9].bulleted_list_item.rich_text[0].text.content.length should be ≤ 2000, instead was 2174. #15

Open
marinucs opened this issue Aug 4, 2023 · 3 comments

Comments

@marinucs
Copy link

marinucs commented Aug 4, 2023

Hello!

First of all, thanks for developing this.

I have encountered this issue, after successfully importing 15 notes. Could you check it out? 🥺

Importing note #14:
Parsing 9 blocks
Importing note #15:
Parsing 3 blocks
Importing note #16:
Parsing 31 blocks
Traceback (most recent call last):
File "/Users/marinucs/Library/Python/3.11/lib/python/site-packages/notion_client/client.py", line 118, in _parse_response
response.raise_for_status()
File "/Users/marinucs/Library/Python/3.11/lib/python/site-packages/httpx/_models.py", line 749, in raise_for_status
raise HTTPStatusError(message, request=request, response=self)
httpx.HTTPStatusError: Client error '400 Bad Request' for url 'https://api.notion.com/v1/pages'
For more information check: https://httpstatuses.com/400

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/marinucs/Downloads/gkeep2notion/./gkeep2notion.py", line 440, in
create_page(notion, page)
File "/Users/marinucs/Downloads/gkeep2notion/./gkeep2notion.py", line 189, in create_page
notion_page = notion.pages.create(parent=page.parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/marinucs/Library/Python/3.11/lib/python/site-packages/notion_client/api_endpoints.py", line 199, in create
return self.parent.request(
^^^^^^^^^^^^^^^^^^^^
File "/Users/marinucs/Library/Python/3.11/lib/python/site-packages/notion_client/client.py", line 194, in request
return self._parse_response(response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/marinucs/Library/Python/3.11/lib/python/site-packages/notion_client/client.py", line 126, in _parse_response
raise APIResponseError(response, body["message"], code)
notion_client.errors.APIResponseError: body failed validation: body.children[9].bulleted_list_item.rich_text[0].text.content.length should be ≤ 2000, instead was 2174.

@billythekidz
Copy link

billythekidz commented Aug 7, 2023

def create_page(notion: Client, page: Page) -> Page:
    """Creates a page in Notion and saves page.id"""
    try:
        throttle.wait()
        notion_page = notion.pages.create(parent=page.parent,
                                        properties=page.properties,
                                        children=page.children)
        page.id = notion_page['id']
    except:
        page.id = "your-root-page-id"

    return page

you could add try except into create_page() method

@trustmaster
Copy link
Owner

The problem is, each content block in Notion is limited to 2000 characters. The solution is to split it into multiple blocks, which this script typically does if your Keep note has paragraphs.

@hexadeciman
Copy link
Contributor

@marinucs this is fixed in my last PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants