Loading calculate_overall_accuracy.go +1 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ type calculateOverallAccuracyElement struct { } func (c calculateOverallAccuracyElement) g() float64 { if c.mode == 0 { if hasPP(c.mode) { return c.pp } return c.accuracy Loading calculate_pp.go +18 −8 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ func opCalculatePP() { return } users := make(map[int]*ppUserMode) users := make(map[int]*[4]*ppUserMode) var count int for rows.Next() { Loading @@ -40,20 +40,30 @@ func opCalculatePP() { continue } if users[userid] == nil { users[userid] = &ppUserMode{} users[userid] = &[4]*ppUserMode{ new(ppUserMode), new(ppUserMode), new(ppUserMode), new(ppUserMode), } if users[userid].countScores > 100 { } if users[userid][playMode].countScores > 100 { continue } currentScorePP := round(round(ppAmt) * math.Pow(0.95, float64(users[userid].countScores))) users[userid].countScores++ users[userid].ppTotal += int(currentScorePP) currentScorePP := round(round(ppAmt) * math.Pow(0.95, float64(users[userid][playMode].countScores))) users[userid][playMode].countScores++ users[userid][playMode].ppTotal += int(currentScorePP) count++ } rows.Close() for userid, ppUM := range users { op("UPDATE users_stats SET pp_std = ? WHERE id = ?", ppUM.ppTotal, userid) for userid, pps := range users { for mode, ppUM := range *pps { if !hasPP(mode) { continue } op("UPDATE users_stats SET pp_"+modeToString(mode)+" = ? WHERE id = ?", ppUM.ppTotal, userid) } } color.Green("> CalculatePP: done!") Loading haspp.go 0 → 100644 +3 −0 Original line number Diff line number Diff line package main func hasPP(mode int) bool { return mode == 0 || mode == 3 } leaderboard.go +1 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ func opBuildLeaderboard() { } db.SetMaxOpenConns(1) db.SetMaxIdleConns(1) const initQuery = "SELECT users_stats.id, pp_std, ranked_score_taiko, ranked_score_ctb, ranked_score_mania FROM users_stats INNER JOIN users ON users.id = users_stats.id WHERE privileges & 1 > 0" const initQuery = "SELECT users_stats.id, pp_std, ranked_score_taiko, ranked_score_ctb, pp_mania FROM users_stats INNER JOIN users ON users.id = users_stats.id WHERE privileges & 1 > 0" logquery(initQuery, nil) rows, err := db.Query(initQuery) if err != nil { Loading Loading
calculate_overall_accuracy.go +1 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ type calculateOverallAccuracyElement struct { } func (c calculateOverallAccuracyElement) g() float64 { if c.mode == 0 { if hasPP(c.mode) { return c.pp } return c.accuracy Loading
calculate_pp.go +18 −8 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ func opCalculatePP() { return } users := make(map[int]*ppUserMode) users := make(map[int]*[4]*ppUserMode) var count int for rows.Next() { Loading @@ -40,20 +40,30 @@ func opCalculatePP() { continue } if users[userid] == nil { users[userid] = &ppUserMode{} users[userid] = &[4]*ppUserMode{ new(ppUserMode), new(ppUserMode), new(ppUserMode), new(ppUserMode), } if users[userid].countScores > 100 { } if users[userid][playMode].countScores > 100 { continue } currentScorePP := round(round(ppAmt) * math.Pow(0.95, float64(users[userid].countScores))) users[userid].countScores++ users[userid].ppTotal += int(currentScorePP) currentScorePP := round(round(ppAmt) * math.Pow(0.95, float64(users[userid][playMode].countScores))) users[userid][playMode].countScores++ users[userid][playMode].ppTotal += int(currentScorePP) count++ } rows.Close() for userid, ppUM := range users { op("UPDATE users_stats SET pp_std = ? WHERE id = ?", ppUM.ppTotal, userid) for userid, pps := range users { for mode, ppUM := range *pps { if !hasPP(mode) { continue } op("UPDATE users_stats SET pp_"+modeToString(mode)+" = ? WHERE id = ?", ppUM.ppTotal, userid) } } color.Green("> CalculatePP: done!") Loading
haspp.go 0 → 100644 +3 −0 Original line number Diff line number Diff line package main func hasPP(mode int) bool { return mode == 0 || mode == 3 }
leaderboard.go +1 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ func opBuildLeaderboard() { } db.SetMaxOpenConns(1) db.SetMaxIdleConns(1) const initQuery = "SELECT users_stats.id, pp_std, ranked_score_taiko, ranked_score_ctb, ranked_score_mania FROM users_stats INNER JOIN users ON users.id = users_stats.id WHERE privileges & 1 > 0" const initQuery = "SELECT users_stats.id, pp_std, ranked_score_taiko, ranked_score_ctb, pp_mania FROM users_stats INNER JOIN users ON users.id = users_stats.id WHERE privileges & 1 > 0" logquery(initQuery, nil) rows, err := db.Query(initQuery) if err != nil { Loading