Skip to content

Commit 446da67

Browse files
committed
Add NotionClient.search, for new API; update search_blocks to use it
1 parent 0bb0518 commit 446da67

File tree

1 file changed

+45
-6
lines changed

1 file changed

+45
-6
lines changed

notion/client.py

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,14 @@ class NotionClient(object):
5151
for internal use -- the main one you'll likely want to use is `get_block`.
5252
"""
5353

54-
def __init__(self, token_v2=None, monitor=False, start_monitoring=False, enable_caching=False, cache_key=None):
54+
def __init__(
55+
self,
56+
token_v2=None,
57+
monitor=False,
58+
start_monitoring=False,
59+
enable_caching=False,
60+
cache_key=None,
61+
):
5562
self.session = create_session()
5663
self.session.cookies = cookiejar_from_dict({"token_v2": token_v2})
5764
if enable_caching:
@@ -242,15 +249,47 @@ def search_pages_with_parent(self, parent_id, search=""):
242249
return response["results"]
243250

244251
def search_blocks(self, search, limit=25):
252+
return self.search(query=search, limit=limit)
253+
254+
def search(
255+
self,
256+
query="",
257+
search_type="BlocksInSpace",
258+
limit=100,
259+
sort="Relevance",
260+
source="quick_find",
261+
isDeletedOnly=False,
262+
excludeTemplates=False,
263+
isNavigableOnly=False,
264+
requireEditPermissions=False,
265+
ancestors=[],
266+
createdBy=[],
267+
editedBy=[],
268+
lastEditedTime={},
269+
createdTime={},
270+
):
245271
data = {
246-
"query": search,
247-
"table": "space",
248-
"id": self.current_space.id,
272+
"type": search_type,
273+
"query": query,
274+
"spaceId": self.current_space.id,
249275
"limit": limit,
276+
"filters": {
277+
"isDeletedOnly": isDeletedOnly,
278+
"excludeTemplates": excludeTemplates,
279+
"isNavigableOnly": isNavigableOnly,
280+
"requireEditPermissions": requireEditPermissions,
281+
"ancestors": ancestors,
282+
"createdBy": createdBy,
283+
"editedBy": editedBy,
284+
"lastEditedTime": lastEditedTime,
285+
"createdTime": createdTime,
286+
},
287+
"sort": sort,
288+
"source": source,
250289
}
251-
response = self.post("searchBlocks", data).json()
290+
response = self.post("search", data).json()
252291
self._store.store_recordmap(response["recordMap"])
253-
return [self.get_block(block_id) for block_id in response["results"]]
292+
return [self.get_block(result["id"]) for result in response["results"]]
254293

255294
def create_record(self, table, parent, **kwargs):
256295

0 commit comments

Comments
 (0)