index.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. package controllers
  2. import (
  3. "github.com/cnlh/easyProxy/lib"
  4. )
  5. type IndexController struct {
  6. BaseController
  7. }
  8. func (s *IndexController) Index() {
  9. s.SetInfo("使用说明")
  10. s.display("index/index")
  11. }
  12. func (s *IndexController) Tcp() {
  13. s.SetInfo("tcp隧道管理")
  14. s.SetType("tunnelServer")
  15. s.display("index/list")
  16. }
  17. func (s *IndexController) Udp() {
  18. s.SetInfo("udp隧道管理")
  19. s.SetType("udpServer")
  20. s.display("index/list")
  21. }
  22. func (s *IndexController) Socks5() {
  23. s.SetInfo("socks5管理")
  24. s.SetType("sock5Server")
  25. s.display("index/list")
  26. }
  27. func (s *IndexController) Http() {
  28. s.SetInfo("http代理管理")
  29. s.SetType("httpProxyServer")
  30. s.display("index/list")
  31. }
  32. func (s *IndexController) Host() {
  33. s.SetInfo("host模式管理")
  34. s.SetType("hostServer")
  35. s.display("index/list")
  36. }
  37. func (s *IndexController) GetTaskList() {
  38. start, length := s.GetAjaxParams()
  39. taskType := s.GetString("type")
  40. list, cnt := lib.CsvDb.GetTaskList(start, length, taskType)
  41. s.AjaxTable(list, cnt, cnt)
  42. }
  43. func (s *IndexController) Add() {
  44. if s.Ctx.Request.Method == "GET" {
  45. s.Data["type"] = s.GetString("type")
  46. s.SetInfo("新增")
  47. s.display()
  48. } else {
  49. t := &lib.TaskList{
  50. TcpPort: s.GetIntNoErr("port"),
  51. Mode: s.GetString("type"),
  52. Target: s.GetString("target"),
  53. VerifyKey: lib.GetRandomString(16),
  54. U: s.GetString("u"),
  55. P: s.GetString("p"),
  56. Compress: s.GetString("compress"),
  57. Crypt: s.GetString("crypt"),
  58. IsRun: 0,
  59. }
  60. lib.CsvDb.NewTask(t)
  61. if err := lib.AddTask(t); err != nil {
  62. s.AjaxErr(err.Error())
  63. } else {
  64. s.AjaxOk("添加成功")
  65. }
  66. }
  67. }
  68. func (s *IndexController) Edit() {
  69. if s.Ctx.Request.Method == "GET" {
  70. vKey := s.GetString("vKey")
  71. if t, err := lib.CsvDb.GetTask(vKey); err != nil {
  72. s.error()
  73. } else {
  74. s.Data["t"] = t
  75. }
  76. s.SetInfo("修改")
  77. s.display()
  78. } else {
  79. vKey := s.GetString("vKey")
  80. if t, err := lib.CsvDb.GetTask(vKey); err != nil {
  81. s.error()
  82. } else {
  83. t.TcpPort = s.GetIntNoErr("port")
  84. t.Mode = s.GetString("type")
  85. t.Target = s.GetString("target")
  86. t.U = s.GetString("u")
  87. t.P = s.GetString("p")
  88. t.Compress = s.GetString("compress")
  89. t.Crypt = s.GetString("crypt")
  90. lib.CsvDb.UpdateTask(t)
  91. lib.StopServer(t.VerifyKey)
  92. lib.StartTask(t.VerifyKey)
  93. }
  94. s.AjaxOk("修改成功")
  95. }
  96. }
  97. func (s *IndexController) Stop() {
  98. vKey := s.GetString("vKey")
  99. if err := lib.StopServer(vKey); err != nil {
  100. s.AjaxErr("停止失败")
  101. }
  102. s.AjaxOk("停止成功")
  103. }
  104. func (s *IndexController) Del() {
  105. vKey := s.GetString("vKey")
  106. if err := lib.DelTask(vKey); err != nil {
  107. s.AjaxErr("删除失败")
  108. }
  109. s.AjaxOk("删除成功")
  110. }
  111. func (s *IndexController) Start() {
  112. vKey := s.GetString("vKey")
  113. if err := lib.StartTask(vKey); err != nil {
  114. s.AjaxErr("开启失败")
  115. }
  116. s.AjaxOk("开启成功")
  117. }
  118. func (s *IndexController) HostList() {
  119. if s.Ctx.Request.Method == "GET" {
  120. s.Data["vkey"] = s.GetString("vkey")
  121. s.SetInfo("域名列表")
  122. s.display("index/hlist")
  123. } else {
  124. start, length := s.GetAjaxParams()
  125. vkey := s.GetString("vkey")
  126. list, cnt := lib.CsvDb.GetHostList(start, length, vkey)
  127. s.AjaxTable(list, cnt, cnt)
  128. }
  129. }
  130. func (s *IndexController) DelHost() {
  131. host := s.GetString("host")
  132. if err := lib.CsvDb.DelHost(host); err != nil {
  133. s.AjaxErr("删除失败")
  134. }
  135. s.AjaxOk("删除成功")
  136. }
  137. func (s *IndexController) AddHost() {
  138. if s.Ctx.Request.Method == "GET" {
  139. s.Data["vkey"] = s.GetString("vkey")
  140. s.SetInfo("新增")
  141. s.display("index/hadd")
  142. } else {
  143. h := &lib.HostList{
  144. Vkey: s.GetString("vkey"),
  145. Host: s.GetString("host"),
  146. Target: s.GetString("target"),
  147. }
  148. lib.CsvDb.NewHost(h)
  149. s.AjaxOk("添加成功")
  150. }
  151. }