package bootstrap import ( "encoding/json" "github.com/Xhofe/alist/conf" "github.com/Xhofe/alist/utils" log "github.com/sirupsen/logrus" "io/ioutil" "net/http" ) // github release response bean type GithubRelease struct { TagName string `json:"tag_name"` HtmlUrl string `json:"html_url"` Body string `json:"body"` } // check update func CheckUpdate() { log.Infof("检查更新...") url := "https://api.github.com/repos/Xhofe/alist/releases/latest" resp, err := http.Get(url) if err != nil { log.Warnf("检查更新失败:%s", err.Error()) return } body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Warnf("读取更新内容失败:%s", err.Error()) return } var release GithubRelease err = json.Unmarshal(body, &release) if err != nil { log.Warnf("解析更新失败:%s", err.Error()) return } lasted := release.TagName[1:] now := conf.VERSION[1:] if utils.VersionCompare(lasted, now) != 1 { log.Infof("当前已是最新版本:%s", conf.VERSION) } else { log.Infof("发现新版本:%s", release.TagName) log.Infof("请至'%s'获取更新.", release.HtmlUrl) } }