Add auto-submit to leaderboard and argparse support for app.py
This commit is contained in:
@@ -926,6 +926,7 @@ class Scoresheet{
|
||||
var title = this.controller.selectedSong.originalTitle
|
||||
var hash = this.controller.selectedSong.hash
|
||||
var difficulty = this.resultsObj.difficulty
|
||||
var songId = this.controller.selectedSong.id
|
||||
var oldScore = scoreStorage.get(hash, difficulty, true)
|
||||
var clearReached = this.controller.game.rules.clearReached(this.resultsObj.gauge)
|
||||
var crown = ""
|
||||
@@ -940,7 +941,10 @@ class Scoresheet{
|
||||
delete this.resultsObj.title
|
||||
delete this.resultsObj.difficulty
|
||||
delete this.resultsObj.gauge
|
||||
scoreStorage.add(hash, difficulty, this.resultsObj, true, title).catch(() => {
|
||||
scoreStorage.add(hash, difficulty, this.resultsObj, true, title).then(() => {
|
||||
// Auto-submit to leaderboard if logged in and has song ID
|
||||
this.submitToLeaderboard(songId, difficulty, this.resultsObj)
|
||||
}).catch(() => {
|
||||
this.showWarning = { name: "scoreSaveFailed" }
|
||||
})
|
||||
} else if (oldScore && (crown === "gold" && oldScore.crown !== "gold" || crown && !oldScore.crown)) {
|
||||
@@ -953,6 +957,28 @@ class Scoresheet{
|
||||
this.scoreSaved = true
|
||||
}
|
||||
|
||||
submitToLeaderboard(songId, difficulty, scoreObj) {
|
||||
// Only submit if user is logged in and song has valid ID
|
||||
if (!account.loggedIn || !songId) {
|
||||
return
|
||||
}
|
||||
|
||||
loader.getCsrfToken().then(token => {
|
||||
var request = new XMLHttpRequest()
|
||||
request.open("POST", "api/leaderboard/submit")
|
||||
request.setRequestHeader("Content-Type", "application/json;charset=UTF-8")
|
||||
request.setRequestHeader("X-CSRFToken", token)
|
||||
request.send(JSON.stringify({
|
||||
song_id: songId,
|
||||
difficulty: difficulty,
|
||||
score: scoreObj
|
||||
}))
|
||||
}).catch(() => {
|
||||
// Silently fail - leaderboard submission is optional
|
||||
console.log("Leaderboard submission failed")
|
||||
})
|
||||
}
|
||||
|
||||
clean() {
|
||||
this.keyboard.clean()
|
||||
this.gamepad.clean()
|
||||
|
||||
Reference in New Issue
Block a user