Skip to content

Commit 25ef08e

Browse files
committed
helper 调整了代码的位置
1 parent 61e79b0 commit 25ef08e

File tree

5 files changed

+18
-112
lines changed

5 files changed

+18
-112
lines changed

Helper/leetcode.go

Lines changed: 5 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -2,56 +2,20 @@ package main
22

33
import (
44
"encoding/json"
5-
"errors"
6-
"fmt"
75
"io/ioutil"
86
"log"
97
"os"
10-
"time"
118
)
129

13-
const (
14-
leetCodeJSON = "leetcode.json"
15-
)
16-
17-
type leetcode struct {
18-
Username string // 用户名
19-
Ranking int // 网站排名
20-
Updated time.Time // 数据更新时间
21-
22-
Record record // 已解答题目与全部题目的数量,按照难度统计
23-
Problems problems // 所有问题的集合
24-
}
25-
26-
func newLeetCode() *leetcode {
27-
log.Println("开始,获取 LeetCode 数据")
28-
29-
lc, err := readLeetCode()
30-
if err != nil {
31-
log.Println("读取 LeetCode 的记录失败,正在重新生成 LeetCode 记录。失败原因:", err.Error())
32-
lc = latestLeetCode()
33-
}
34-
35-
lc.refresh()
36-
37-
lc.save()
38-
39-
log.Println("获取 LeetCode 的最新数据")
40-
return lc
41-
}
42-
43-
func readLeetCode() (*leetcode, error) {
10+
func readLeetCode() *leetcode {
4411
data, err := ioutil.ReadFile(leetCodeJSON)
45-
if err != nil {
46-
return nil, errors.New("读取文件失败:" + err.Error())
47-
}
12+
check(err)
4813

4914
lc := new(leetcode)
50-
if err := json.Unmarshal(data, lc); err != nil {
51-
return nil, errors.New("转换成 leetcode 时,失败:" + err.Error())
52-
}
15+
err = json.Unmarshal(data, lc)
16+
check(err)
5317

54-
return lc, nil
18+
return lc
5519
}
5620

5721
func (lc *leetcode) save() {
@@ -71,74 +35,6 @@ func (lc *leetcode) save() {
7135
return
7236
}
7337

74-
func (lc *leetcode) refresh() {
75-
if time.Since(lc.Updated) < time.Minute {
76-
log.Printf("LeetCode 数据在 %s 前刚刚更新过,跳过此次刷新\n", time.Since(lc.Updated))
77-
return
78-
}
79-
80-
log.Println("开始,刷新 LeetCode 数据")
81-
newLC := latestLeetCode()
82-
83-
logDiff(lc, newLC)
84-
85-
*lc = *newLC
86-
}
87-
88-
func logDiff(old, new *leetcode) {
89-
// 对比 ranking
90-
str := fmt.Sprintf("当前排名 %d", new.Ranking)
91-
verb, delta := "进步", old.Ranking-new.Ranking
92-
if new.Ranking > old.Ranking {
93-
verb, delta = "后退", new.Ranking-old.Ranking
94-
}
95-
str += fmt.Sprintf(",%s了 %d 名", verb, delta)
96-
log.Println(str)
97-
98-
lenOld, lenNew := len(old.Problems), len(new.Problems)
99-
hasNewFinished := false
100-
101-
i := 0
102-
103-
// 检查新旧都有的问题
104-
for i < lenOld && i < lenNew {
105-
o, n := old.Problems[i], new.Problems[i]
106-
// 检查是 n 是否是新 完成
107-
if o.IsAccepted == false && n.IsAccepted == true {
108-
log.Printf("~新完成~ %d - %s", n.ID, n.Title)
109-
hasNewFinished = true
110-
}
111-
// 检查是 n 是否是新 收藏
112-
if o.IsFavor == false && n.IsFavor == true {
113-
log.Printf("~新收藏~ %d - %s", n.ID, n.Title)
114-
} else if o.IsFavor == true && n.IsFavor == false {
115-
log.Printf("~取消收藏~ %d - %s", o.ID, o.Title)
116-
time.Sleep(time.Second)
117-
}
118-
119-
// 有时候,会在中间添加新题
120-
if o.Title == "" && n.Title != "" {
121-
log.Printf("新题: %d - %s", new.Problems[i].ID, new.Problems[i].Title)
122-
}
123-
124-
i++
125-
}
126-
127-
log.Printf("已经检查完了 %d 题\n", i)
128-
129-
if !hasNewFinished {
130-
log.Println("~ 没有新完成习题 ~")
131-
}
132-
133-
// 检查新添加的习题
134-
for i < lenNew {
135-
if new.Problems[i].isAvailable() {
136-
log.Printf("新题: %d - %s", new.Problems[i].ID, new.Problems[i].Title)
137-
}
138-
i++
139-
}
140-
}
141-
14238
func (lc *leetcode) ProgressTable() string {
14339
return lc.Record.progressTable()
14440
}

Helper/myData.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,18 @@ import (
1313

1414
const (
1515
unavailableFile = "unavailable.json"
16+
leetCodeJSON = "leetcode.json"
1617
)
1718

19+
type leetcode struct {
20+
Username string // 用户名
21+
Ranking int // 网站排名
22+
Updated time.Time // 数据更新时间
23+
24+
Record record // 已解答题目与全部题目的数量,按照难度统计
25+
Problems problems // 所有问题的集合
26+
}
27+
1828
func updateMyData() {
1929
lc := latestLeetCode()
2030
lc.save()

Helper/problemFolder.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ func buildProblemFolder(problemNum int) {
1616
log.Printf("~~ 开始生成第 %d 题的文件夹 ~~\n", problemNum)
1717

1818
// 获取 LeetCode 的记录文件
19-
lc := newLeetCode()
19+
lc := readLeetCode()
2020

2121
// 检查 problemNum 的合法性
2222
if problemNum >= len(lc.Problems) {

Helper/readme.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
func buildReadme() {
1212
log.Println("开始,重建 README 文档")
1313

14-
lc := newLeetCode()
14+
lc := readLeetCode()
1515

1616
makeReadmeFile(lc)
1717

Helper/task.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ func makeTaskFile(prefix string, first, last int) {
1313

1414
res := ""
1515
count := 0
16-
ps := newLeetCode().Problems
16+
ps := readLeetCode().Problems
1717
var isWanted func(int) bool
1818
collect := func() {
1919
for i := first; i <= last && i < len(ps); i++ {

0 commit comments

Comments
 (0)