Add on-the-fly rank calculation; change "subscribed" to "subscribed_to_scores"
This commit is contained in:
@@ -4,8 +4,11 @@ import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"gopkg.in/thehowl/go-osuapi.v1"
|
||||
"zxq.co/ripple/rippleapi/common"
|
||||
"zxq.co/x/getrank"
|
||||
)
|
||||
|
||||
// Score is a score done on Ripple.
|
||||
@@ -26,6 +29,7 @@ type Score struct {
|
||||
PlayMode int `json:"play_mode"`
|
||||
Accuracy float64 `json:"accuracy"`
|
||||
PP float32 `json:"pp"`
|
||||
Rank string `json:"rank"`
|
||||
Completed int `json:"completed"`
|
||||
}
|
||||
|
||||
@@ -112,6 +116,15 @@ WHERE scores.beatmap_md5 = ? AND scores.completed = '3' AND `+md.User.OnlyUserPu
|
||||
continue
|
||||
}
|
||||
s.User = u
|
||||
s.Rank = strings.ToUpper(getrank.GetRank(
|
||||
osuapi.Mode(s.PlayMode),
|
||||
osuapi.Mods(s.Mods),
|
||||
s.Accuracy,
|
||||
s.Count300,
|
||||
s.Count100,
|
||||
s.Count50,
|
||||
s.CountMiss,
|
||||
))
|
||||
r.Scores = append(r.Scores, s)
|
||||
}
|
||||
r.Code = 200
|
||||
|
@@ -2,8 +2,11 @@ package v1
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"gopkg.in/thehowl/go-osuapi.v1"
|
||||
"zxq.co/ripple/rippleapi/common"
|
||||
"zxq.co/x/getrank"
|
||||
)
|
||||
|
||||
type userScore struct {
|
||||
@@ -106,6 +109,15 @@ func scoresPuts(md common.MethodData, whereClause string, params ...interface{})
|
||||
}
|
||||
b.Difficulty = b.Diff2.STD
|
||||
us.Beatmap = b
|
||||
us.Rank = strings.ToUpper(getrank.GetRank(
|
||||
osuapi.Mode(us.PlayMode),
|
||||
osuapi.Mods(us.Mods),
|
||||
us.Accuracy,
|
||||
us.Count300,
|
||||
us.Count100,
|
||||
us.Count50,
|
||||
us.CountMiss,
|
||||
))
|
||||
scores = append(scores, us)
|
||||
}
|
||||
r := userScoresResponse{}
|
||||
|
Reference in New Issue
Block a user