diff --git a/models/asset.go b/models/asset.go index c5eaf6c..62de2a9 100644 --- a/models/asset.go +++ b/models/asset.go @@ -258,7 +258,7 @@ func redPacket(cookie string, rpc chan []RedList) { req.Header("Connection", "keep-alive") req.Header("Accept-Language", "zh-cn") req.Header("Accept-Encoding", "gzip, deflate, br") - req.Header("Referer", "https://st.jingxi.com/my/redpacket.shtml?newPg=App&jxsid=16156262265849285961") + req.Header("Referer", "https://st.jingxi.com/my/redpacket.shtml?newPg=App") req.Header("Cookie", cookie) data, _ := req.Bytes() json.Unmarshal(data, &a) diff --git a/models/bot.go b/models/bot.go index 63058bc..24db952 100644 --- a/models/bot.go +++ b/models/bot.go @@ -5,7 +5,6 @@ import ( "io/ioutil" "net/url" "os" - "os/exec" "regexp" "strconv" "strings" @@ -50,6 +49,9 @@ func InitReplies() { } var sendMessagee = func(msg string, msgs ...interface{}) { + if len(msgs) == 0 { + return + } tp := msgs[1].(string) id := msgs[2].(int) switch tp { @@ -63,6 +65,9 @@ var sendMessagee = func(msg string, msgs ...interface{}) { } var sendAdminMessagee = func(msg string, msgs ...interface{}) { + if len(msgs) == 0 { + return + } tp := msgs[1].(string) id := msgs[2].(int) switch tp { @@ -83,6 +88,9 @@ var sendAdminMessagee = func(msg string, msgs ...interface{}) { } var isAdmin = func(msgs ...interface{}) bool { + if len(msgs) == 0 { + return false + } tp := msgs[1].(string) id := msgs[2].(int) switch tp { @@ -129,30 +137,9 @@ var handleMessage = func(msgs ...interface{}) interface{} { if !isAdmin(msgs...) { // return "你没有权限操作" } - sendMessagee("小滴滴开始拉取代码", msgs...) - rtn, err := exec.Command("sh", "-c", "cd "+ExecPath+" && git pull").Output() - if err != nil { + if err := Update(msgs...); err != nil { return err.Error() } - t := string(rtn) - if !strings.Contains(t, "changed") { - if strings.Contains(t, "Already") || strings.Contains(t, "已经是最新") { - sendMessagee("小滴滴已是最新版啦", msgs...) - } else { - sendMessagee("小滴滴拉取代失败:", msgs...) - } - return nil - } else { - sendMessagee("小滴滴拉取代码成功", msgs...) - } - sendMessagee("小滴滴正在编译程序", msgs...) - rtn, err = exec.Command("sh", "-c", "cd "+ExecPath+" && go build -o "+pname).Output() - if err != nil { - sendMessagee("小滴滴编译失败:", msgs...) - return nil - } else { - sendAdminMessagee("小滴滴编译成功", msgs...) - } fallthrough case "重启": if !isAdmin(msgs...) { diff --git a/models/version.go b/models/version.go index 3e68a77..f9a0a5e 100644 --- a/models/version.go +++ b/models/version.go @@ -1,10 +1,10 @@ package models import ( - "io" "os" + "os/exec" "regexp" - "runtime" + "strings" "github.com/beego/beego/v2/client/httplib" "github.com/beego/beego/v2/core/logs" @@ -21,34 +21,66 @@ func initVersion() { logs.Info("检查更新" + version) value, err := httplib.Get(GhProxy + "https://raw.githubusercontent.com/cdle/xdd/main/models/version.go").String() if err != nil { - logs.Info("更新User-Agent失败") + logs.Info("更新版本的失败") } else { - name := AppName + "_" + runtime.GOOS + "_" + runtime.GOARCH + // name := AppName + "_" + runtime.GOOS + "_" + runtime.GOARCH if match := regexp.MustCompile(`var version = "(\d{10})"`).FindStringSubmatch(value); len(match) != 0 { if match[1] > version { - logs.Warn("版本过低,下载更新") - rsp, err := httplib.Get(GhProxy + "https://github.com/cdle/jd_study/releases/download/main/" + name).Response() + logs.Warn("版本过低,自动更新") + err := Update() if err != nil { - logs.Warn("无法下载更新") - return - } - filename := ExecPath + "/." + pname - f, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777) - if err != nil { - logs.Warn("无法创建更新临时文件:%v"+filename, err) - return - } - _, err = io.Copy(f, rsp.Body) - f.Close() - if err != nil { - logs.Warn("下载更新失败") - return - } - if err := os.Rename(filename, ExecPath+"/"+pname); err != nil { - logs.Warn("移动临时更新文件失败") + logs.Warn("更新失败,", err) } + // rsp, err := httplib.Get(GhProxy + "https://github.com/cdle/jd_study/releases/download/main/" + name).Response() + // if err != nil { + // logs.Warn("无法下载更新") + // return + // } + // filename := ExecPath + "/." + pname + // f, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777) + // if err != nil { + // logs.Warn("无法创建更新临时文件:%v"+filename, err) + // return + // } + // _, err = io.Copy(f, rsp.Body) + // f.Close() + // if err != nil { + // logs.Warn("下载更新失败") + // return + // } + // if err := os.Rename(filename, ExecPath+"/"+pname); err != nil { + // logs.Warn("移动临时更新文件失败") + // } Daemon() } } } } + +func Update(msgs ...interface{}) error { + sendMessagee("小滴滴开始拉取代码", msgs...) + rtn, err := exec.Command("sh", "-c", "cd "+ExecPath+" && git pull").Output() + if err != nil { + return err + } + t := string(rtn) + if !strings.Contains(t, "changed") { + if strings.Contains(t, "Already") || strings.Contains(t, "已经是最新") { + sendMessagee("小滴滴已是最新版啦", msgs...) + } else { + sendMessagee("小滴滴拉取代失败:", msgs...) + } + return nil + } else { + sendMessagee("小滴滴拉取代码成功", msgs...) + } + sendMessagee("小滴滴正在编译程序", msgs...) + rtn, err = exec.Command("sh", "-c", "cd "+ExecPath+" && go build -o "+pname).Output() + if err != nil { + sendMessagee("小滴滴编译失败:", msgs...) + return nil + } else { + sendAdminMessagee("小滴滴编译成功", msgs...) + } + return nil +}