xybot/tool/impl.go

173 lines
4.1 KiB
Go

package tool
import (
"fmt"
"gitee.ltd/lxh/xybot/base"
)
// CheckDatabaseOK
// @description: 检查数据库是否正常
// @receiver s
// @return running
// @return err
func (s service) CheckDatabaseOK() (running bool, err error) {
var result CheckDatabaseOKResponse
_, err = s.client.R().SetResult(&result).Get("/CheckDatabaseOK")
running = result.Running
return
}
// IsRunning
// @description: 是否在运行
// @receiver s
// @return flag
// @return err
func (s service) IsRunning() (flag bool, err error) {
resp, err := s.client.R().Get("/IsRunning")
if err != nil {
return
}
flag = string(resp.Body()) == "OK"
return
}
// CdnDownloadImg
// @description: 下载图片
// @receiver s
// @param aesKey
// @param cdnMidImgUrl
// @return dataBase64Str
// @return err
func (s service) CdnDownloadImg(aesKey, cdnMidImgUrl string) (dataBase64Str string, err error) {
var result base.Response[string]
_, err = s.client.R().
SetHeader("WeChatId", s.robotInfo.GetId()).
SetResult(&result).
SetBody(map[string]any{
"Wxid": s.robotInfo.GetId(),
"AesKey": aesKey,
"Cdnmidimgurl": cdnMidImgUrl,
}).Post("/CdnDownloadImg")
if err = result.CheckError(err); err != nil {
return
}
dataBase64Str = result.Data
return
}
// DownloadAttach
// @description: 下载附件
// @receiver s
// @param attachId
// @return dataBase64Str
// @return err
func (s service) DownloadAttach(attachId string) (dataBase64Str string, err error) {
var result base.Response[DownloadAttachResponse]
_, err = s.client.R().
SetHeader("WeChatId", s.robotInfo.GetId()).
SetResult(&result).
SetBody(map[string]any{
"Wxid": s.robotInfo.GetId(),
"AttachId": attachId,
}).Post("/DownloadAttach")
if err = result.CheckError(err); err != nil {
return
}
dataBase64Str = result.Data.Data.Buffer
return
}
// DownloadVideo
// @description: 下载视频
// @receiver s
// @param msgId
// @return dataBase64Str
// @return err
func (s service) DownloadVideo(msgId int) (dataBase64Str string, err error) {
var result base.Response[DownloadAttachResponse]
_, err = s.client.R().
SetHeader("WeChatId", s.robotInfo.GetId()).
SetResult(&result).
SetBody(map[string]any{
"Wxid": s.robotInfo.GetId(),
"MsgId": msgId,
}).Post("/DownloadVideo")
if err = result.CheckError(err); err != nil {
return
}
dataBase64Str = result.Data.Data.Buffer
return
}
// DownloadVoice
// @description: 下载语音
// @receiver s
// @param msgId
// @param voiceUrl
// @param length
// @return dataBase64Str
// @return err
func (s service) DownloadVoice(msgId int, voiceUrl string, length int) (dataBase64Str string, err error) {
var result base.Response[DownloadAttachResponse]
_, err = s.client.R().
SetHeader("WeChatId", s.robotInfo.GetId()).
SetResult(&result).
SetBody(map[string]any{
"Wxid": s.robotInfo.GetId(),
"MsgId": msgId,
"Voiceurl": voiceUrl,
"Length": length,
}).Post("/DownloadVoice")
if err = result.CheckError(err); err != nil {
return
}
dataBase64Str = result.Data.Data.Buffer
return
}
// SetProxy
// @description: 设置代理
// @receiver s
// @param param
// @return err
func (s service) SetProxy(param SetProxyRequest) (err error) {
var result base.Response[base.EmptyResponse]
_, err = s.client.R().
SetHeader("WeChatId", s.robotInfo.GetId()).
SetResult(&result).
SetBody(map[string]any{
"Wxid": s.robotInfo.GetId(),
"Proxy": map[string]any{
"ProxyIp": fmt.Sprintf("%s:%d", param.Ip, param.Port),
"ProxyUser": param.Username,
"ProxyPassword": param.Password,
},
}).
Post("/SetProxy")
if err = result.CheckError(err); err != nil {
return
}
return
}
// SetStep
// @description: 设置运动步数
// @receiver s
// @param stepCount
// @return err
func (s service) SetStep(stepCount int) (err error) {
var result base.Response[base.EmptyResponse]
_, err = s.client.R().
SetHeader("WeChatId", s.robotInfo.GetId()).
SetResult(&result).
SetBody(map[string]any{
"Wxid": s.robotInfo.GetId(),
"StepCount": stepCount,
}).Post("/SetStep")
if err = result.CheckError(err); err != nil {
return
}
return
}