支持解读舞萌的版本号

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"))

View File

@ -29,30 +29,30 @@ itemKindDict = {
"PLATE": 1, # 姓名框
"TITLE": 2, # 称号
"ICON": 3, # 头像
# "PRESENT": 4, #
"MUSIC": 5, # 歌
"MUSIC_MASTER": 6, # 紫谱
"MUSIC_RE_MASTER": 7,# 白谱
# "MUSIC_STRONG": 8, #
"CHARACTER": 9, # 旅行伙伴
"PARTNER": 10, # 搭档
"FRAME": 11, # 背景板
"TICKET": 12 # 功能票
# "PRESENT": 4, #
# "MUSIC_STRONG": 8, #
}
itemKindzhCNDict = {
"姓名框": "PLATE",
"称号": "TITLE",
"头像": "ICON",
# "礼物": "PRESENT",
"": "MUSIC",
"紫谱": "MUSIC_MASTER",
"白谱": "MUSIC_RE_MASTER",
# "STRONG": "MUSIC_STRONG",
"旅行伙伴": "CHARACTER",
"搭档": "PARTNER",
"背景板": "FRAME",
"功能票": "TICKET"
# "礼物": "PRESENT",
# "STRONG": "MUSIC_STRONG",
}
partnerList = {