改进检查更新时版本号比较 (#6091)

* 检查更新时版本号比较

* 支持变长版本+beta
This commit is contained in:
iamqiz 2022-10-09 10:05:49 +08:00 committed by GitHub
parent 7959a6a994
commit 1eda4e51c7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -26,6 +26,8 @@ import (
"path"
"path/filepath"
"runtime"
"strconv"
"strings"
"sync"
"time"
@ -214,6 +216,45 @@ func GetAnnouncements() (ret []*Announcement) {
}
return
}
func ver2num(a string) int {
var version string
var suffixpos int
var suffixStr string
var suffix string
a = strings.Trim(a, " ")
if strings.Contains(a, "alpha") {
suffixpos = strings.Index(a, "-alpha")
version = a[0:suffixpos]
suffixStr = a[suffixpos+6 : len(a)]
suffix = "0" + fmt.Sprintf("%03s", suffixStr)
} else if strings.Contains(a, "beta") {
suffixpos = strings.Index(a, "-beta")
version = a[0:suffixpos]
suffixStr = a[suffixpos+5 : len(a)]
suffix = "1" + fmt.Sprintf("%03s", suffixStr)
} else {
version = a
suffix = "5000"
}
split := strings.Split(version, ".")
var verArr []string
verArr = append(verArr, "1")
var tmp string
for i := 0; i < 3; i++ {
if i < len(split) {
tmp = split[i]
} else {
tmp = "0"
}
verArr = append(verArr, fmt.Sprintf("%04s", tmp))
}
verArr = append(verArr, suffix)
ver := strings.Join(verArr, "")
verNum, _ := strconv.Atoi(ver)
return verNum
}
func CheckUpdate(showMsg bool) {
if !showMsg {
@ -229,7 +270,7 @@ func CheckUpdate(showMsg bool) {
release := result["release"].(string)
var msg string
var timeout int
if ver == util.Ver {
if ver2num(ver) <= ver2num(util.Ver) {
msg = Conf.Language(10)
timeout = 3000
} else {