Skip to content

Commit 93269dc

Browse files
committed
feat: update main script
1 parent 845df84 commit 93269dc

File tree

2 files changed

+105
-34
lines changed

2 files changed

+105
-34
lines changed

solution/main.py

+40-34
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,33 @@
44

55
from spider import Spider
66

7+
# load templates
8+
with open('./readme_template.md', 'r', encoding='utf-8') as f:
9+
readme_cn = f.read()
10+
with open('./readme_template_en.md', 'r', encoding='utf-8') as f:
11+
readme_en = f.read()
12+
13+
with open('./problem_readme_template.md', 'r', encoding='utf-8') as f:
14+
problem_readme_cn = f.read()
15+
with open('./problem_readme_template_en.md', 'r', encoding='utf-8') as f:
16+
problem_readme_en = f.read()
17+
with open('./sql_problem_readme_template.md', 'r', encoding='utf-8') as f:
18+
sql_readme_cn = f.read()
19+
with open('./sql_problem_readme_template_en.md', 'r', encoding='utf-8') as f:
20+
sql_readme_en = f.read()
21+
with open('./bash_problem_readme_template.md', 'r', encoding='utf-8') as f:
22+
bash_readme_cn = f.read()
23+
with open('./bash_problem_readme_template_en.md', 'r', encoding='utf-8') as f:
24+
bash_readme_en = f.read()
25+
26+
27+
def select_templates(category):
28+
if category == 'Shell':
29+
return [bash_readme_cn, bash_readme_en]
30+
if category == 'Database':
31+
return [sql_readme_cn, sql_readme_en]
32+
return [problem_readme_cn, problem_readme_en]
33+
734

835
def generate_readme(result):
936
md_table_cn = [item['md_table_row_cn'] for item in result]
@@ -18,11 +45,6 @@ def generate_readme(result):
1845
)
1946
table_cn += ''.join(items)
2047

21-
with open('./readme_template.md', 'r', encoding='utf-8') as f:
22-
readme_cn = f.read()
23-
with open('./README.md', 'w', encoding='utf-8') as f:
24-
f.write(readme_cn.format(table_cn))
25-
2648
# generate README_EN.md
2749
items = []
2850
table_en = '\n| # | Solution | Tags | Difficulty | Remark |\n| --- | --- | --- | --- | --- |'
@@ -32,26 +54,13 @@ def generate_readme(result):
3254
)
3355
table_en += ''.join(items)
3456

35-
with open('./readme_template_en.md', 'r', encoding='utf-8') as f:
36-
readme_en = f.read()
57+
with open('./README.md', 'w', encoding='utf-8') as f:
58+
f.write(readme_cn.format(table_cn))
3759
with open('./README_EN.md', 'w', encoding='utf-8') as f:
3860
f.write(readme_en.format(table_en))
3961

4062

4163
def generate_question_readme(result):
42-
with open('./problem_readme_template.md', 'r', encoding='utf-8') as f:
43-
readme_cn = f.read()
44-
with open('./problem_readme_template_en.md', 'r', encoding='utf-8') as f:
45-
readme_en = f.read()
46-
with open('./sql_problem_readme_template.md', 'r', encoding='utf-8') as f:
47-
sql_readme_cn = f.read()
48-
with open('./sql_problem_readme_template_en.md', 'r', encoding='utf-8') as f:
49-
sql_readme_en = f.read()
50-
with open('./bash_problem_readme_template.md', 'r', encoding='utf-8') as f:
51-
bash_readme_cn = f.read()
52-
with open('./bash_problem_readme_template_en.md', 'r', encoding='utf-8') as f:
53-
bash_readme_en = f.read()
54-
5564
for item in result:
5665
if not item['content_cn'] and not item['content_en']:
5766
continue
@@ -62,17 +71,10 @@ def generate_question_readme(result):
6271
if os.path.isdir(path):
6372
continue
6473
os.makedirs(path)
74+
6575
# choose the readme template
6676
category = item['category']
67-
if category == 'Shell':
68-
readme_template_cn = bash_readme_cn
69-
readme_template_en = bash_readme_en
70-
elif category == 'Database':
71-
readme_template_cn = sql_readme_cn
72-
readme_template_en = sql_readme_en
73-
else:
74-
readme_template_cn = readme_cn
75-
readme_template_en = readme_en
77+
readme_template_cn, readme_template_en = select_templates(category)
7678

7779
# generate lc-cn problem readme
7880
with open(f'{path}/README.md', 'w', encoding='utf-8') as f1:
@@ -101,8 +103,7 @@ def generate_question_readme(result):
101103

102104
def generate_summary(result):
103105
"""generate summary files"""
104-
summary_cn = ''
105-
summary_en = ''
106+
summary_cn = summary_en = ''
106107
m = {int(item['frontend_question_id']): item for item in result}
107108
for file in os.listdir('./'):
108109
if os.path.isdir("./" + file) and file != '__pycache__':
@@ -135,10 +136,15 @@ def save(result):
135136

136137

137138
if __name__ == '__main__':
138-
cn = ''
139-
en = ''
140-
spider = Spider(cn, en)
139+
cookie_cn = ''
140+
cookie_en = ''
141+
spider = Spider(cookie_cn, cookie_en)
141142
res = spider.run()
143+
144+
# with open('./result.json', 'r', encoding='utf-8') as f:
145+
# res = f.read()
146+
# res = json.loads(res)
147+
142148
generate_readme(res)
143149
generate_question_readme(res)
144150
generate_summary(res)

solution/spider.py

+65
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,71 @@
1919
cn_graph_url = 'https://leetcode-cn.com/graphql'
2020
difficulty = dict(Easy='简单', Medium='中等', Hard='困难')
2121

22+
"""
23+
{
24+
"sub_folder":"2200-2299",
25+
"question_id":"2385",
26+
"frontend_question_id":"2237",
27+
"paid_only":true,
28+
"paid_only_cn":true,
29+
"category":"Algorithms",
30+
"url_cn":"https://leetcode-cn.com/problems/count-positions-on-street-with-required-brightness",
31+
"url_en":"https://leetcode.com/problems/count-positions-on-street-with-required-brightness",
32+
"relative_path_cn":"/solution/2200-2299/2237.Count%20Positions%20on%20Street%20With%20Required%20Brightness/README.md",
33+
"relative_path_en":"/solution/2200-2299/2237.Count%20Positions%20on%20Street%20With%20Required%20Brightness/README_EN.md",
34+
"title_cn":"Count Positions on Street With Required Brightness",
35+
"title_en":"Count Positions on Street With Required Brightness",
36+
"question_title_slug":"count-positions-on-street-with-required-brightness",
37+
"content_en":"Description",
38+
"content_cn":"问题描述[此处省略]",
39+
"tags_en":[
40+
41+
],
42+
"tags_cn":[
43+
44+
],
45+
"difficulty_en":"Medium",
46+
"difficulty_cn":"中等",
47+
"code_snippets":[
48+
{
49+
"lang":"C++",
50+
"langSlug":"cpp",
51+
"code":"class Solution {
52+
public:
53+
int meetRequirement(int n, vector<vector<int>>& lights, vector<int>& requirement) {
54+
55+
}
56+
};",
57+
"__typename":"CodeSnippetNode"
58+
},
59+
{
60+
"lang":"Java",
61+
"langSlug":"java",
62+
"code":"class Solution {
63+
public int meetRequirement(int n, int[][] lights, int[] requirement) {
64+
65+
}
66+
}",
67+
"__typename":"CodeSnippetNode"
68+
}
69+
],
70+
"md_table_row_cn":[
71+
"[2237](https://leetcode-cn.com/problems/count-positions-on-street-with-required-brightness)",
72+
"[Count Positions on Street With Required Brightness](/solution/2200-2299/2237.Count%20Positions%20on%20Street%20With%20Required%20Brightness/README.md)",
73+
"",
74+
"中等",
75+
"🔒"
76+
],
77+
"md_table_row_en":[
78+
"[2237](https://leetcode.com/problems/count-positions-on-street-with-required-brightness)",
79+
"[Count Positions on Street With Required Brightness](/solution/2200-2299/2237.Count%20Positions%20on%20Street%20With%20Required%20Brightness/README_EN.md)",
80+
"",
81+
"Medium",
82+
"🔒"
83+
]
84+
}
85+
"""
86+
2287

2388
class Spider:
2489
def __init__(self, cookie_cn: str, cookie_en: str):

0 commit comments

Comments
 (0)