支持解读舞萌的版本号

This commit is contained in:
Kohaku
2025-04-26 14:19:37 +08:00
parent 473d9e3b3a
commit 726056698f
2 changed files with 52 additions and 6 deletions

View File

@@ -5,6 +5,47 @@ from loguru import logger
from HelperGetUserThing import implGetUser_
import unicodedata
def numberToLetter(number):
"""
将数字转换为字母1-26 to A-Z
"""
if 1 <= number <= 26:
return chr(number + 64)
else:
return None
def maimaiVersionToHumanReadable(romVersion: str, dataVersion: str) -> str:
try:
romVersionList = romVersion.split('.')
dataVersionList = dataVersion.split('.')
except Exception as e:
logger.warning(f"无法解析版本号: {romVersion} {dataVersion},错误:{e}")
return "无效版本号:无法解析"
try:
romVersionList = [int(i) for i in romVersionList]
dataVersionList = [int(i) for i in dataVersionList]
except Exception as e:
logger.warning(f"无法解析版本号: {romVersion} {dataVersion},错误:{e}")
return "无效版本号:无法解读数字"
finalVersionList = []
finalVersionList.append(romVersionList[0])
finalVersionList.append(max(romVersionList[1], dataVersionList[1]))
finalVersionLetter = numberToLetter(max(romVersionList[2], dataVersionList[2]))
if finalVersionLetter:
finalVersionLetter = f"-{finalVersionLetter}"
else:
finalVersionLetter = ""
finalVersionList.append(finalVersionLetter)
if finalVersionList[1] < 30:
versionStringPrefix = "CH"
else:
versionStringPrefix = "CN"
finalVersionString = f"{versionStringPrefix}{finalVersionList[0]}.{finalVersionList[1]}{finalVersionList[2]}"
return finalVersionString
levelIdDict = {
"绿": 0,
"": 1,
@@ -46,10 +87,10 @@ def getFriendlyUserData(userId:int) -> str:
result += f"总游戏次数: {userData.get('playCount', '未知')} "
result += f"当前版本游戏次数: {userData.get('currentPlayCount', '未知')}\n"
result += f"最近登录时间: {userData.get('lastLoginDate')} "
result += f"最近登录版本: {userData.get('lastDataVersion', '未知')} "
result += f"最近登录版本: {maimaiVersionToHumanReadable(userData.get('lastRomVersion'), userData.get('lastDataVersion'))} "
result += f"最近登录地区: {userData.get('lastRegionName', '未知')}\n"
result += f"注册日期: {userData.get('firstPlayDate')} "
result += f"注册版本: {userData.get('firstDataVersion', '未知')}\n"
result += f"注册版本: {maimaiVersionToHumanReadable(userData.get('firstRomVersion'),userData.get('firstDataVersion'))}\n"
result += f"封号状态(banState): {banState}\n"
try:
logger.info(userRegion)
@@ -208,3 +249,8 @@ WAHLAP_REGIONS = {
31: '新疆',
32: '西藏',
}
if __name__ == "__main__":
# test version string convert
print(maimaiVersionToHumanReadable("1.20.0", "1.0.0"))
print(maimaiVersionToHumanReadable("1.41.00", "1.40.11"))