|
|
|
|
@ -81,8 +81,8 @@ class NotionLoader(BaseLoader):
|
|
|
|
|
docs = []
|
|
|
|
|
if notion_page_type == 'database':
|
|
|
|
|
# get all the pages in the database
|
|
|
|
|
page_text = self._get_notion_database_data(notion_obj_id)
|
|
|
|
|
docs.append(Document(page_content=page_text))
|
|
|
|
|
page_text_documents = self._get_notion_database_data(notion_obj_id)
|
|
|
|
|
docs.extend(page_text_documents)
|
|
|
|
|
elif notion_page_type == 'page':
|
|
|
|
|
page_text_list = self._get_notion_block_data(notion_obj_id)
|
|
|
|
|
for page_text in page_text_list:
|
|
|
|
|
@ -94,7 +94,7 @@ class NotionLoader(BaseLoader):
|
|
|
|
|
|
|
|
|
|
def _get_notion_database_data(
|
|
|
|
|
self, database_id: str, query_dict: Dict[str, Any] = {}
|
|
|
|
|
) -> str:
|
|
|
|
|
) -> List[Document]:
|
|
|
|
|
"""Get all the pages from a Notion database."""
|
|
|
|
|
res = requests.post(
|
|
|
|
|
DATABASE_URL_TMPL.format(database_id=database_id),
|
|
|
|
|
@ -110,7 +110,7 @@ class NotionLoader(BaseLoader):
|
|
|
|
|
|
|
|
|
|
database_content_list = []
|
|
|
|
|
if 'results' not in data or data["results"] is None:
|
|
|
|
|
return ""
|
|
|
|
|
return []
|
|
|
|
|
for result in data["results"]:
|
|
|
|
|
properties = result['properties']
|
|
|
|
|
data = {}
|
|
|
|
|
@ -143,10 +143,10 @@ class NotionLoader(BaseLoader):
|
|
|
|
|
row_content = row_content + f'{key}:{value_content}\n'
|
|
|
|
|
else:
|
|
|
|
|
row_content = row_content + f'{key}:{value}\n'
|
|
|
|
|
database_content_list.append(row_content)
|
|
|
|
|
database_content_list.append(json.dumps(data, ensure_ascii=False))
|
|
|
|
|
document = Document(page_content=row_content)
|
|
|
|
|
database_content_list.append(document)
|
|
|
|
|
|
|
|
|
|
return "\n\n".join(database_content_list)
|
|
|
|
|
return database_content_list
|
|
|
|
|
|
|
|
|
|
def _get_notion_block_data(self, page_id: str) -> List[str]:
|
|
|
|
|
result_lines_arr = []
|
|
|
|
|
|