constmemeQuery="SELECT users.id, scores.play_mode, scores.accuracy, scores.pp FROM scores LEFT JOIN users ON users.id = scores.userid WHERE completed = '3'"
rows,err:=db.Query(memeQuery)
iferr!=nil{
queryError(err,memeQuery)
return
}
forrows.Next(){
var(
uidint
elcalculateOverallAccuracyElement
)
err=rows.Scan(&uid,&el.mode,&el.accuracy,&el.pp)
iferr!=nil{
queryError(err,memeQuery)
continue
}
// silently ignore invalid modes
ifel.mode<0||el.mode>3{
continue
}
ifdata[uid]==nil{
data[uid]=new(coaeCollectionCollection)
}
data[uid].Add(el)
}
for_,v:=rangedata{
// VARIABLE SHADOWING FTW
for_,v:=rangev{
sort.Sort(v)
}
}
foruserid,info:=rangedata{
formode,scores:=rangeinfo{
op("UPDATE users_stats SET avg_accuracy_"+modes[mode]+" = ? WHERE id = ?",scores.Weighten(),userid)
Changes for calculate_pp.go: 2 added lines, 2 removed lines.
Original line number
Diff line number
Diff line
@@ -13,6 +13,8 @@ type ppUserMode struct {
}
funcopCalculatePP(){
deferwg.Done()
constppQuery="SELECT scores.userid, pp, scores.play_mode FROM scores LEFT JOIN users ON users.id=scores.userid WHERE completed = '3' AND users.allowed = '1' ORDER BY pp DESC"