refactor: module imports
This commit is contained in:
159
HelperMisc.py
159
HelperMisc.py
@@ -4,9 +4,10 @@ import rapidjson as json
|
||||
from loguru import logger
|
||||
from HelperGetUserThing import implGetUser_
|
||||
import unicodedata
|
||||
from Config import *
|
||||
from HelperLogInOut import apiLogin, apiLogout, generateTimestamp
|
||||
|
||||
from MyConfig import testUid
|
||||
|
||||
|
||||
def numberToLetter(number):
|
||||
"""
|
||||
@@ -17,10 +18,11 @@ def numberToLetter(number):
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
def maimaiVersionToHumanReadable(romVersion: str, dataVersion: str) -> str:
|
||||
try:
|
||||
romVersionList = romVersion.split('.')
|
||||
dataVersionList = dataVersion.split('.')
|
||||
romVersionList = romVersion.split(".")
|
||||
dataVersionList = dataVersion.split(".")
|
||||
except Exception as e:
|
||||
logger.warning(f"无法解析版本号: {romVersion} {dataVersion},错误:{e}")
|
||||
return "无效版本号:无法解析"
|
||||
@@ -52,24 +54,19 @@ def maimaiVersionToHumanReadable(romVersion: str, dataVersion: str) -> str:
|
||||
|
||||
finalVersionString = f"{versionStringPrefix}{finalVersionList[0]}.{finalVersionList[1]}{finalVersionList[2]}"
|
||||
return finalVersionString
|
||||
|
||||
|
||||
levelIdDict = {
|
||||
"绿": 0,
|
||||
"黄": 1,
|
||||
"红": 2,
|
||||
"紫": 3,
|
||||
"白": 4,
|
||||
"宴": 5
|
||||
}
|
||||
|
||||
levelIdDict = {"绿": 0, "黄": 1, "红": 2, "紫": 3, "白": 4, "宴": 5}
|
||||
|
||||
|
||||
def getHalfWidthString(s):
|
||||
"""全角转半角,舞萌ID用"""
|
||||
return unicodedata.normalize('NFKC', s)
|
||||
return unicodedata.normalize("NFKC", s)
|
||||
|
||||
|
||||
def getHumanReadableLoginErrorCode(loginResult) -> str:
|
||||
'''解析登录结果并且给出中文的报错解释'''
|
||||
match loginResult['returnCode']:
|
||||
"""解析登录结果并且给出中文的报错解释"""
|
||||
match loginResult["returnCode"]:
|
||||
case 1:
|
||||
return False
|
||||
case 100:
|
||||
@@ -79,10 +76,11 @@ def getHumanReadableLoginErrorCode(loginResult) -> str:
|
||||
case 103:
|
||||
return "❌ 试图登录的账号 UID 无效,请检查账号是否正确。"
|
||||
case _:
|
||||
return "❌ 登录失败!这不应该发生,请反馈此问题。错误详情:"+ loginResult
|
||||
return "❌ 登录失败!这不应该发生,请反馈此问题。错误详情:" + loginResult
|
||||
|
||||
|
||||
def checkTechnologyUseCount(userId: int) -> int:
|
||||
'''猜测账号是否用了科技,0没用过,其他为用过'''
|
||||
"""猜测账号是否用了科技,0没用过,其他为用过"""
|
||||
userData1 = implGetUser_("Data", userId)
|
||||
userData = userData1.get("userData", {})
|
||||
userRegion = implGetUser_("Region", userId)
|
||||
@@ -92,13 +90,16 @@ def checkTechnologyUseCount(userId: int) -> int:
|
||||
allRegionPlayCount = 0
|
||||
for region in userRegionList:
|
||||
allRegionPlayCount += region.get("playCount", 0)
|
||||
logger.info(f"用户 {userId} 的总游玩次数: {playCount}, 各地区游玩次数: {allRegionPlayCount}")
|
||||
logger.info(
|
||||
f"用户 {userId} 的总游玩次数: {playCount}, 各地区游玩次数: {allRegionPlayCount}"
|
||||
)
|
||||
# 计算全部的 Region 加起来的游玩次数是否和 playCount 对不上,对不上就是用了科技
|
||||
# 返回差值
|
||||
return playCount - allRegionPlayCount
|
||||
|
||||
def getFriendlyUserData(userId:int) -> str:
|
||||
'''生成一个(相对)友好的UserData的人话'''
|
||||
|
||||
def getFriendlyUserData(userId: int) -> str:
|
||||
"""生成一个(相对)友好的UserData的人话"""
|
||||
userData1 = implGetUser_("Data", userId)
|
||||
userData = userData1.get("userData", {})
|
||||
userRegion = implGetUser_("Region", userId)
|
||||
@@ -114,7 +115,7 @@ def getFriendlyUserData(userId:int) -> str:
|
||||
result += f"最近登录版本: {maimaiVersionToHumanReadable(userData.get('lastRomVersion'), userData.get('lastDataVersion'))} "
|
||||
result += f"最近登录地区: {userData.get('lastRegionName', '未知')}\n"
|
||||
result += f"注册日期: {userData.get('firstPlayDate')} "
|
||||
result += f"注册版本: {maimaiVersionToHumanReadable(userData.get('firstRomVersion'),userData.get('firstDataVersion'))}\n"
|
||||
result += f"注册版本: {maimaiVersionToHumanReadable(userData.get('firstRomVersion'), userData.get('firstDataVersion'))}\n"
|
||||
result += f"封号状态(banState): {banState}\n"
|
||||
try:
|
||||
logger.info(userRegion)
|
||||
@@ -124,28 +125,31 @@ def getFriendlyUserData(userId:int) -> str:
|
||||
|
||||
return result
|
||||
|
||||
def getHumanReadableRegionData(userRegion:str) -> str:
|
||||
'''生成一个人类可读的地区数据'''
|
||||
|
||||
def getHumanReadableRegionData(userRegion: str) -> str:
|
||||
"""生成一个人类可读的地区数据"""
|
||||
userRegionList = userRegion.get("userRegionList")
|
||||
logger.info(userRegionList)
|
||||
result = ""
|
||||
for region in userRegionList:
|
||||
regionName = WAHLAP_REGIONS.get(region['regionId'], '未知')
|
||||
playCount = region['playCount']
|
||||
created = region['created']
|
||||
regionName = WAHLAP_REGIONS.get(region["regionId"], "未知")
|
||||
playCount = region["playCount"]
|
||||
created = region["created"]
|
||||
result += f"\n{regionName} 游玩次数: {playCount} 首次游玩: {created}"
|
||||
return result
|
||||
|
||||
def getHumanReadablePreview(preview_json_content:str) -> str:
|
||||
'''简单,粗略地解释 Preview 的 Json String 为人话。'''
|
||||
|
||||
def getHumanReadablePreview(preview_json_content: str) -> str:
|
||||
"""简单,粗略地解释 Preview 的 Json String 为人话。"""
|
||||
previewData = json.loads(preview_json_content)
|
||||
userName = getHalfWidthString(previewData['userName'])
|
||||
playerRating = previewData['playerRating']
|
||||
userName = getHalfWidthString(previewData["userName"])
|
||||
playerRating = previewData["playerRating"]
|
||||
finalString = f"用户名:{userName}\nDX RATING:{playerRating}\n"
|
||||
return finalString
|
||||
|
||||
|
||||
def getHumanReadableLoginBonusList(jsonString: str):
|
||||
'''生成一个人类可读的 Login Bonus 的列表'''
|
||||
"""生成一个人类可读的 Login Bonus 的列表"""
|
||||
data = json.loads(jsonString)
|
||||
|
||||
result = []
|
||||
@@ -157,32 +161,34 @@ def getHumanReadableLoginBonusList(jsonString: str):
|
||||
result.append(line)
|
||||
|
||||
resultString = ""
|
||||
for line in result: # 转成字符串
|
||||
for line in result: # 转成字符串
|
||||
resultString += line + "\n"
|
||||
|
||||
return resultString
|
||||
|
||||
|
||||
def getHumanReadableTicketList(jsonString: str):
|
||||
'''生成一个人类可读的 UserCharge 的列表'''
|
||||
"""生成一个人类可读的 UserCharge 的列表"""
|
||||
data = json.loads(jsonString)
|
||||
|
||||
userId = data['userId']
|
||||
length = data['length']
|
||||
userChargeList = data['userChargeList']
|
||||
userId = data["userId"]
|
||||
length = data["length"]
|
||||
userChargeList = data["userChargeList"]
|
||||
|
||||
result = f"UID: {userId} 票槽大小: {length} 所有记录:"
|
||||
for currentItem in userChargeList:
|
||||
chargeId = currentItem['chargeId']
|
||||
stock = currentItem['stock']
|
||||
purchaseDate = currentItem['purchaseDate']
|
||||
validDate = currentItem['validDate']
|
||||
chargeId = currentItem["chargeId"]
|
||||
stock = currentItem["stock"]
|
||||
purchaseDate = currentItem["purchaseDate"]
|
||||
validDate = currentItem["validDate"]
|
||||
|
||||
result += f"\nID: {chargeId} 持有: {stock}, 购买日期: {purchaseDate}, 有效期限: {validDate}"
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def getHumanReadableUserData(userData) -> str:
|
||||
'''生成一个人类可读的 UserData 的数据(比较详细)'''
|
||||
"""生成一个人类可读的 UserData 的数据(比较详细)"""
|
||||
userId = userData.get("userId")
|
||||
userData = userData.get("userData", {})
|
||||
banState = userData.get("banState")
|
||||
@@ -239,39 +245,40 @@ def getHumanReadableUserData(userData) -> str:
|
||||
result += f"封号状态: {banState}\n"
|
||||
return result
|
||||
|
||||
|
||||
WAHLAP_REGIONS = {
|
||||
1: '北京',
|
||||
2: '重庆',
|
||||
3: '上海',
|
||||
4: '天津',
|
||||
5: '安徽',
|
||||
6: '福建',
|
||||
7: '甘肃',
|
||||
8: '广东',
|
||||
9: '贵州',
|
||||
10: '海南',
|
||||
11: '河北',
|
||||
12: '黑龙江',
|
||||
13: '河南',
|
||||
14: '湖北',
|
||||
15: '湖南',
|
||||
16: '江苏',
|
||||
17: '江西',
|
||||
18: '吉林',
|
||||
19: '辽宁',
|
||||
20: '青海',
|
||||
21: '陕西',
|
||||
22: '山东',
|
||||
23: '山西',
|
||||
24: '四川',
|
||||
25: '(未知25)',
|
||||
26: '云南',
|
||||
27: '浙江',
|
||||
28: '广西',
|
||||
29: '内蒙古',
|
||||
30: '宁夏',
|
||||
31: '新疆',
|
||||
32: '西藏',
|
||||
1: "北京",
|
||||
2: "重庆",
|
||||
3: "上海",
|
||||
4: "天津",
|
||||
5: "安徽",
|
||||
6: "福建",
|
||||
7: "甘肃",
|
||||
8: "广东",
|
||||
9: "贵州",
|
||||
10: "海南",
|
||||
11: "河北",
|
||||
12: "黑龙江",
|
||||
13: "河南",
|
||||
14: "湖北",
|
||||
15: "湖南",
|
||||
16: "江苏",
|
||||
17: "江西",
|
||||
18: "吉林",
|
||||
19: "辽宁",
|
||||
20: "青海",
|
||||
21: "陕西",
|
||||
22: "山东",
|
||||
23: "山西",
|
||||
24: "四川",
|
||||
25: "(未知25)",
|
||||
26: "云南",
|
||||
27: "浙江",
|
||||
28: "广西",
|
||||
29: "内蒙古",
|
||||
30: "宁夏",
|
||||
31: "新疆",
|
||||
32: "西藏",
|
||||
}
|
||||
|
||||
if __name__ == "__main__":
|
||||
@@ -284,12 +291,12 @@ if __name__ == "__main__":
|
||||
currentLoginTimestamp = generateTimestamp()
|
||||
loginResult = apiLogin(currentLoginTimestamp, userId)
|
||||
|
||||
if loginResult['returnCode'] != 1:
|
||||
if loginResult["returnCode"] != 1:
|
||||
logger.info("登录失败")
|
||||
exit()
|
||||
try:
|
||||
logger.info(checkTechnologyUseCount(userId))
|
||||
#logger.info(apiQueryTicket(userId))
|
||||
# logger.info(apiQueryTicket(userId))
|
||||
finally:
|
||||
logger.info(apiLogout(currentLoginTimestamp, userId))
|
||||
#logger.warning("Error")
|
||||
# logger.warning("Error")
|
||||
|
||||
Reference in New Issue
Block a user