1
0

index.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  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. IsRun: 0,
  58. }
  59. lib.CsvDb.NewTask(t)
  60. if err := lib.AddTask(t); err != nil {
  61. s.AjaxErr(err.Error())
  62. } else {
  63. s.AjaxOk("添加成功")
  64. }
  65. }
  66. }
  67. func (s *IndexController) Edit() {
  68. if s.Ctx.Request.Method == "GET" {
  69. vKey := s.GetString("vKey")
  70. if t, err := lib.CsvDb.GetTask(vKey); err != nil {
  71. s.error()
  72. } else {
  73. s.Data["t"] = t
  74. }
  75. s.SetInfo("修改")
  76. s.display()
  77. } else {
  78. vKey := s.GetString("vKey")
  79. if t, err := lib.CsvDb.GetTask(vKey); err != nil {
  80. s.error()
  81. } else {
  82. t.TcpPort = s.GetIntNoErr("port")
  83. t.Mode = s.GetString("type")
  84. t.Target = s.GetString("target")
  85. t.U = s.GetString("u")
  86. t.P = s.GetString("p")
  87. t.Compress = s.GetString("compress")
  88. lib.CsvDb.UpdateTask(t)
  89. lib.StopServer(t.VerifyKey)
  90. lib.StartTask(t.VerifyKey)
  91. }
  92. s.AjaxOk("修改成功")
  93. }
  94. }
  95. func (s *IndexController) Stop() {
  96. vKey := s.GetString("vKey")
  97. if err := lib.StopServer(vKey); err != nil {
  98. s.AjaxErr("停止失败")
  99. }
  100. s.AjaxOk("停止成功")
  101. }
  102. func (s *IndexController) Del() {
  103. vKey := s.GetString("vKey")
  104. if err := lib.DelTask(vKey); err != nil {
  105. s.AjaxErr("删除失败")
  106. }
  107. s.AjaxOk("删除成功")
  108. }
  109. func (s *IndexController) Start() {
  110. vKey := s.GetString("vKey")
  111. if err := lib.StartTask(vKey); err != nil {
  112. s.AjaxErr("开启失败")
  113. }
  114. s.AjaxOk("开启成功")
  115. }
  116. func (s *IndexController) HostList() {
  117. if s.Ctx.Request.Method == "GET" {
  118. s.Data["vkey"] = s.GetString("vkey")
  119. s.SetInfo("域名列表")
  120. s.display("index/hlist")
  121. } else {
  122. start, length := s.GetAjaxParams()
  123. vkey := s.GetString("vkey")
  124. list, cnt := lib.CsvDb.GetHostList(start, length, vkey)
  125. s.AjaxTable(list, cnt, cnt)
  126. }
  127. }
  128. func (s *IndexController) DelHost() {
  129. host := s.GetString("host")
  130. if err := lib.CsvDb.DelHost(host); err != nil {
  131. s.AjaxErr("删除失败")
  132. }
  133. s.AjaxOk("删除成功")
  134. }
  135. func (s *IndexController) AddHost() {
  136. if s.Ctx.Request.Method == "GET" {
  137. s.Data["vkey"] = s.GetString("vkey")
  138. s.SetInfo("新增")
  139. s.display("index/hadd")
  140. } else {
  141. h := &lib.HostList{
  142. Vkey: s.GetString("vkey"),
  143. Host: s.GetString("host"),
  144. Target: s.GetString("target"),
  145. }
  146. lib.CsvDb.NewHost(h)
  147. s.AjaxOk("添加成功")
  148. }
  149. }