科技探测仪功能增加,修复版本号解析功能小问题
This commit is contained in:
@@ -4,6 +4,9 @@ import rapidjson as json
|
|||||||
from loguru import logger
|
from loguru import logger
|
||||||
from HelperGetUserThing import implGetUser_
|
from HelperGetUserThing import implGetUser_
|
||||||
import unicodedata
|
import unicodedata
|
||||||
|
from Config import *
|
||||||
|
from HelperLogInOut import apiLogin, apiLogout, generateTimestamp
|
||||||
|
|
||||||
|
|
||||||
def numberToLetter(number):
|
def numberToLetter(number):
|
||||||
"""
|
"""
|
||||||
@@ -29,7 +32,12 @@ def maimaiVersionToHumanReadable(romVersion: str, dataVersion: str) -> str:
|
|||||||
return "无效版本号:无法解读数字"
|
return "无效版本号:无法解读数字"
|
||||||
finalVersionList = []
|
finalVersionList = []
|
||||||
finalVersionList.append(romVersionList[0])
|
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]))
|
finalVersionLetter = numberToLetter(max(romVersionList[2], dataVersionList[2]))
|
||||||
if finalVersionLetter:
|
if finalVersionLetter:
|
||||||
finalVersionLetter = f"-{finalVersionLetter}"
|
finalVersionLetter = f"-{finalVersionLetter}"
|
||||||
@@ -37,7 +45,7 @@ def maimaiVersionToHumanReadable(romVersion: str, dataVersion: str) -> str:
|
|||||||
finalVersionLetter = ""
|
finalVersionLetter = ""
|
||||||
finalVersionList.append(finalVersionLetter)
|
finalVersionList.append(finalVersionLetter)
|
||||||
|
|
||||||
if finalVersionList[1] < 30:
|
if int(finalVersionList[1]) < 30:
|
||||||
versionStringPrefix = "CH"
|
versionStringPrefix = "CH"
|
||||||
else:
|
else:
|
||||||
versionStringPrefix = "CN"
|
versionStringPrefix = "CN"
|
||||||
@@ -73,6 +81,22 @@ def getHumanReadableLoginErrorCode(loginResult) -> str:
|
|||||||
case _:
|
case _:
|
||||||
return "❌ 登录失败!这不应该发生,请反馈此问题。错误详情:"+ loginResult
|
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:
|
def getFriendlyUserData(userId:int) -> str:
|
||||||
'''生成一个(相对)友好的UserData的人话'''
|
'''生成一个(相对)友好的UserData的人话'''
|
||||||
userData1 = implGetUser_("Data", userId)
|
userData1 = implGetUser_("Data", userId)
|
||||||
@@ -254,3 +278,18 @@ if __name__ == "__main__":
|
|||||||
# test version string convert
|
# test version string convert
|
||||||
print(maimaiVersionToHumanReadable("1.20.0", "1.0.0"))
|
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