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 title = this.controller.selectedSong.originalTitle
|
||||||
var hash = this.controller.selectedSong.hash
|
var hash = this.controller.selectedSong.hash
|
||||||
var difficulty = this.resultsObj.difficulty
|
var difficulty = this.resultsObj.difficulty
|
||||||
|
var songId = this.controller.selectedSong.id
|
||||||
var oldScore = scoreStorage.get(hash, difficulty, true)
|
var oldScore = scoreStorage.get(hash, difficulty, true)
|
||||||
var clearReached = this.controller.game.rules.clearReached(this.resultsObj.gauge)
|
var clearReached = this.controller.game.rules.clearReached(this.resultsObj.gauge)
|
||||||
var crown = ""
|
var crown = ""
|
||||||
@@ -940,7 +941,10 @@ class Scoresheet{
|
|||||||
delete this.resultsObj.title
|
delete this.resultsObj.title
|
||||||
delete this.resultsObj.difficulty
|
delete this.resultsObj.difficulty
|
||||||
delete this.resultsObj.gauge
|
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" }
|
this.showWarning = { name: "scoreSaveFailed" }
|
||||||
})
|
})
|
||||||
} else if (oldScore && (crown === "gold" && oldScore.crown !== "gold" || crown && !oldScore.crown)) {
|
} else if (oldScore && (crown === "gold" && oldScore.crown !== "gold" || crown && !oldScore.crown)) {
|
||||||
@@ -953,6 +957,28 @@ class Scoresheet{
|
|||||||
this.scoreSaved = true
|
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() {
|
clean() {
|
||||||
this.keyboard.clean()
|
this.keyboard.clean()
|
||||||
this.gamepad.clean()
|
this.gamepad.clean()
|
||||||
|
|||||||
Reference in New Issue
Block a user