Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 67f1b50

Browse files
committed
支持:改为 issue 方式选题
1 parent 39e134b commit 67f1b50

File tree

2 files changed

+66
-1
lines changed

2 files changed

+66
-1
lines changed

src/logic/github.go

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,24 @@ func (self GithubLogic) translating(filesResult gjson.Result, _prInfo *prInfo) e
183183
filename := val.Get("filename").String()
184184
// 是否对原文的改动
185185
if !strings.HasPrefix(filename, "sources") {
186+
187+
// 目前改为采用 issue 的方式选题,不再有 sources
188+
if strings.HasPrefix(filename, "translated") {
189+
filenames := strings.SplitN(filename, "/", 3)
190+
if len(filenames) < 3 {
191+
return true
192+
}
193+
title := filenames[2]
194+
if title == "" {
195+
return true
196+
}
197+
198+
err := self.issueTranslated(_prInfo, title)
199+
if err != nil {
200+
outErr = err
201+
}
202+
}
203+
186204
return true
187205
}
188206

@@ -209,6 +227,53 @@ func (self GithubLogic) translating(filesResult gjson.Result, _prInfo *prInfo) e
209227
return outErr
210228
}
211229

230+
func (self GithubLogic) issueTranslated(_prInfo *prInfo, title string) error {
231+
md5 := goutils.Md5(title)
232+
gcttGit := &model.GCTTGit{}
233+
_, err := MasterDB.Where("md5=?", md5).Get(gcttGit)
234+
if err != nil {
235+
logger.Errorln("GithubLogic insertOrUpdateGCCT get error:", err)
236+
return err
237+
}
238+
239+
if gcttGit.Id > 0 {
240+
return nil
241+
}
242+
243+
gcttUser := DefaultGCTT.FindOne(nil, _prInfo.username)
244+
245+
session := MasterDB.NewSession()
246+
defer session.Close()
247+
session.Begin()
248+
249+
if gcttUser.Id == 0 {
250+
gcttUser.Username = _prInfo.username
251+
gcttUser.Avatar = _prInfo.avatar
252+
gcttUser.JoinedAt = _prInfo.prTime.Unix()
253+
_, err = session.Insert(gcttUser)
254+
if err != nil {
255+
session.Rollback()
256+
logger.Errorln("GithubLogic issueTranslated insert gctt_user error:", err)
257+
return err
258+
}
259+
}
260+
261+
gcttGit.Username = _prInfo.username
262+
gcttGit.Title = title
263+
gcttGit.Md5 = md5
264+
gcttGit.PR = _prInfo.number
265+
gcttGit.TranslatedAt = _prInfo.prTime.Unix()
266+
_, err = MasterDB.Insert(gcttGit)
267+
if err != nil {
268+
session.Rollback()
269+
logger.Errorln("GithubLogic issueTranslated insert error:", err)
270+
return err
271+
}
272+
273+
session.Commit()
274+
return nil
275+
}
276+
212277
func (self GithubLogic) translated(filesResult gjson.Result, _prInfo *prInfo) error {
213278
var (
214279
sourceTitle string

src/logic/github_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
func TestPullPR(t *testing.T) {
1818
logger.Init(config.ROOT+"/log", config.ConfigFile.MustValue("global", "log_level", "DEBUG"))
1919

20-
err := logic.DefaultGithub.PullPR("studygolang/GCTT", false)
20+
err := logic.DefaultGithub.PullPR("studygolang/GCTT", true)
2121
if err != nil {
2222
t.Error("pull request error:", err)
2323
}

0 commit comments

Comments
 (0)