sys.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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) GetWeChatProcessNumber() (result GetWeChatProcessNumberResp, err error) {
  20. resp, err := h.Client.R().SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.AdminPort + "/Get_WeChatProcessNumber")
  21. if err != nil {
  22. return
  23. }
  24. if !resp.IsSuccessState() {
  25. err = fmt.Errorf("GetWeChatProcessNumber failed with status code %d", resp.StatusCode)
  26. return
  27. }
  28. return
  29. }
  30. // 点击登陆微信按钮
  31. func (h *Hook) ClickLoginButton() (result ClickLoginButtonResp, err error) {
  32. resp, err := h.Client.R().SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.WxPort + "/ClickLoginButton")
  33. if err != nil {
  34. return
  35. }
  36. if !resp.IsSuccessState() {
  37. err = fmt.Errorf("ClickLoginButton failed with status code %d", resp.StatusCode)
  38. return
  39. }
  40. return
  41. }
  42. // 启动微信
  43. func (h *Hook) StartWechat(port string) (result StartWechatResp, err error) {
  44. resp, err := h.Client.R().SetBody(&StartWechatReq{
  45. StartPort: port,
  46. }).SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.AdminPort + "/StartWechat")
  47. if err != nil {
  48. return
  49. }
  50. if !resp.IsSuccessState() {
  51. err = fmt.Errorf("StartWechat failed with status code %d", resp.StatusCode)
  52. return
  53. }
  54. return
  55. }
  56. // 获取进程端口占用信息
  57. func (h *Hook) GetPortOccupiedInfo(port string) (result GetPortOccupiedInfoResp, err error) {
  58. resp, err := h.Client.R().SetBody(&GetPortOccupiedInfoReq{
  59. CheckPort: port,
  60. }).SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.AdminPort + "/Get_PortOccupiedInfo")
  61. if err != nil {
  62. return
  63. }
  64. if !resp.IsSuccessState() {
  65. err = fmt.Errorf("GetPortOccupiedInfo failed with status code %d", resp.StatusCode)
  66. return
  67. }
  68. return
  69. }
  70. // 刷新登陆二维码
  71. func (h *Hook) RefreshLoginQRCode() (err error) {
  72. resp, err := h.Client.R().Post("http://" + h.ServerIp + ":" + h.WxPort + "/RefreshLoginQRCode")
  73. if err != nil {
  74. return
  75. }
  76. if !resp.IsSuccessState() {
  77. err = fmt.Errorf("RefreshLoginQRCode failed with status code %d", resp.StatusCode)
  78. return
  79. }
  80. return
  81. }
  82. // 获取登陆二维码
  83. func (h *Hook) GetLoginQRCode() (result GetLoginQRCodeReap, err error) {
  84. resp, err := h.Client.R().SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.WxPort + "/GetLoginQRCode")
  85. if err != nil {
  86. return
  87. }
  88. if !resp.IsSuccessState() {
  89. err = fmt.Errorf("GetLoginQRCode failed with status code %d", resp.StatusCode)
  90. return
  91. }
  92. return
  93. }
  94. // 查询登录状态
  95. func (h *Hook) IsLoginStatus() (result IsLoginStatusResp, err error) {
  96. h.Client.SetTimeout(5 * time.Second)
  97. resp, err := h.Client.R().SetSuccessResult(&result).Post("http://" + h.ServerIp + ":" + h.WxPort + "/IsLoginStatus")
  98. if err != nil {
  99. return
  100. }
  101. if !resp.IsSuccessState() {
  102. err = fmt.Errorf("IsLoginStatus failed with status code %d", resp.StatusCode)
  103. return
  104. }
  105. return
  106. }