From cb33e8860fe3106f4ad95074c2d9f8fef94d4a2a Mon Sep 17 00:00:00 2001 From: marvzhang Date: Fri, 27 Dec 2019 17:24:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=B8=8A=E4=BC=A0=E7=88=AC?= =?UTF-8?q?=E8=99=AB=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/model/spider.go | 6 +++--- backend/routes/config_spider.go | 2 +- backend/routes/spider.go | 13 +++++++++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/backend/model/spider.go b/backend/model/spider.go index 78adc4d0..02c3aa8d 100644 --- a/backend/model/spider.go +++ b/backend/model/spider.go @@ -157,15 +157,15 @@ func GetSpiderByFileId(fileId bson.ObjectId) *Spider { } // 获取爬虫(根据名称) -func GetSpiderByName(name string) *Spider { +func GetSpiderByName(name string) Spider { s, c := database.GetCol("spiders") defer s.Close() - var result *Spider + var result Spider if err := c.Find(bson.M{"name": name}).One(&result); err != nil { log.Errorf("get spider error: %s, spider_name: %s", err.Error(), name) //debug.PrintStack() - return nil + return result } return result } diff --git a/backend/routes/config_spider.go b/backend/routes/config_spider.go index e387935a..ac6a11e0 100644 --- a/backend/routes/config_spider.go +++ b/backend/routes/config_spider.go @@ -40,7 +40,7 @@ func PutConfigSpider(c *gin.Context) { } // 判断爬虫是否存在 - if spider := model.GetSpiderByName(spider.Name); spider != nil { + if spider := model.GetSpiderByName(spider.Name); spider.Name != "" { HandleErrorF(http.StatusBadRequest, c, fmt.Sprintf("spider for '%s' already exists", spider.Name)) return } diff --git a/backend/routes/spider.go b/backend/routes/spider.go index d338ef0a..1ca45f05 100644 --- a/backend/routes/spider.go +++ b/backend/routes/spider.go @@ -132,7 +132,7 @@ func PutSpider(c *gin.Context) { } // 判断爬虫是否存在 - if spider := model.GetSpiderByName(spider.Name); spider != nil { + if spider := model.GetSpiderByName(spider.Name); spider.Name != "" { HandleErrorF(http.StatusBadRequest, c, fmt.Sprintf("spider for '%s' already exists", spider.Name)) return } @@ -238,7 +238,7 @@ func UploadSpider(c *gin.Context) { // 判断爬虫是否存在 spiderName := strings.Replace(targetFilename, ".zip", "", 1) spider := model.GetSpiderByName(spiderName) - if spider == nil { + if spider.Name == "" { // 保存爬虫信息 srcPath := viper.GetString("spider.path") spider := model.Spider{ @@ -255,6 +255,12 @@ func UploadSpider(c *gin.Context) { _ = spider.Save() } + // 发起同步 + services.PublishAllSpiders() + + // 获取爬虫 + spider = model.GetSpiderByName(spiderName) + c.JSON(http.StatusOK, Response{ Status: "ok", Message: "success", @@ -336,6 +342,9 @@ func UploadSpiderFromId(c *gin.Context) { spider.FileId = fid _ = spider.Save() + // 发起同步 + services.PublishSpider(spider) + c.JSON(http.StatusOK, Response{ Status: "ok", Message: "success",