sys.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package hook
  2. import (
  3. "fmt"
  4. "time"
  5. )
  6. // 退出登陆
  7. func (h *Hook) Logout() (result LogoutResp, err error) {
  8. resp, err := h.Client.R().SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.WxPort + "/Logout")
  9. if err != nil {
  10. return
  11. }
  12. if !resp.IsSuccessState() {
  13. err = fmt.Errorf("Logout failed with status code %d", resp.StatusCode)
  14. return
  15. }
  16. return
  17. }
  18. // 结束微信
  19. func (h *Hook) TerminateThisWeChat(pid string) (result LogoutResp, err error) {
  20. resp, err := h.Client.R().SetBody(&TerminateThisWeChatReq{
  21. PID: pid,
  22. }).SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.AdminPort + "/TerminateThisWeChat")
  23. if err != nil {
  24. return
  25. }
  26. if !resp.IsSuccessState() {
  27. err = fmt.Errorf("TerminateThisWeChatReq failed with status code %d", resp.StatusCode)
  28. return
  29. }
  30. return
  31. }
  32. // 获取微信总数
  33. func (h *Hook) GetWeChatProcessNumber() (result GetWeChatProcessNumberResp, err error) {
  34. resp, err := h.Client.R().SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.AdminPort + "/Get_WeChatProcessNumber")
  35. if err != nil {
  36. return
  37. }
  38. if !resp.IsSuccessState() {
  39. err = fmt.Errorf("GetWeChatProcessNumber failed with status code %d", resp.StatusCode)
  40. return
  41. }
  42. return
  43. }
  44. // 点击登陆微信按钮
  45. func (h *Hook) ClickLoginButton() (result ClickLoginButtonResp, err error) {
  46. resp, err := h.Client.R().SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.WxPort + "/ClickLoginButton")
  47. if err != nil {
  48. return
  49. }
  50. if !resp.IsSuccessState() {
  51. err = fmt.Errorf("ClickLoginButton failed with status code %d", resp.StatusCode)
  52. return
  53. }
  54. return
  55. }
  56. // 启动微信
  57. func (h *Hook) StartWechat(port string) (result StartWechatResp, err error) {
  58. resp, err := h.Client.R().SetBody(&StartWechatReq{
  59. StartPort: port,
  60. }).SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.AdminPort + "/StartWechat")
  61. if err != nil {
  62. return
  63. }
  64. if !resp.IsSuccessState() {
  65. err = fmt.Errorf("StartWechat failed with status code %d", resp.StatusCode)
  66. return
  67. }
  68. return
  69. }
  70. // 获取进程端口占用信息
  71. func (h *Hook) GetPortOccupiedInfo(port string) (result GetPortOccupiedInfoResp, err error) {
  72. resp, err := h.Client.R().SetBody(&GetPortOccupiedInfoReq{
  73. CheckPort: port,
  74. }).SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.AdminPort + "/Get_PortOccupiedInfo")
  75. if err != nil {
  76. return
  77. }
  78. if !resp.IsSuccessState() {
  79. err = fmt.Errorf("GetPortOccupiedInfo failed with status code %d", resp.StatusCode)
  80. return
  81. }
  82. return
  83. }
  84. // 刷新登陆二维码
  85. func (h *Hook) RefreshLoginQRCode() (err error) {
  86. resp, err := h.Client.R().Post("http://" + h.ServerIp + ":" + h.WxPort + "/RefreshLoginQRCode")
  87. if err != nil {
  88. return
  89. }
  90. if !resp.IsSuccessState() {
  91. err = fmt.Errorf("RefreshLoginQRCode failed with status code %d", resp.StatusCode)
  92. return
  93. }
  94. return
  95. }
  96. // 获取登陆二维码
  97. func (h *Hook) GetLoginQRCode() (result GetLoginQRCodeReap, err error) {
  98. resp, err := h.Client.R().SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.WxPort + "/GetLoginQRCode")
  99. if err != nil {
  100. return
  101. }
  102. if !resp.IsSuccessState() {
  103. err = fmt.Errorf("GetLoginQRCode failed with status code %d", resp.StatusCode)
  104. return
  105. }
  106. return
  107. }
  108. // 查询登录状态
  109. func (h *Hook) IsLoginStatus() (result IsLoginStatusResp, err error) {
  110. h.Client.SetTimeout(5 * time.Second)
  111. resp, err := h.Client.R().SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.WxPort + "/IsLoginStatus")
  112. if err != nil {
  113. return
  114. }
  115. if !resp.IsSuccessState() {
  116. err = fmt.Errorf("IsLoginStatus failed with status code %d", resp.StatusCode)
  117. return
  118. }
  119. return
  120. }