32
32
class NotionHelper :
33
33
database_name_dict = {
34
34
"BOOK_DATABASE_NAME" : "书架" ,
35
- "REVIEW_DATABASE_NAME" : "笔记" ,
36
- "BOOKMARK_DATABASE_NAME" : "划线" ,
37
- "DAY_DATABASE_NAME" : "日" ,
38
- "WEEK_DATABASE_NAME" : "周" ,
39
- "MONTH_DATABASE_NAME" : "月" ,
40
- "YEAR_DATABASE_NAME" : "年" ,
41
- "CATEGORY_DATABASE_NAME" : "分类" ,
42
- "AUTHOR_DATABASE_NAME" : "作者" ,
43
35
"CHAPTER_DATABASE_NAME" : "章节" ,
44
36
"READ_DATABASE_NAME" : "阅读记录" ,
45
37
}
46
38
database_id_dict = {}
47
39
heatmap_block_id = None
48
-
40
+ property_dict = {}
49
41
def __init__ (self ):
50
42
self .client = Client (auth = os .getenv ("NOTION_TOKEN" ), log_level = logging .ERROR )
51
43
self .__cache = {}
@@ -57,39 +49,53 @@ def __init__(self):
57
49
self .book_database_id = self .database_id_dict .get (
58
50
self .database_name_dict .get ("BOOK_DATABASE_NAME" )
59
51
)
60
- self . review_database_id = self .database_id_dict . get (
61
- self . database_name_dict . get ("REVIEW_DATABASE_NAME" )
62
- )
63
- self .bookmark_database_id = self .database_id_dict . get (
64
- self .database_name_dict .get ("BOOKMARK_DATABASE_NAME " )
52
+ r = self .client . databases . retrieve ( database_id = self . book_database_id )
53
+ for key , value in r . get ("properties" ). items ():
54
+ self . property_dict [ key ] = value
55
+ self .review_database_id = self .get_relation_database_id (
56
+ self .property_dict .get ("读书笔记 " )
65
57
)
66
- self .day_database_id = self .database_id_dict . get (
67
- self .database_name_dict .get ("DAY_DATABASE_NAME " )
58
+ self .bookmark_database_id = self .get_relation_database_id (
59
+ self .property_dict .get ("划线 " )
68
60
)
69
- self .week_database_id = self .database_id_dict . get (
70
- self .database_name_dict .get ("WEEK_DATABASE_NAME " )
61
+ self .day_database_id = self .get_relation_database_id (
62
+ self .property_dict .get ("日 " )
71
63
)
72
- self .month_database_id = self .database_id_dict . get (
73
- self .database_name_dict .get ("MONTH_DATABASE_NAME " )
64
+ self .week_database_id = self .get_relation_database_id (
65
+ self .property_dict .get ("周 " )
74
66
)
75
- self .year_database_id = self .database_id_dict . get (
76
- self .database_name_dict .get ("YEAR_DATABASE_NAME " )
67
+ self .month_database_id = self .get_relation_database_id (
68
+ self .property_dict .get ("月 " )
77
69
)
78
- self .category_database_id = self .database_id_dict . get (
79
- self .database_name_dict .get ("CATEGORY_DATABASE_NAME " )
70
+ self .year_database_id = self .get_relation_database_id (
71
+ self .property_dict .get ("年 " )
80
72
)
81
- self .author_database_id = self .database_id_dict . get (
82
- self .database_name_dict .get ("AUTHOR_DATABASE_NAME " )
73
+ self .category_database_id = self .get_relation_database_id (
74
+ self .property_dict .get ("分类 " )
83
75
)
84
- self .chapter_database_id = self .database_id_dict . get (
85
- self .database_name_dict .get ("CHAPTER_DATABASE_NAME " )
76
+ self .author_database_id = self .get_relation_database_id (
77
+ self .property_dict .get ("作者 " )
86
78
)
79
+ if "章节" in self .property_dict :
80
+ self .chapter_database_id = self .get_relation_database_id (
81
+ self .property_dict .get ("章节" )
82
+ )
83
+ else :
84
+ self .database_id_dict .get (self .database_name_dict .get ("CHAPTER_DATABASE_NAME" ))
87
85
self .read_database_id = self .database_id_dict .get (
88
86
self .database_name_dict .get ("READ_DATABASE_NAME" )
89
87
)
88
+ if "阅读记录" in self .property_dict :
89
+ self .read_database_id = self .get_relation_database_id (
90
+ self .property_dict .get ("阅读记录" )
91
+ )
92
+ else :
93
+ self .read_database_id .get (self .database_name_dict .get ("READ_DATABASE_NAME" ))
90
94
self .update_book_database ()
91
95
if self .read_database_id is None :
92
96
self .create_database ()
97
+ def get_relation_database_id (self , property ):
98
+ return property .get ("relation" ).get ("database_id" )
93
99
94
100
def extract_page_id (self , notion_url ):
95
101
# 正则表达式匹配 32 个字符的 Notion page_id
0 commit comments