chore: fix more warnings
This commit is contained in:
@@ -1,16 +1,21 @@
|
|||||||
import rapidjson as json
|
import rapidjson as json
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
||||||
from Config import *
|
from API_TitleServer import (
|
||||||
from API_TitleServer import *
|
SDGBRequestError,
|
||||||
|
SDGBApiError,
|
||||||
|
apiSDGB,
|
||||||
|
calcPlaySpecial,
|
||||||
|
)
|
||||||
from HelperGetUserThing import implGetUser_
|
from HelperGetUserThing import implGetUser_
|
||||||
from HelperUploadUserPlayLog import apiUploadUserPlaylog
|
from HelperUploadUserPlayLog import apiUploadUserPlaylog
|
||||||
from HelperUserAll import generateFullUserAll
|
from HelperUserAll import generateFullUserAll
|
||||||
|
|
||||||
|
|
||||||
def generateMusicData():
|
def generateMusicData():
|
||||||
"""生成一份占位的音乐数据"""
|
"""生成一份占位的音乐数据"""
|
||||||
return {
|
return {
|
||||||
"musicId": 834, # PANDORA PARADOXXX
|
"musicId": 834, # PANDORA PARADOXXX
|
||||||
"level": 4,
|
"level": 4,
|
||||||
"playCount": 1,
|
"playCount": 1,
|
||||||
"achievement": 0,
|
"achievement": 0,
|
||||||
@@ -18,9 +23,10 @@ def generateMusicData():
|
|||||||
"syncStatus": 0,
|
"syncStatus": 0,
|
||||||
"deluxscoreMax": 0,
|
"deluxscoreMax": 0,
|
||||||
"scoreRank": 0,
|
"scoreRank": 0,
|
||||||
"extNum1": 0
|
"extNum1": 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def applyUserAllPatches(userAll, patches):
|
def applyUserAllPatches(userAll, patches):
|
||||||
"""
|
"""
|
||||||
递归地将给定的补丁应用到用户数据的各个层次。
|
递归地将给定的补丁应用到用户数据的各个层次。
|
||||||
@@ -29,13 +35,25 @@ def applyUserAllPatches(userAll, patches):
|
|||||||
:param patches: 包含所有patch的字典
|
:param patches: 包含所有patch的字典
|
||||||
"""
|
"""
|
||||||
for key, value in patches.items():
|
for key, value in patches.items():
|
||||||
if isinstance(value, dict) and key in userAll and isinstance(userAll[key], dict):
|
if (
|
||||||
|
isinstance(value, dict)
|
||||||
|
and key in userAll
|
||||||
|
and isinstance(userAll[key], dict)
|
||||||
|
):
|
||||||
# 如果patch的值是字典,并且userAll中对应的key也是字典,递归处理
|
# 如果patch的值是字典,并且userAll中对应的key也是字典,递归处理
|
||||||
applyUserAllPatches(userAll[key], value)
|
applyUserAllPatches(userAll[key], value)
|
||||||
elif isinstance(value, list) and key in userAll and isinstance(userAll[key], list):
|
elif (
|
||||||
|
isinstance(value, list)
|
||||||
|
and key in userAll
|
||||||
|
and isinstance(userAll[key], list)
|
||||||
|
):
|
||||||
# 如果值是列表,进行详细的更新处理
|
# 如果值是列表,进行详细的更新处理
|
||||||
for i, patch_item in enumerate(value):
|
for i, patch_item in enumerate(value):
|
||||||
if i < len(userAll[key]) and isinstance(patch_item, dict) and isinstance(userAll[key][i], dict):
|
if (
|
||||||
|
i < len(userAll[key])
|
||||||
|
and isinstance(patch_item, dict)
|
||||||
|
and isinstance(userAll[key][i], dict)
|
||||||
|
):
|
||||||
# 如果列表项是字典,更新字典中的字段
|
# 如果列表项是字典,更新字典中的字段
|
||||||
applyUserAllPatches(userAll[key][i], patch_item)
|
applyUserAllPatches(userAll[key][i], patch_item)
|
||||||
elif i >= len(userAll[key]):
|
elif i >= len(userAll[key]):
|
||||||
@@ -44,19 +62,29 @@ def applyUserAllPatches(userAll, patches):
|
|||||||
else:
|
else:
|
||||||
# 否则直接更新或添加key
|
# 否则直接更新或添加key
|
||||||
userAll[key] = value
|
userAll[key] = value
|
||||||
|
|
||||||
def implFullPlayAction(userId: int, currentLoginTimestamp:int, currentLoginResult, musicData, userAllPatches, debugMode=False):
|
|
||||||
|
def implFullPlayAction(
|
||||||
|
userId: int,
|
||||||
|
currentLoginTimestamp: int,
|
||||||
|
currentLoginResult,
|
||||||
|
musicData,
|
||||||
|
userAllPatches,
|
||||||
|
debugMode=False,
|
||||||
|
):
|
||||||
"""
|
"""
|
||||||
一份完整的上机实现,可以打 patch 来实现各种功能
|
一份完整的上机实现,可以打 patch 来实现各种功能
|
||||||
需要在外部先登录并传入登录结果
|
需要在外部先登录并传入登录结果
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# 取得 UserData
|
# 取得 UserData
|
||||||
currentUserData = implGetUser_("Data", userId)
|
currentUserData = implGetUser_("Data", userId)
|
||||||
currentUserData2 = currentUserData['userData']
|
currentUserData2 = currentUserData["userData"]
|
||||||
|
|
||||||
# 构建并上传一个游玩记录
|
# 构建并上传一个游玩记录
|
||||||
currentUploadUserPlaylogApiResult = apiUploadUserPlaylog(userId, musicData, currentUserData2, currentLoginResult['loginId'])
|
currentUploadUserPlaylogApiResult = apiUploadUserPlaylog(
|
||||||
|
userId, musicData, currentUserData2, currentLoginResult["loginId"]
|
||||||
|
)
|
||||||
logger.debug(f"上传 UserPlayLog 结果: {currentUploadUserPlaylogApiResult}")
|
logger.debug(f"上传 UserPlayLog 结果: {currentUploadUserPlaylogApiResult}")
|
||||||
|
|
||||||
# 构建并上传 UserAll
|
# 构建并上传 UserAll
|
||||||
@@ -65,13 +93,22 @@ def implFullPlayAction(userId: int, currentLoginTimestamp:int, currentLoginResul
|
|||||||
# 计算一个特殊数
|
# 计算一个特殊数
|
||||||
currentPlaySpecial = calcPlaySpecial()
|
currentPlaySpecial = calcPlaySpecial()
|
||||||
# 生成出 UserAll
|
# 生成出 UserAll
|
||||||
currentUserAll = generateFullUserAll(userId, currentLoginResult, currentLoginTimestamp, currentUserData2, currentPlaySpecial)
|
currentUserAll = generateFullUserAll(
|
||||||
|
userId,
|
||||||
|
currentLoginResult,
|
||||||
|
currentLoginTimestamp,
|
||||||
|
currentUserData2,
|
||||||
|
currentPlaySpecial,
|
||||||
|
)
|
||||||
# 应用参数里的补丁
|
# 应用参数里的补丁
|
||||||
applyUserAllPatches(currentUserAll, userAllPatches)
|
applyUserAllPatches(currentUserAll, userAllPatches)
|
||||||
|
|
||||||
# 调试模式下直接输出数据
|
# 调试模式下直接输出数据
|
||||||
if debugMode:
|
if debugMode:
|
||||||
logger.debug("调试模式:构建出的 UserAll 数据:" + json.dumps(currentUserAll, indent=4))
|
logger.debug(
|
||||||
|
"调试模式:构建出的 UserAll 数据:"
|
||||||
|
+ json.dumps(currentUserAll, indent=4)
|
||||||
|
)
|
||||||
logger.info("Bye!")
|
logger.info("Bye!")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -88,8 +125,8 @@ def implFullPlayAction(userId: int, currentLoginTimestamp:int, currentLoginResul
|
|||||||
raise SDGBApiError("邪门错误")
|
raise SDGBApiError("邪门错误")
|
||||||
# 成功上传后退出循环
|
# 成功上传后退出循环
|
||||||
break
|
break
|
||||||
else: # 重试次数超过3次
|
else: # 重试次数超过3次
|
||||||
raise SDGBRequestError
|
raise SDGBRequestError
|
||||||
|
|
||||||
logger.info("上机:结果:"+ str(currentUserAllResult))
|
logger.info("上机:结果:" + str(currentUserAllResult))
|
||||||
return currentUserAllResult
|
return currentUserAllResult
|
||||||
|
|||||||
Reference in New Issue
Block a user