1
1
from notion_client .helpers import collect_paginated_api
2
2
from notion_client import APIErrorCode , APIResponseError
3
+ from time import sleep
4
+ def GeneralErrorProcess (error ):
5
+ match error .code :
6
+ case APIErrorCode .RateLimited :
7
+ print ("Rate Limited" )
8
+ sleep (60 )
9
+ case _:
10
+ print (error )
11
+ return False
12
+ return False
3
13
4
14
def RetrieveDatabaseStructure (notion , database_id ):
5
15
try :
6
16
result = notion .databases .retrieve (database_id = database_id ).get ("properties" )
7
17
except APIResponseError as error :
8
- print (error )
18
+ GeneralErrorProcess (error )
9
19
return None
10
20
return result
11
21
12
22
def UpdateDatabaseStructure (notion , database_id , properties ):
13
23
try :
14
24
notion .databases .update (database_id = database_id ,properties = properties )
15
25
except APIResponseError as error :
16
- print (error )
26
+ GeneralErrorProcess (error )
17
27
return False
18
28
return True
19
29
@@ -28,7 +38,7 @@ def RetrieveDatabaseRows(notion, database_id, filter_properties=None):
28
38
}]
29
39
)
30
40
except APIResponseError as error :
31
- print (error )
41
+ GeneralErrorProcess (error )
32
42
return None
33
43
return result
34
44
@@ -48,7 +58,7 @@ def RetrieveDatabaseList(notion, descending=True, cursor=None, page_size=100):
48
58
,page_size = page_size
49
59
)
50
60
except APIResponseError as error :
51
- print (error )
61
+ GeneralErrorProcess (error )
52
62
return None
53
63
return database_results
54
64
@@ -66,7 +76,7 @@ def RetrieveList(notion, descending=True, cursor=None, page_size=100):
66
76
except APIResponseError as error :
67
77
if error .code == APIErrorCode .ValidationError : ## cursor not found ignore
68
78
return None
69
- print (error )
79
+ GeneralErrorProcess (error )
70
80
return None
71
81
return results
72
82
@@ -80,7 +90,7 @@ def RetrieveLatestCursor(notion):
80
90
,page_size = 1
81
91
).get ("results" )
82
92
except APIResponseError as error :
83
- print (error )
93
+ GeneralErrorProcess (error )
84
94
return None
85
95
return result [0 ].get ("id" )
86
96
@@ -91,15 +101,14 @@ def UpdatePageProperties(notion, page_id, properties):
91
101
if error .code == APIErrorCode .ObjectNotFound :
92
102
return False
93
103
else :
94
- print (error )
95
104
return False
96
105
return True
97
106
98
107
def RetrievePage (notion , page_id , filter_properties = None ):
99
108
try :
100
109
result = notion .pages .retrieve (page_id = page_id ,filter_properties = filter_properties )
101
110
except APIResponseError as error :
102
- print (error )
111
+ GeneralErrorProcess (error )
103
112
return None
104
113
return result
105
114
0 commit comments