package main import ( _ "filter" "front" "luacheck" "quesManager" "spider" "task" "timetask" "vps" //. "luaweb/task" "luaerrdata" "net/http" qu "qfw/util" "qfw/util/redis" "taskManager" u "util" codegrpc "analysiscode/client" util "spiderutil" "time" "github.com/go-xweb/httpsession" "github.com/go-xweb/xweb" "github.com/yuin/gopher-lua" ) func init() { //qu.ReadConfig("config.json", &tomail.Mail) front.SessMap = make(map[string]*httpsession.Session) qu.ReadConfig(&util.Config) qu.ReadConfig("autoimport.json", &front.AutoTpl) qu.ReadConfig("transfercode.json", &front.Transfercode) u.InitRandomCode() //vps qu.ReadConfig("vpsconfig.json", &vps.VpsConfig) //redis redis.InitRedis(util.Config.Redisservers) //验证码识别client codegrpc.InitCodeGrpcClient() //go执行js服务 //gojs.InitGoRunJsClient() //mail smtp := util.Config.Smtp front.Mails = util.New(smtp["addr"], qu.IntAll(smtp["port"]), smtp["user"], smtp["pwd"]) lua.Disablelib(util.Config.Luadisablelib) //初始化mgo u.InitMgo() //初始化区域信息 u.InitAreaCity() //xweb框架配置 xweb.Config.RecoverPanic = true xweb.Config.Profiler = true xweb.RootApp().AppConfig.TemplateDir = "web/templates" xweb.RootApp().AppConfig.StaticDir = "web/staticres" xweb.RootApp().AppConfig.StaticFileVersion = false xweb.RootApp().AppConfig.CheckXsrf = false xweb.RootApp().AppConfig.ReloadTemplates = true xweb.RootApp().AppConfig.EnableHttpCache = false xweb.RootApp().AppConfig.Mode = xweb.Product xweb.RootApp().AppConfig.CacheTemplates = false xweb.AddAction(&front.Front{}) xweb.AddAction(&front.Site{}) xweb.AddAction(&vps.Vps{}) xweb.AddAction(&taskManager.TaskM{}) xweb.AddAction(&task.Task{}) xweb.AddAction(&quesManager.QuesM{}) xweb.AddAction(&luaerrdata.ErrorData{}) xweb.AddAction(&luaerrdata.ErrorLua{}) xweb.AddAction(&front.LuaMove{}) xweb.RootApp().AppConfig.SessionTimeout = 1 * time.Hour xweb.RootApp().Logger.SetOutputLevel(4) xweb.AddTmplVar("add", func(a, b int) int { return a + b }) spider.InitMsgClient( qu.ObjToString(util.Config.Msgservers["comm"]["addr"]), qu.ObjToString(util.Config.Msgservers["bid"]["addr"]), qu.ObjToString(util.Config.Msgservers["test"]["addr"]), qu.ObjToString(util.Config.Msgservers["comm"]["name"]), qu.ObjToString(util.Config.Msgservers["bid"]["name"]), qu.ObjToString(util.Config.Msgservers["test"]["name"]), ) spider.InitMsgClientFile(util.Config.MsgserveraddrFile, util.Config.Msgname+"_file") spider.InitChromeMsgClient(util.Config.MsgserveraddrChromedp, util.Config.MsgserveraddrChromedpTest, util.Config.Msgname+"_chromedp", util.Config.Msgname+"_chromedptest") //初始化网络存储服务 //util.InitWeedcl() util.OssInit( qu.ObjToString(util.Config.OssInfo["ossEndpoint"]), qu.ObjToString(util.Config.OssInfo["ossAccessKeyId"]), qu.ObjToString(util.Config.OssInfo["ossAccessKeySecret"]), qu.ObjToString(util.Config.OssInfo["ossBucketName"]), ) //udp //udp.InitUdp()//异常数据重采,暂取消该功能 } func main() { //定时任务 go timetask.TimeTask() //爬虫质检 go luacheck.LuaCheckStart() //万能爬虫校验 //go commutil.CommCodeCheck() //提供接口,接收其他数据 http.HandleFunc("/spider/infos", func(w http.ResponseWriter, req *http.Request) { data := req.FormValue("data") types := req.FormValue("type") if types == "info" { front.SpiderInfo(data) } if types == "mtask" { front.SpiderModifyTask(data) } //if types == "code" { //节点转移(由于6011端口总挂,调整为定时任务) // front.SpiderMoveEvent(data) //} }) go http.ListenAndServe(":6011", nil) xweb.Run(":" + util.Config.Webport) }