diff --git a/app/peppy/user.go b/app/peppy/user.go index 8c20391..b60423f 100644 --- a/app/peppy/user.go +++ b/app/peppy/user.go @@ -4,6 +4,7 @@ package peppy import ( "database/sql" "fmt" + "math" "git.zxq.co/ripple/ocl" "github.com/gin-gonic/gin" @@ -49,5 +50,12 @@ func GetUser(c *gin.Context, db *sql.DB) { } user.Level = ocl.GetLevelPrecise(user.TotalScore) + if math.IsInf(user.Accuracy, 0) { + user.Accuracy = 0 + } + if math.IsInf(user.Level, 0) { + user.Level = 0 + } + c.JSON(200, []osuapi.User{user}) } diff --git a/app/v1/user.go b/app/v1/user.go index 8432350..a6c7006 100644 --- a/app/v1/user.go +++ b/app/v1/user.go @@ -3,6 +3,7 @@ package v1 import ( "database/sql" + "math" "strconv" "strings" "time" @@ -129,6 +130,17 @@ type modeData struct { PP int `json:"pp"` GlobalLeaderboardRank int `json:"global_leaderboard_rank"` } + +func (m modeData) Normalise() modeData { + if math.IsInf(m.Level, 0) { + m.Level = 0 + } + if math.IsInf(m.Accuracy, 0) { + m.Accuracy = 0 + } + return m +} + type userFullResponse struct { common.ResponseBase userData