diff --git a/src/js/account.js b/src/js/account.js index b586aa0d4..997d40c89 100644 --- a/src/js/account.js +++ b/src/js/account.js @@ -317,7 +317,7 @@ function getAccountDataAndInit() { } else { accountIconLoading(false); } - if (config.paceCaret === "pb") { + if (config.paceCaret === "pb" || config.paceCaret === "average") { if (!testActive) { initPaceCaret(true); } @@ -2433,4 +2433,3 @@ $(".pageLogin #forgotPasswordButton").click((e) => { }); } }); - diff --git a/src/js/commandline.js b/src/js/commandline.js index 7289504d6..b733a1403 100644 --- a/src/js/commandline.js +++ b/src/js/commandline.js @@ -1001,6 +1001,13 @@ let commandsPaceCaret = { setPaceCaret("pb"); }, }, + { + id: "setPaceCaretAverage", + display: "average", + exec: () => { + setPaceCaret("average"); + }, + }, { id: "setPaceCaretCustom", display: "custom...", diff --git a/src/js/db.js b/src/js/db.js index aa8a37dc3..36f446d41 100644 --- a/src/js/db.js +++ b/src/js/db.js @@ -157,6 +157,41 @@ export async function db_getUserHighestWpm( return retval; } +export async function db_getUserAverageWpm10( + mode, + punctuation, + language, + difficulty +) { + function cont() { + let wpmSum = 0; + let count = 0; + dbSnapshot.results.forEach((result) => { + if ( + result.mode == mode && + result.punctuation == punctuation && + result.language == language && + result.difficulty == difficulty + ) { + wpmSum += result.wpm; + count++; + if (count >= 10) { + return Math.round(wpmSum / 10); + } + } + }); + return Math.round(wpmSum / count); + } + + let retval; + if (dbSnapshot == null || dbSnapshot.results === undefined) { + retval = 0; + } else { + retval = cont(); + } + return retval; +} + export async function db_getLocalPB( mode, mode2, diff --git a/src/js/global-dependencies.js b/src/js/global-dependencies.js index fd3476f1a..dc414488a 100644 --- a/src/js/global-dependencies.js +++ b/src/js/global-dependencies.js @@ -14,6 +14,7 @@ import { db_getUserResults, db_getUserHighestWpm, db_getLocalPB, + db_getUserAverageWpm10, db_saveLocalPB, db_getLocalTagPB, db_saveLocalTagPB, diff --git a/src/js/script.js b/src/js/script.js index 2bc091c5d..2beb9175f 100644 --- a/src/js/script.js +++ b/src/js/script.js @@ -3591,7 +3591,11 @@ function updateTestModesNotice() { if (config.paceCaret !== "off") { $(".pageTest #testModesNotice").append( `
${ - config.paceCaret === "pb" ? "pb" : config.paceCaretCustomSpeed + " wpm" + config.paceCaret === "average" + ? "average" + : config.paceCaret === "pb" + ? "pb" + : config.paceCaretCustomSpeed + " wpm" } pace
` ); } @@ -3931,6 +3935,14 @@ async function initPaceCaret() { config.language, config.difficulty ); + } else if (config.paceCaret === "average") { + await db_getUserResults(); + wpm = await db_getUserAverageWpm10( + config.mode, + config.punctuation, + config.language, + config.difficulty + ); } else if (config.paceCaret === "custom") { wpm = config.paceCaretCustomSpeed; } diff --git a/static/index.html b/static/index.html index 3c1949077..57b9c3ee3 100644 --- a/static/index.html +++ b/static/index.html @@ -2211,6 +2211,14 @@ > off +
+ average +