main.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package main
  2. import (
  3. _ "filter"
  4. "front"
  5. "luacheck"
  6. "quesManager"
  7. "spider"
  8. "task"
  9. "timetask"
  10. "vps"
  11. //. "luaweb/task"
  12. "luaerrdata"
  13. "net/http"
  14. qu "qfw/util"
  15. "qfw/util/redis"
  16. "taskManager"
  17. u "util"
  18. codegrpc "analysiscode/client"
  19. util "spiderutil"
  20. "time"
  21. "github.com/go-xweb/httpsession"
  22. "github.com/go-xweb/xweb"
  23. "github.com/yuin/gopher-lua"
  24. )
  25. func init() {
  26. //qu.ReadConfig("config.json", &tomail.Mail)
  27. front.SessMap = make(map[string]*httpsession.Session)
  28. qu.ReadConfig(&util.Config)
  29. qu.ReadConfig("autoimport.json", &front.AutoTpl)
  30. qu.ReadConfig("transfercode.json", &front.Transfercode)
  31. u.InitRandomCode()
  32. //vps
  33. qu.ReadConfig("vpsconfig.json", &vps.VpsConfig)
  34. //redis
  35. redis.InitRedis(util.Config.Redisservers)
  36. //验证码识别client
  37. codegrpc.InitCodeGrpcClient()
  38. //go执行js服务
  39. //gojs.InitGoRunJsClient()
  40. //mail
  41. smtp := util.Config.Smtp
  42. front.Mails = util.New(smtp["addr"], qu.IntAll(smtp["port"]), smtp["user"], smtp["pwd"])
  43. lua.Disablelib(util.Config.Luadisablelib)
  44. //初始化mgo
  45. u.InitMgo()
  46. //初始化区域信息
  47. u.InitAreaCity()
  48. //xweb框架配置
  49. xweb.Config.RecoverPanic = true
  50. xweb.Config.Profiler = true
  51. xweb.RootApp().AppConfig.TemplateDir = "web/templates"
  52. xweb.RootApp().AppConfig.StaticDir = "web/staticres"
  53. xweb.RootApp().AppConfig.StaticFileVersion = false
  54. xweb.RootApp().AppConfig.CheckXsrf = false
  55. xweb.RootApp().AppConfig.ReloadTemplates = true
  56. xweb.RootApp().AppConfig.EnableHttpCache = false
  57. xweb.RootApp().AppConfig.Mode = xweb.Product
  58. xweb.RootApp().AppConfig.CacheTemplates = false
  59. xweb.AddAction(&front.Front{})
  60. xweb.AddAction(&front.Site{})
  61. xweb.AddAction(&vps.Vps{})
  62. xweb.AddAction(&taskManager.TaskM{})
  63. xweb.AddAction(&task.Task{})
  64. xweb.AddAction(&quesManager.QuesM{})
  65. xweb.AddAction(&luaerrdata.ErrorData{})
  66. xweb.AddAction(&luaerrdata.ErrorLua{})
  67. xweb.AddAction(&front.LuaMove{})
  68. xweb.RootApp().AppConfig.SessionTimeout = 1 * time.Hour
  69. xweb.RootApp().Logger.SetOutputLevel(4)
  70. xweb.AddTmplVar("add", func(a, b int) int { return a + b })
  71. spider.InitMsgClient(
  72. qu.ObjToString(util.Config.Msgservers["comm"]["addr"]),
  73. qu.ObjToString(util.Config.Msgservers["bid"]["addr"]),
  74. qu.ObjToString(util.Config.Msgservers["test"]["addr"]),
  75. qu.ObjToString(util.Config.Msgservers["comm"]["name"]),
  76. qu.ObjToString(util.Config.Msgservers["bid"]["name"]),
  77. qu.ObjToString(util.Config.Msgservers["test"]["name"]),
  78. )
  79. spider.InitMsgClientFile(util.Config.MsgserveraddrFile, util.Config.Msgname+"_file")
  80. spider.InitChromeMsgClient(util.Config.MsgserveraddrChromedp, util.Config.MsgserveraddrChromedpTest, util.Config.Msgname+"_chromedp", util.Config.Msgname+"_chromedptest")
  81. //初始化网络存储服务
  82. //util.InitWeedcl()
  83. util.OssInit(
  84. qu.ObjToString(util.Config.OssInfo["ossEndpoint"]),
  85. qu.ObjToString(util.Config.OssInfo["ossAccessKeyId"]),
  86. qu.ObjToString(util.Config.OssInfo["ossAccessKeySecret"]),
  87. qu.ObjToString(util.Config.OssInfo["ossBucketName"]),
  88. )
  89. //udp
  90. //udp.InitUdp()//异常数据重采,暂取消该功能
  91. }
  92. func main() {
  93. //定时任务
  94. go timetask.TimeTask()
  95. //爬虫质检
  96. go luacheck.LuaCheckStart()
  97. //万能爬虫校验
  98. //go commutil.CommCodeCheck()
  99. //提供接口,接收其他数据
  100. http.HandleFunc("/spider/infos", func(w http.ResponseWriter, req *http.Request) {
  101. data := req.FormValue("data")
  102. types := req.FormValue("type")
  103. if types == "info" {
  104. front.SpiderInfo(data)
  105. }
  106. if types == "mtask" {
  107. front.SpiderModifyTask(data)
  108. }
  109. //if types == "code" { //节点转移(由于6011端口总挂,调整为定时任务)
  110. // front.SpiderMoveEvent(data)
  111. //}
  112. })
  113. go http.ListenAndServe(":6011", nil)
  114. xweb.Run(":" + util.Config.Webport)
  115. }