科技探测仪功能增加,修复版本号解析功能小问题

This commit is contained in:
Remik1r3n
2025-07-15 22:16:01 +08:00
parent 248b8885df
commit 873a729c50

View File

@@ -4,6 +4,9 @@ import rapidjson as json
from loguru import logger
from HelperGetUserThing import implGetUser_
import unicodedata
from Config import *
from HelperLogInOut import apiLogin, apiLogout, generateTimestamp
def numberToLetter(number):
"""
@@ -29,7 +32,12 @@ def maimaiVersionToHumanReadable(romVersion: str, dataVersion: str) -> str:
return "无效版本号:无法解读数字"
finalVersionList = []
finalVersionList.append(romVersionList[0])
finalVersionList.append(max(romVersionList[1], dataVersionList[1]))
# quirk
minorVer = max(romVersionList[1], dataVersionList[1])
if minorVer == 0:
finalVersionList.append("00")
else:
finalVersionList.append(minorVer)
finalVersionLetter = numberToLetter(max(romVersionList[2], dataVersionList[2]))
if finalVersionLetter:
finalVersionLetter = f"-{finalVersionLetter}"
@@ -37,7 +45,7 @@ def maimaiVersionToHumanReadable(romVersion: str, dataVersion: str) -> str:
finalVersionLetter = ""
finalVersionList.append(finalVersionLetter)
if finalVersionList[1] < 30:
if int(finalVersionList[1]) < 30:
versionStringPrefix = "CH"
else:
versionStringPrefix = "CN"
@@ -73,6 +81,22 @@ def getHumanReadableLoginErrorCode(loginResult) -> str:
case _:
return "❌ 登录失败!这不应该发生,请反馈此问题。错误详情:"+ loginResult
def checkTechnologyUseCount(userId: int) -> int:
'''猜测账号是否用了科技0没用过其他为用过'''
userData1 = implGetUser_("Data", userId)
userData = userData1.get("userData", {})
userRegion = implGetUser_("Region", userId)
userRegionList = userRegion.get("userRegionList", [])
playCount = userData.get("playCount", 0)
allRegionPlayCount = 0
for region in userRegionList:
allRegionPlayCount += region.get("playCount", 0)
logger.info(f"用户 {userId} 的总游玩次数: {playCount}, 各地区游玩次数: {allRegionPlayCount}")
# 计算全部的 Region 加起来的游玩次数是否和 playCount 对不上,对不上就是用了科技
# 返回差值
return playCount - allRegionPlayCount
def getFriendlyUserData(userId:int) -> str:
'''生成一个(相对)友好的UserData的人话'''
userData1 = implGetUser_("Data", userId)
@@ -254,3 +278,18 @@ if __name__ == "__main__":
# test version string convert
print(maimaiVersionToHumanReadable("1.20.0", "1.0.0"))
print(maimaiVersionToHumanReadable("1.41.00", "1.40.11"))
print(maimaiVersionToHumanReadable("1.00.00", "1.00.00"))
userId = testUid
currentLoginTimestamp = generateTimestamp()
loginResult = apiLogin(currentLoginTimestamp, userId)
if loginResult['returnCode'] != 1:
logger.info("登录失败")
exit()
try:
logger.info(checkTechnologyUseCount(userId))
#logger.info(apiQueryTicket(userId))
finally:
logger.info(apiLogout(currentLoginTimestamp, userId))
#logger.warning("Error")