d
This commit is contained in:
parent
25963a8eb7
commit
df83b9f25a
|
@ -70,10 +70,10 @@ def getUserStatsRx(userID, gameMode):
|
|||
|
||||
# Get stats
|
||||
stats = glob.db.fetch("""SELECT
|
||||
ranked_score_{gm} AS rankedScore,
|
||||
avg_accuracy_{gm} AS accuracy,
|
||||
playcount_{gm} AS playcount,
|
||||
total_score_{gm} AS totalScore,
|
||||
ranked_score_{gm}_rx AS rankedScore,
|
||||
avg_accuracy_{gm}_rx AS accuracy,
|
||||
playcount_{gm}_rx AS playcount,
|
||||
total_score_{gm}_rx AS totalScore,
|
||||
pp_{gm}_rx AS pp
|
||||
FROM users_stats WHERE id = %s LIMIT 1""".format(gm=modeForDB), [userID])
|
||||
|
||||
|
@ -95,10 +95,10 @@ def getUserStatsAp(userID, gameMode):
|
|||
|
||||
# Get stats
|
||||
stats = glob.db.fetch("""SELECT
|
||||
ranked_score_{gm} AS rankedScore,
|
||||
avg_accuracy_{gm} AS accuracy,
|
||||
playcount_{gm} AS playcount,
|
||||
total_score_{gm} AS totalScore,
|
||||
ranked_score_{gm}_ap AS rankedScore,
|
||||
avg_accuracy_{gm}_ap AS accuracy,
|
||||
playcount_{gm}_ap AS playcount,
|
||||
total_score_{gm}_ap AS totalScore,
|
||||
pp_{gm}_auto AS pp
|
||||
FROM users_stats WHERE id = %s LIMIT 1""".format(gm=modeForDB), [userID])
|
||||
|
||||
|
@ -281,6 +281,60 @@ def updateLevel(userID, gameMode=0, totalScore=0):
|
|||
# Save new level
|
||||
glob.db.execute("UPDATE users_stats SET level_{m} = %s WHERE id = %s LIMIT 1".format(m=mode), [level, userID])
|
||||
|
||||
def updateLevelRX(userID, gameMode=0, totalScore=0):
|
||||
"""
|
||||
Update level in DB for userID relative to gameMode
|
||||
|
||||
:param userID: user id
|
||||
:param gameMode: game mode number
|
||||
:param totalScore: new total score
|
||||
:return:
|
||||
"""
|
||||
# Make sure the user exists
|
||||
# if not exists(userID):
|
||||
# return
|
||||
|
||||
# Get total score from db if not passed
|
||||
mode = scoreUtils.readableGameMode(gameMode)
|
||||
if totalScore == 0:
|
||||
totalScore = glob.db.fetch(
|
||||
"SELECT total_score_{m}_rx as total_score FROM users_stats WHERE id = %s LIMIT 1".format(m=mode), [userID])
|
||||
if totalScore:
|
||||
totalScore = totalScore["total_score"]
|
||||
|
||||
# Calculate level from totalScore
|
||||
level = getLevel(totalScore)
|
||||
|
||||
# Save new level
|
||||
glob.db.execute("UPDATE users_stats SET level_{m}_rx = %s WHERE id = %s LIMIT 1".format(m=mode), [level, userID])
|
||||
|
||||
def updateLevelAP(userID, gameMode=0, totalScore=0):
|
||||
"""
|
||||
Update level in DB for userID relative to gameMode
|
||||
|
||||
:param userID: user id
|
||||
:param gameMode: game mode number
|
||||
:param totalScore: new total score
|
||||
:return:
|
||||
"""
|
||||
# Make sure the user exists
|
||||
# if not exists(userID):
|
||||
# return
|
||||
|
||||
# Get total score from db if not passed
|
||||
mode = scoreUtils.readableGameMode(gameMode)
|
||||
if totalScore == 0:
|
||||
totalScore = glob.db.fetch(
|
||||
"SELECT total_score_{m}_ap as total_score FROM users_stats WHERE id = %s LIMIT 1".format(m=mode), [userID])
|
||||
if totalScore:
|
||||
totalScore = totalScore["total_score"]
|
||||
|
||||
# Calculate level from totalScore
|
||||
level = getLevel(totalScore)
|
||||
|
||||
# Save new level
|
||||
glob.db.execute("UPDATE users_stats SET level_{m}_ap = %s WHERE id = %s LIMIT 1".format(m=mode), [level, userID])
|
||||
|
||||
def calculateAccuracy(userID, gameMode):
|
||||
"""
|
||||
Calculate accuracy value for userID relative to gameMode
|
||||
|
@ -402,6 +456,32 @@ def updateAccuracy(userID, gameMode):
|
|||
glob.db.execute("UPDATE users_stats SET avg_accuracy_{m} = %s WHERE id = %s LIMIT 1".format(m=mode),
|
||||
[newAcc, userID])
|
||||
|
||||
def updateAccuracyRX(userID, gameMode):
|
||||
"""
|
||||
Update accuracy value for userID relative to gameMode in DB
|
||||
|
||||
:param userID: user id
|
||||
:param gameMode: gameMode number
|
||||
:return:
|
||||
"""
|
||||
newAcc = calculateAccuracy(userID, gameMode)
|
||||
mode = scoreUtils.readableGameMode(gameMode)
|
||||
glob.db.execute("UPDATE users_stats SET avg_accuracy_{m}_rx = %s WHERE id = %s LIMIT 1".format(m=mode),
|
||||
[newAcc, userID])
|
||||
|
||||
def updateAccuracyAP(userID, gameMode):
|
||||
"""
|
||||
Update accuracy value for userID relative to gameMode in DB
|
||||
|
||||
:param userID: user id
|
||||
:param gameMode: gameMode number
|
||||
:return:
|
||||
"""
|
||||
newAcc = calculateAccuracy(userID, gameMode)
|
||||
mode = scoreUtils.readableGameMode(gameMode)
|
||||
glob.db.execute("UPDATE users_stats SET avg_accuracy_{m}_ap = %s WHERE id = %s LIMIT 1".format(m=mode),
|
||||
[newAcc, userID])
|
||||
|
||||
def updatePP(userID, gameMode):
|
||||
"""
|
||||
Update userID's pp with new value
|
||||
|
@ -508,21 +588,21 @@ def updateStatsRx(userID, __score):
|
|||
|
||||
# Update total score and playcount
|
||||
glob.db.execute(
|
||||
"UPDATE users_stats SET total_score_{m}=total_score_{m}+%s, playcount_{m}=playcount_{m}+1 WHERE id = %s LIMIT 1".format(
|
||||
"UPDATE users_stats SET total_score_{m}_rx=total_score_{m}_rx+%s, playcount_{m}_rx=playcount_{m}_rx+1 WHERE id = %s LIMIT 1".format(
|
||||
m=mode), [__score.score, userID])
|
||||
|
||||
# Calculate new level and update it
|
||||
updateLevel(userID, __score.gameMode)
|
||||
updateLevelRX(userID, __score.gameMode)
|
||||
|
||||
# Update level, accuracy and ranked score only if we have passed the song
|
||||
if __score.passed:
|
||||
# Update ranked score
|
||||
glob.db.execute(
|
||||
"UPDATE users_stats SET ranked_score_{m}=ranked_score_{m}+%s WHERE id = %s LIMIT 1".format(m=mode),
|
||||
"UPDATE users_stats SET ranked_score_{m}_rx=ranked_score_{m}_rx+%s WHERE id = %s LIMIT 1".format(m=mode),
|
||||
[__score.rankedScoreIncrease, userID])
|
||||
|
||||
# Update accuracy
|
||||
updateAccuracy(userID, __score.gameMode)
|
||||
updateAccuracyRX(userID, __score.gameMode)
|
||||
|
||||
# Update pp
|
||||
updatePPRelax(userID, __score.gameMode)
|
||||
|
@ -546,11 +626,11 @@ def updateStatsAp(userID, __score):
|
|||
|
||||
# Update total score and playcount
|
||||
glob.db.execute(
|
||||
"UPDATE users_stats SET total_score_{m}=total_score_{m}+%s, playcount_{m}=playcount_{m}+1 WHERE id = %s LIMIT 1".format(
|
||||
"UPDATE users_stats SET total_score_{m}_ap=total_score_{m}_a-+%s, playcount_{m}_ap=playcount_{m}_ap+1 WHERE id = %s LIMIT 1".format(
|
||||
m=mode), [__score.score, userID])
|
||||
|
||||
# Calculate new level and update it
|
||||
updateLevel(userID, __score.gameMode)
|
||||
updateLevelAP(userID, __score.gameMode)
|
||||
|
||||
# Update level, accuracy and ranked score only if we have passed the song
|
||||
if __score.passed:
|
||||
|
@ -560,7 +640,7 @@ def updateStatsAp(userID, __score):
|
|||
[__score.rankedScoreIncrease, userID])
|
||||
|
||||
# Update accuracy
|
||||
updateAccuracy(userID, __score.gameMode)
|
||||
updateAccuracyAP(userID, __score.gameMode)
|
||||
|
||||
# Update pp
|
||||
updatePPAuto(userID, __score.gameMode)
|
||||
|
|
Loading…
Reference in New Issue
Block a user