Skip to content

Commit 8b4b54e

Browse files
committed
adjust sleep time
1 parent 2ed8b16 commit 8b4b54e

File tree

4 files changed

+66
-41
lines changed

4 files changed

+66
-41
lines changed

collector/collector.go

Lines changed: 59 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"strconv"
1010
"strings"
1111
"sync"
12+
"time"
1213
)
1314

1415
import (
@@ -157,43 +158,67 @@ func (c *Collector) submissionForOneLang(sbl []leetcode_cli.Submission) map[stri
157158
return langSubmissionMap
158159
}
159160

160-
func (c *Collector) fetchAllSubmissions() error {
161-
for slug := range c.personInfo.AcProblems {
162-
sbs, e := c.ltClit.QuerySubmissionsByQuestion(slug)
163-
if e != nil {
164-
fmt.Println("QuerySubmissionsByQuestion:", e)
165-
return e
161+
// 一个题目的所有提交
162+
func (c *Collector) fetchOneSubmissions(slug string) error {
163+
sbs, e := c.ltClit.QuerySubmissionsByQuestion(slug)
164+
if e != nil {
165+
fmt.Println("QuerySubmissionsByQuestion:", e)
166+
return e
167+
}
168+
169+
langSubmissionMap := c.submissionForOneLang(sbs.SubmissionList.Submissions)
170+
for _, sb := range langSubmissionMap {
171+
id, e2 := strconv.ParseInt(sb.ID, 10, 64)
172+
if e2 != nil {
173+
panic(e2)
174+
}
175+
// 这里判断是否需要更新提交
176+
if !c.personInfo.SubmissionsNeedUpdate(slug, sb.Lang, sb.Timestamp) {
177+
continue
166178
}
167179

168-
langSubmissionMap := c.submissionForOneLang(sbs.SubmissionList.Submissions)
169-
for _, sb := range langSubmissionMap {
170-
id, e2 := strconv.ParseInt(sb.ID, 10, 64)
171-
if e2 != nil {
172-
panic(e2)
173-
}
174-
// 这里判断是否需要更新提交
175-
if !c.personInfo.SubmissionsNeedUpdate(slug, sb.Lang, sb.Timestamp) {
176-
continue
180+
// 获取提交的代码
181+
if err := tryNTimes(3, func(i int) error {
182+
sbDetail, e3 := c.ltClit.QuerySubmissionDetail(id)
183+
if e3 != nil {
184+
fmt.Printf("%+v \n", sbs)
185+
fmt.Printf("%+v \n", sb)
186+
fmt.Println(id, "QuerySubmissionDetail error:", e3)
187+
time.Sleep(time.Second * time.Duration(5))
188+
return e3
177189
}
190+
titleSlug := sbDetail.SubmissionDetail.Question.TitleSlug
191+
c.personInfo.SetAcSubmissions(titleSlug, sbDetail.SubmissionDetail)
192+
return nil
193+
}); err != nil {
194+
// delete this titleSlug
195+
c.personInfo.DeleteAcSetAcSubmission(slug)
196+
return err
197+
}
198+
}
199+
return nil
200+
}
178201

179-
// 获取提交的代码
180-
if err := tryNTimes(3, func(i int) error {
181-
sbDetail, e3 := c.ltClit.QuerySubmissionDetail(id)
182-
if e3 != nil {
183-
fmt.Printf("%+v \n", sbs)
184-
fmt.Printf("%+v \n", sb)
185-
fmt.Println(id, "QuerySubmissionDetail error:", e3)
186-
// panic(e3)
187-
return e3
188-
}
189-
titleSlug := sbDetail.SubmissionDetail.Question.TitleSlug
190-
c.personInfo.SetAcSubmissions(titleSlug, sbDetail.SubmissionDetail)
191-
return nil
192-
}); err != nil {
193-
// delete this titleSlug
194-
c.personInfo.DeleteAcSetAcSubmission(slug)
195-
return err
202+
func (c *Collector) fetchAllSubmissions() error {
203+
cnt := 0
204+
for slug := range c.personInfo.AcProblems {
205+
cnt++
206+
if cnt > 10 {
207+
// 限速
208+
time.Sleep(time.Millisecond * time.Duration(100))
209+
cnt = 0
210+
}
211+
212+
if err := tryNTimes(4, func(i int) error {
213+
e := c.fetchOneSubmissions(slug)
214+
if e != nil {
215+
time.Sleep(time.Duration(15) * time.Second)
216+
c.ltClit.ReLogin()
217+
return e
196218
}
219+
return nil
220+
}); err != nil {
221+
panic(err)
197222
}
198223
}
199224
return nil
@@ -283,14 +308,12 @@ func (c *Collector) LoadInfo() error {
283308

284309
func (c *Collector) FetchFromLeetCode() error {
285310
// 所有的AC
286-
err := c.fetchAllProblems()
287-
if err != nil {
311+
if err := c.fetchAllProblems(); err != nil {
288312
return err
289313
}
290314

291315
// 所有的AC的提交
292-
err = c.fetchAllSubmissions()
293-
if err != nil {
316+
if err := c.fetchAllSubmissions(); err != nil {
294317
return c.dumpInfo()
295318
}
296319
return c.dumpInfo()

collector/leetcode_cli/client.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ func (c *Client) setLoginFlag(isLogIn bool) {
187187
c.loginFlag = isLogIn
188188
}
189189

190-
func (c *Client) reLogin() error {
190+
func (c *Client) ReLogin() error {
191191
c.setLoginFlag(false)
192192
c.httpCli.CloseIdleConnections()
193193
c.httpCli = newHttpClint()
@@ -358,7 +358,7 @@ func (c *Client) QuerySubmissionsByQuestion(questionSlug string) (*SubmissionsBy
358358

359359
graphqlCli := graphql.NewClient(c.graphqlURl(), graphql.WithHTTPClient(httpCli))
360360
graphqlCli.Log = func(s string) {
361-
//log.Println(s)
361+
log.Println(s)
362362
}
363363

364364
req := graphql.NewRequest(QuerySubmissionByQuestionSlug)
@@ -433,8 +433,6 @@ func (c *Client) QuerySubmissionDetail(id int64) (*SubmissionDetailResponse, err
433433

434434
if r.SubmissionDetail == nil {
435435
fmt.Println("%%%%%%$$$$$$$$$$$$", buff.String())
436-
time.Sleep(30 * time.Second)
437-
c.reLogin()
438436
return nil, errors.Wrap(ErrorSubmissionDetail, "body SubmissionDetail is null")
439437
}
440438
return r, nil

collector/model/output_solutions.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ func findExt(lang string) string {
5050
return ".rs"
5151
case "golang":
5252
return ".go"
53+
case "javascript":
54+
return ".js"
55+
case "typescript":
56+
return ".ts"
5357
}
5458
return "." + lang
5559
}

config.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
OutputDir = 'C:\Users\ingm\Desktop\code\github\leetcode_sync'
1+
OutputDir = 'C:\Users\ingm\Desktop\code\github\leetcode_solutions'

0 commit comments

Comments
 (0)