Skip to content

Commit 37aeabc

Browse files
mod:修复pr建议
1 parent 6627306 commit 37aeabc

File tree

8 files changed

+21
-25
lines changed

8 files changed

+21
-25
lines changed

‎README.md

+3-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
|---yield-db-json 从markdown中提取标题、tag、公司、各语言题解生产的json
1616
|-src 源代码
1717
|-scripts
18-
|---constants.js 脚本常量
18+
|--- constants.js 脚本常量
1919
|--- curl-leetcode.js 爬虫请求逻辑
2020
|--- LeeCodeProvider.js 爬虫基类
2121
|--- Logger.js 日志辅助类
@@ -25,9 +25,8 @@
2525
```
2626

2727
## 爬虫
28-
- sudo npm run crawl
29-
- 此命令会先从github上拉取问题列表,将文件名解析成数组,然后根据问题名称循环拉取与之对应的markdown文件(此过程会先查找本地是否存在,如果存在则跳过)
30-
- 问题拉取完成后,根据markdown匹配正则,转化成所需的json文件
28+
- npm run crawl 此命令会先从github上拉取问题列表,将文件名解析成数组,然后根据问题名称循 环拉取与之对应的markdown文件(此过程会先查找本地是否存在,如果存在则跳过)
29+
问题拉取完成后,根据markdown匹配正则,转化成所需的json文件
3130

3231

3332

‎a.out

-4
This file was deleted.

‎package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"build": "react-scripts build",
2121
"test": "react-scripts test",
2222
"eject": "react-scripts eject",
23-
"crawl": "node scripts/curlleetcode.js && node scripts/generateleetcode.js"
23+
"crawl": "node scripts/curlLeetcode.js && node scripts/generateLeetcode.js"
2424
},
2525
"browserslist": {
2626
"production": [

‎scripts/LeetCodeProvider.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ module.exports = LeetCodeProvider = {
1616

1717
return Utils.httpGet(PROBLEMS_URL)
1818
.then((body)=> {
19-
let aProblemTitles = []
19+
let titles = []
2020
let sHtml = Iconv.decode(body, 'utf-8').toString()
21-
cheerio.load(sHtml)(QUESTION_DOM_SELECTOR).each((idx, ele) => aProblemTitles.push(ele.attribs['title']))
21+
cheerio.load(sHtml)(QUESTION_DOM_SELECTOR).each((idx, ele) => titles.push(ele.attribs['title']))
2222
Logger.success('获取问题列表成功')
2323

24-
return aProblemTitles.filter(name => !name.endsWith(ENGLISH_MARKDOWN_SIGN))
24+
return titles.filter(name => !name.endsWith(ENGLISH_MARKDOWN_SIGN))
2525
})
2626
.catch(error => {
2727
Logger.error('获取问题列表失败', error)

‎scripts/curlleetcode.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Utils.mkdirSync(RAW_MARKDOWN_OUTPUT_DIR)
1818

1919
const getProblemDetail = (questionsName, requsetNumber) => {
2020

21-
const cachedFilesName = Utils.getDirsFileName(RAW_MARKDOWN_OUTPUT_DIR)
21+
const cachedFilesName = Utils.getDirsFileNameSync(RAW_MARKDOWN_OUTPUT_DIR)
2222

2323
if (!IS_FORCE_UPDATE_MODE && cachedFilesName.includes(questionsName[requsetNumber])) {
2424

‎scripts/generateleetcode.js

+8-7
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ const {
1111

1212

1313
const genertateLeetcodeToJson = () => {
14+
console.time('genertateLeetcodeToJson');
1415

15-
const rawMarkdowns = Utils.getDirsFileName(RAW_MARKDOWN_OUTPUT_DIR).filter(name => !name.endsWith(ENGLISH_MARKDOWN_SIGN))
16+
const rawMarkdowns = Utils.getDirsFileNameSync(RAW_MARKDOWN_OUTPUT_DIR).filter(name => !name.endsWith(ENGLISH_MARKDOWN_SIGN))
1617

1718
rawMarkdowns.forEach(filename => {
1819

@@ -80,9 +81,6 @@ const genertateLeetcodeToJson = () => {
8081
name,
8182
company: [
8283
],
83-
// todo
84-
tags: [
85-
],
8684
pre: preKnowledge,
8785
keyPoints,
8886
solution: `https://github.com/azl397985856/leetcode/blob/master/problems/${filename}`,
@@ -93,10 +91,11 @@ const genertateLeetcodeToJson = () => {
9391

9492
Logger.success(`开始生成 "${filename}"`)
9593

96-
Utils.writeFileSync('spider/yield-db-json', `${filename.slice(0, -3)}.json`, JSON.stringify(oCustomStruct, null, 2))
94+
Utils.writeFileSync('spider/yield-db-json', `${name}.json`, JSON.stringify(oCustomStruct, null, 2))
9795

9896
Logger.success(`生成 "${filename}" 完毕`)
99-
97+
console.timeEnd('genertateLeetcodeToJson')
98+
10099

101100

102101
})
@@ -106,7 +105,8 @@ const genertateLeetcodeToJson = () => {
106105

107106
const generateCollectionIndexFile = () => {
108107
Logger.success('开始生产index文件')
109-
const jsonsName = Utils.getDirsFileName(DB_JSON_OUTPUT_DIR)
108+
console.time('generateCollectionIndexFile')
109+
const jsonsName = Utils.getDirsFileNameSync(DB_JSON_OUTPUT_DIR)
110110

111111
let rootContent = `
112112
export const db_collection = {
@@ -118,6 +118,7 @@ const generateCollectionIndexFile = () => {
118118

119119
Utils.writeFileSync('src/db', 'root.db.js', rootContent)
120120
Logger.success('index文件生成完毕')
121+
console.timeEnd('generateCollectionIndexFile')
121122

122123
}
123124

‎scripts/utils.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const Utils = {
2424

2525

2626
httpGet( url,{ beforeRequest, onSuccess, onError,} = {}) {
27-
return new Promise((ok, unExpect) => {
27+
return new Promise((resolve, reject) => {
2828
isFun(beforeRequest) && beforeRequest()
2929
beforeRequest
3030
request({
@@ -34,13 +34,13 @@ const Utils = {
3434
}, (error, response, body) => {
3535
if (error) {
3636

37-
unExpect(error)
37+
reject(error)
3838
isFun(onError) && onError()
3939

4040
} else {
4141

4242
isFun(onSuccess) && onSuccess()
43-
ok(body)
43+
resolve(body)
4444
}
4545
})
4646
})
@@ -98,7 +98,7 @@ const Utils = {
9898
* @returns Array<string>
9999
* @memberof Utils
100100
*/
101-
getDirsFileName(dir) {
101+
getDirsFileNameSync(dir) {
102102
return fs.readdirSync(pathResolve(PROJECT_ROOT, dir), { encoding: 'utf8' })
103103
},
104104

‎src/App.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState, useEffect } from "react";
1+
import React, { useState } from "react";
22
import { Tabs, Tag, Button, Table, Empty, message,Collapse } from "antd";
33
import marked from 'marked'
44
import hljs from 'highlight.js'

0 commit comments

Comments
 (0)