refactor: module imports
This commit is contained in:
@@ -1,59 +1,62 @@
|
||||
# 获取用户成绩的各种实现
|
||||
from API_TitleServer import *
|
||||
from HelperLogInOut import apiLogin, apiLogout, generateTimestamp
|
||||
from Config import *
|
||||
import rapidjson as json
|
||||
from HelperMusicDB import getMusicTitle
|
||||
from loguru import logger
|
||||
import sys
|
||||
|
||||
from HelperMusicDB import getMusicTitle
|
||||
from API_TitleServer import apiSDGB
|
||||
from MyConfig import testUid
|
||||
|
||||
# 日志设置
|
||||
#log_level = "DEBUG"
|
||||
#log_format = "<green>{time:YYYY-MM-DD HH:mm:ss.SSS zz}</green> | <level>{level: <8}</level> | <yellow>Line {line: >4} ({file}):</yellow> <b>{message}</b>"
|
||||
#logger.add(sys.stderr, level=log_level, format=log_format, colorize=True, backtrace=True, diagnose=True)
|
||||
#logger.add("file.log", level=log_level, format=log_format, colorize=False, backtrace=True, diagnose=True)
|
||||
# log_level = "DEBUG"
|
||||
# log_format = "<green>{time:YYYY-MM-DD HH:mm:ss.SSS zz}</green> | <level>{level: <8}</level> | <yellow>Line {line: >4} ({file}):</yellow> <b>{message}</b>"
|
||||
# logger.add(sys.stderr, level=log_level, format=log_format, colorize=True, backtrace=True, diagnose=True)
|
||||
# logger.add("file.log", level=log_level, format=log_format, colorize=False, backtrace=True, diagnose=True)
|
||||
|
||||
def getUserMusicDetail(userId:int, nextIndex:int=0, maxCount:int=50) -> dict:
|
||||
|
||||
def getUserMusicDetail(userId: int, nextIndex: int = 0, maxCount: int = 50) -> dict:
|
||||
"""获取用户的成绩的API"""
|
||||
data = json.dumps({
|
||||
"userId": int(userId),
|
||||
"nextIndex": nextIndex,
|
||||
"maxCount": maxCount
|
||||
})
|
||||
data = json.dumps(
|
||||
{"userId": int(userId), "nextIndex": nextIndex, "maxCount": maxCount}
|
||||
)
|
||||
return json.loads(apiSDGB(data, "GetUserMusicApi", userId))
|
||||
|
||||
|
||||
def getUserFullMusicDetail(userId: int):
|
||||
"""获取用户的全部成绩"""
|
||||
currentUserMusicDetailList = []
|
||||
nextIndex:int|None = None # 初始化 nextIndex
|
||||
while nextIndex != 0 or nextIndex is None: #只要还有nextIndex就一直获取获取
|
||||
nextIndex: int | None = None # 初始化 nextIndex
|
||||
while nextIndex != 0 or nextIndex is None: # 只要还有nextIndex就一直获取获取
|
||||
userMusicResponse = getUserMusicDetail(userId, nextIndex or 0)
|
||||
nextIndex = userMusicResponse['nextIndex']
|
||||
nextIndex = userMusicResponse["nextIndex"]
|
||||
logger.info(f"NextIndex: {nextIndex}")
|
||||
# 处理已经没有 userMusicList 的情况
|
||||
if not userMusicResponse['userMusicList']:
|
||||
if not userMusicResponse["userMusicList"]:
|
||||
break
|
||||
# 只要还有 userMusicList 就一直加进去,直到全部获取完毕
|
||||
for currentMusic in userMusicResponse['userMusicList']:
|
||||
for currentMusicDetail in currentMusic['userMusicDetailList']:
|
||||
if not currentMusicDetail['playCount'] > 0:
|
||||
for currentMusic in userMusicResponse["userMusicList"]:
|
||||
for currentMusicDetail in currentMusic["userMusicDetailList"]:
|
||||
if not currentMusicDetail["playCount"] > 0:
|
||||
continue
|
||||
currentUserMusicDetailList.append(currentMusicDetail)
|
||||
return currentUserMusicDetailList
|
||||
|
||||
|
||||
def parseUserFullMusicDetail(userFullMusicDetailList: list):
|
||||
"""解析用户的全部成绩,给出一个迫真人类可读 list 套 dict"""
|
||||
musicDetailList = []
|
||||
for currentMusicDetail in userFullMusicDetailList:
|
||||
musicDetailList.append({
|
||||
'歌名': getMusicTitle(currentMusicDetail['musicId']),
|
||||
'难度': currentMusicDetail['level'],
|
||||
'分数': currentMusicDetail['achievement'] / 10000,
|
||||
'DX分数': currentMusicDetail['deluxscoreMax']
|
||||
})
|
||||
musicDetailList.append(
|
||||
{
|
||||
"歌名": getMusicTitle(currentMusicDetail["musicId"]),
|
||||
"难度": currentMusicDetail["level"],
|
||||
"分数": currentMusicDetail["achievement"] / 10000,
|
||||
"DX分数": currentMusicDetail["deluxscoreMax"],
|
||||
}
|
||||
)
|
||||
return musicDetailList
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
if __name__ == "__main__":
|
||||
userId = testUid
|
||||
userFullMusicDetailList = getUserFullMusicDetail(userId)
|
||||
parsedUserFullMusicDetail = parseUserFullMusicDetail(userFullMusicDetailList)
|
||||
|
||||
Reference in New Issue
Block a user