科技探测仪功能增加,修复版本号解析功能小问题
This commit is contained in:
@@ -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)
|
||||
@@ -253,4 +277,19 @@ WAHLAP_REGIONS = {
|
||||
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.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")
|
||||
|
||||
Reference in New Issue
Block a user