|
@@ -418,36 +418,45 @@ func LuaTextCheck(list, detail string, type_list int) (b bool, msg string) {
|
|
|
func (f *Front) Assort() {
|
|
|
state, _ := f.GetInteger("state")
|
|
|
code := f.GetString("code")
|
|
|
- sql := map[string]interface{}{
|
|
|
- "$set": map[string]interface{}{
|
|
|
- "state": state,
|
|
|
- "modifytime": time.Now().Unix(),
|
|
|
- },
|
|
|
- }
|
|
|
- queryT := map[string]interface{}{
|
|
|
- "code": code,
|
|
|
- }
|
|
|
- //下架爬虫
|
|
|
- lua, _ := u.MgoE.FindOne("luaconfig", queryT)
|
|
|
- upresult, err := spider.UpdateSpiderByCodeState(code, "6", qu.IntAll((*lua)["event"]))
|
|
|
- qu.Debug("下架爬虫:", code, upresult, err)
|
|
|
- if upresult && err == nil {
|
|
|
- //更新爬虫
|
|
|
- u.MgoE.Update("luaconfig", queryT, sql, false, false)
|
|
|
- //关闭任务
|
|
|
+ codes := u.SymbolReg.Split(code, -1)
|
|
|
+ success := true
|
|
|
+ msg := ""
|
|
|
+ for _, code := range codes {
|
|
|
query := map[string]interface{}{
|
|
|
- "s_code": code,
|
|
|
+ "code": code,
|
|
|
}
|
|
|
- sql = map[string]interface{}{
|
|
|
- "$set": map[string]interface{}{
|
|
|
- "i_state": 6,
|
|
|
- },
|
|
|
+ //下架爬虫
|
|
|
+ lua, _ := u.MgoE.FindOne("luaconfig", query)
|
|
|
+ upresult, err := spider.UpdateSpiderByCodeState(code, "6", qu.IntAll((*lua)["event"]))
|
|
|
+ qu.Debug("下架爬虫:", code, upresult, err)
|
|
|
+ if upresult && err == nil {
|
|
|
+ //更新爬虫状态
|
|
|
+ update := map[string]interface{}{
|
|
|
+ "$set": map[string]interface{}{
|
|
|
+ "state": state,
|
|
|
+ "modifytime": time.Now().Unix(),
|
|
|
+ },
|
|
|
+ }
|
|
|
+ u.MgoE.Update("luaconfig", query, update, false, false)
|
|
|
+ //关闭任务
|
|
|
+ query = map[string]interface{}{
|
|
|
+ "s_code": code,
|
|
|
+ }
|
|
|
+ update = map[string]interface{}{
|
|
|
+ "$set": map[string]interface{}{
|
|
|
+ "i_state": 6,
|
|
|
+ },
|
|
|
+ }
|
|
|
+ u.MgoE.Update("task", query, update, false, true)
|
|
|
+ //删除心跳
|
|
|
+ DelSpiderHeart(code)
|
|
|
+ } else {
|
|
|
+ success = false
|
|
|
+ msg += code + ";"
|
|
|
}
|
|
|
- u.MgoE.Update("task", query, sql, false, true)
|
|
|
- //删除心跳
|
|
|
- DelSpiderHeart(code)
|
|
|
}
|
|
|
- f.ServeJson(map[string]interface{}{"upresult": upresult})
|
|
|
+
|
|
|
+ f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
|
|
|
}
|
|
|
|
|
|
//方法测试
|
|
@@ -735,33 +744,46 @@ func (f *Front) SpiderPass() {
|
|
|
f.ServeJson(steps)
|
|
|
}
|
|
|
|
|
|
-func (f *Front) DownSpider(id string) {
|
|
|
- //auth := qu.IntAll(f.GetSession("auth"))
|
|
|
- //if auth > role_dev {
|
|
|
- one, _ := u.MgoE.FindOne("luaconfig", map[string]interface{}{"code": id})
|
|
|
- createuserid := qu.ObjToString((*one)["createuserid"])
|
|
|
+func (f *Front) DownSpider(code string) {
|
|
|
+ auth := qu.IntAll(f.GetSession("auth"))
|
|
|
+ user := f.GetSession("loginuser")
|
|
|
+ success := false
|
|
|
script := ""
|
|
|
- filename := id + ".lua"
|
|
|
- if len(*one) > 0 {
|
|
|
- if (*one)["oldlua"] != nil {
|
|
|
- if (*one)["luacontent"] != nil {
|
|
|
- script = (*one)["luacontent"].(string)
|
|
|
+ if auth > role_dev {
|
|
|
+ success = true
|
|
|
+ one, _ := u.MgoE.FindOne("luaconfig", map[string]interface{}{"code": code})
|
|
|
+ createuserid := qu.ObjToString((*one)["createuserid"])
|
|
|
+ filename := code + ".lua"
|
|
|
+ if len(*one) > 0 {
|
|
|
+ if (*one)["oldlua"] != nil {
|
|
|
+ if (*one)["luacontent"] != nil {
|
|
|
+ script = (*one)["luacontent"].(string)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ user, _ := u.MgoE.FindById("user", createuserid, nil)
|
|
|
+ name := (*one)["createuser"]
|
|
|
+ email := (*user)["s_email"]
|
|
|
+ upload := time.Now().Format("2006-01-02 15:04:05")
|
|
|
+ script, _, _ = spider.GetScript(code, name, email, upload)
|
|
|
}
|
|
|
- } else {
|
|
|
- user, _ := u.MgoE.FindById("user", createuserid, nil)
|
|
|
- name := (*one)["createuser"]
|
|
|
- email := (*user)["s_email"]
|
|
|
- upload := time.Now().Format("2006-01-02 15:04:05")
|
|
|
- script, _, _ = spider.GetScript(id, name, email, upload)
|
|
|
}
|
|
|
+ f.ResponseWriter.Header().Del("Content-Type")
|
|
|
+ f.ResponseWriter.Header().Add("Content-Type", "application/x-download")
|
|
|
+ f.ResponseWriter.Header().Add("Content-Disposition", "attachment;filename=spider_"+filename)
|
|
|
+ f.WriteBytes([]byte(script))
|
|
|
+ } else {
|
|
|
+ f.Write("您没有权限")
|
|
|
+ }
|
|
|
+ //记录日志
|
|
|
+ downlogs := map[string]interface{}{
|
|
|
+ "code": code,
|
|
|
+ "user": user,
|
|
|
+ "auth": auth,
|
|
|
+ "time": time.Now().Unix(),
|
|
|
+ "success": success,
|
|
|
+ "script": script,
|
|
|
}
|
|
|
- f.ResponseWriter.Header().Del("Content-Type")
|
|
|
- f.ResponseWriter.Header().Add("Content-Type", "application/x-download")
|
|
|
- f.ResponseWriter.Header().Add("Content-Disposition", "attachment;filename=spider_"+filename)
|
|
|
- f.WriteBytes([]byte(script))
|
|
|
- // } else {
|
|
|
- // f.Write("您没有权限")
|
|
|
- // }
|
|
|
+ u.MgoE.Save("luadownlogs", downlogs)
|
|
|
}
|
|
|
|
|
|
//更新爬虫状态
|