Skip to content

Commit e3b0ca8

Browse files
committed
🐛 fix: 改进版本号比较逻辑以支持任意长度的版本号
1 parent 9e266eb commit e3b0ca8

1 file changed

Lines changed: 13 additions & 5 deletions

File tree

astrbot/core/zip_updator.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,16 +105,24 @@ def compare_version(self, v1: str, v2: str) -> int:
105105
"""
106106
比较两个版本号的大小。
107107
返回 1 表示 v1 > v2,返回 -1 表示 v1 < v2,返回 0 表示 v1 = v2。
108+
支持任意长度的版本号,如v1.2.3或v3.5.3.1。
108109
"""
109110
v1 = v1.replace("v", "")
110111
v2 = v2.replace("v", "")
111-
v1 = v1.split(".")
112-
v2 = v2.split(".")
112+
v1_parts = v1.split(".")
113+
v2_parts = v2.split(".")
113114

114-
for i in range(3):
115-
if int(v1[i]) > int(v2[i]):
115+
# 获取最长的版本号长度
116+
length = max(len(v1_parts), len(v2_parts))
117+
118+
# 将短版本号补0以便比较
119+
v1_parts.extend(["0"] * (length - len(v1_parts)))
120+
v2_parts.extend(["0"] * (length - len(v2_parts)))
121+
122+
for i in range(length):
123+
if int(v1_parts[i]) > int(v2_parts[i]):
116124
return 1
117-
elif int(v1[i]) < int(v2[i]):
125+
elif int(v1_parts[i]) < int(v2_parts[i]):
118126
return -1
119127
return 0
120128

0 commit comments

Comments
 (0)