Ver Fonte

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

* 检查更新时版本号比较

* 支持变长版本+beta
iamqiz há 2 anos atrás
pai
commit
1eda4e51c7
1 ficheiros alterados com 42 adições e 1 exclusões
  1. 42 1
      kernel/model/updater.go

+ 42 - 1
kernel/model/updater.go

@@ -26,6 +26,8 @@ import (
 	"path"
 	"path"
 	"path/filepath"
 	"path/filepath"
 	"runtime"
 	"runtime"
+	"strconv"
+	"strings"
 	"sync"
 	"sync"
 	"time"
 	"time"
 
 
@@ -214,6 +216,45 @@ func GetAnnouncements() (ret []*Announcement) {
 	}
 	}
 	return
 	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) {
 func CheckUpdate(showMsg bool) {
 	if !showMsg {
 	if !showMsg {
@@ -229,7 +270,7 @@ func CheckUpdate(showMsg bool) {
 	release := result["release"].(string)
 	release := result["release"].(string)
 	var msg string
 	var msg string
 	var timeout int
 	var timeout int
-	if ver == util.Ver {
+	if ver2num(ver) <= ver2num(util.Ver) {
 		msg = Conf.Language(10)
 		msg = Conf.Language(10)
 		timeout = 3000
 		timeout = 3000
 	} else {
 	} else {