diff --git a/public/app.html b/public/app.html
index f9e44a386..f94e7a79a 100644
--- a/public/app.html
+++ b/public/app.html
@@ -161,7 +161,7 @@
-
+ 123
this is the about page
@@ -212,8 +212,8 @@
| wpm |
accuracy |
- correct chars |
- incorrect chars |
+ correct chars |
+ incorrect chars |
mode |
date |
diff --git a/public/css/style.css b/public/css/style.css
index 9107ce908..0193778dd 100644
--- a/public/css/style.css
+++ b/public/css/style.css
@@ -182,7 +182,7 @@ a:hover {
#liveWpm {
font-size: 10rem;
color: black;
- opacity: 0.25;
+ opacity: 0;
width: 100%;
text-align: center;
z-index: -1;
@@ -540,7 +540,7 @@ key {
#result .stats {
display: -ms-grid;
display: grid;
- gap: 1rem;
+ gap: .5rem;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
@@ -593,6 +593,7 @@ key {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
+ margin-top: -.5rem;
}
#result .stats .wpm .top .crown {
diff --git a/public/css/style.css.map b/public/css/style.css.map
index d6ad1c147..e7517dd42 100644
--- a/public/css/style.css.map
+++ b/public/css/style.css.map
@@ -1,6 +1,6 @@
{
"version": 3,
- "mappings": "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",
+ "mappings": "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",
"sources": [
"style.scss"
],
diff --git a/public/css/style.scss b/public/css/style.scss
index dc037979c..ae4c95e98 100644
--- a/public/css/style.scss
+++ b/public/css/style.scss
@@ -160,7 +160,7 @@ a:hover {
// color: var(--sub-color);
font-size: 10rem;
color: black;
- opacity: 0.25;
+ opacity: 0;
width: 100%;
text-align: center;
// text-align: right;
@@ -457,7 +457,7 @@ key {
}
.stats{
display: grid;
- gap: 1rem;
+ gap: .5rem;
justify-content: center;
align-items: center;
grid-template-areas:
@@ -494,6 +494,7 @@ key {
font-size: 3rem;
line-height: 3rem;
display: flex;
+ margin-top: -.5rem;
.crown{
font-size: .7rem;
line-height: 1.7rem;
diff --git a/public/js/account.js b/public/js/account.js
index 64b06cde7..53cbd6db3 100644
--- a/public/js/account.js
+++ b/public/js/account.js
@@ -265,13 +265,17 @@ function refreshAccountPage() {
let testCount = data.length;
data.forEach(result => {
+ let withpunc = '';
+ if (result.punctuation) {
+ withpunc = ', with punctuation';
+ }
$(".pageAccount .history table tbody").prepend(`
| ${result.wpm} |
${result.acc}% |
${result.correctChars} |
${result.incorrectChars} |
- ${result.mode} ${result.mode2} |
+ ${result.mode} ${result.mode2}${withpunc} |
${moment(result.timestamp).format('DD MMM YYYY HH:mm')} |
`)
if (result.mode == "words" && result.mode2 == 10) {
@@ -306,8 +310,9 @@ function refreshAccountPage() {
}
if (result.wpm > topWpm) {
+ let puncsctring = result.punctuation ? ",
with punctuatin" : "";
topWpm = result.wpm;
- topMode = result.mode + " " + result.mode2;
+ topMode = result.mode + " " + result.mode2 + puncsctring;
}
})
@@ -323,10 +328,11 @@ function refreshAccountPage() {
resultHistoryChart.data.datasets[9].data = testModes.custom;
+
resultHistoryChart.update({ duration: 0 });
$(".pageAccount .highestWpm .val").text(topWpm);
- $(".pageAccount .highestWpm .mode").text(topMode);
+ $(".pageAccount .highestWpm .mode").html(topMode);
$(".pageAccount .testsTaken .val").text(testCount);
diff --git a/public/js/commandline.js b/public/js/commandline.js
index bacf8bba6..eadbb2a74 100644
--- a/public/js/commandline.js
+++ b/public/js/commandline.js
@@ -23,6 +23,21 @@ let commands = {
toggleQuickTabMode();
}
},
+ {
+ id: "toggleShowLiveWpm",
+ display: "Toggle live wpm display",
+ exec: () => {
+ config.showLiveWpm = !config.showLiveWpm;
+ saveConfigToCookie();
+ }
+ },
+ {
+ id: "toggleKeyTips",
+ display: "Toggle keybind tips",
+ exec: () => {
+ toggleKeyTips();
+ }
+ },
{
id: "changeMode",
display: "Change mode...",
diff --git a/public/js/script.js b/public/js/script.js
index 00da8dfb2..5aa0cfe71 100644
--- a/public/js/script.js
+++ b/public/js/script.js
@@ -6,13 +6,19 @@ let time = 0;
let timer = null;
let testActive = false;
let testStart, testEnd;
-let missedChars = 0;
let wpmHistory = [];
let currentCommands = commands;
+let accuracyStats = {
+ correct: 0,
+ incorrect: 0
+}
+
let config = {
+ showKeyTips: true,
+ showLiveWpm: true,
smoothCaret: true,
- quickTab: true,
+ quickTab: false,
punctuation: true,
words: 100,
time: 30,
@@ -55,116 +61,82 @@ function initWords() {
testActive = false;
wordsList = [];
currentWordIndex = 0;
- missedChars = 0;
+ accuracyStats = {
+ correct: 0,
+ incorrect: 0
+ }
inputHistory = [];
currentInput = "";
- if (config.mode == "time") {
+
+ if (config.mode == "time" || config.mode == "words") {
+
+ let wordsBound = config.mode == "time" ? 50 : config.words;
let randomWord = words[Math.floor(Math.random() * words.length)];
- if (config.punctuation) {
- wordsList.push(capitalizeFirstLetter(randomWord));
- } else {
- wordsList.push(randomWord);
- }
- for (let i = 1; i < 50; i++) {
+ wordsList.push(randomWord);
+ for (let i = 1; i < wordsBound; i++) {
randomWord = words[Math.floor(Math.random() * words.length)];
previousWord = wordsList[i - 1];
- while (
- randomWord ==
- previousWord
- .replace(".", "")
- .replace(",", "")
- .replace("'", "")
- .replace(":", "")
- ) {
+ while (randomWord == previousWord) {
randomWord = words[Math.floor(Math.random() * words.length)];
}
- if (config.punctuation) {
- if (previousWord.charAt(previousWord.length - 1) == ".") {
- randomWord = capitalizeFirstLetter(randomWord);
- } else if (
- (Math.random() < 0.1 &&
- previousWord.charAt(previousWord.length - 1) != ".") ||
- i == config.words - 1
- ) {
- randomWord += ".";
- } else if (Math.random() < 0.01) {
- randomWord = "'" + randomWord + "'";
- } else if (Math.random() < 0.01) {
- randomWord = randomWord + ":";
- } else if (
- Math.random() < 0.01 &&
- previousWord.charAt(previousWord.length - 1) != "," &&
- previousWord.charAt(previousWord.length - 1) != "." &&
- previousWord != "-"
- ) {
- randomWord = "-";
- } else if (
- Math.random() < 0.2 &&
- previousWord.charAt(previousWord.length - 1) != ","
- ) {
- randomWord += ",";
- }
- }
- wordsList.push(randomWord);
- }
- } else if (config.mode == "words") {
- let randomWord = words[Math.floor(Math.random() * words.length)];
- if (config.punctuation) {
- wordsList.push(capitalizeFirstLetter(randomWord));
- } else {
- wordsList.push(randomWord);
- }
- for (let i = 1; i < config.words; i++) {
- randomWord = words[Math.floor(Math.random() * words.length)];
- previousWord = wordsList[i - 1];
- while (
- randomWord ==
- previousWord
- .replace(".", "")
- .replace(",", "")
- .replace("'", "")
- .replace(":", "")
- ) {
- randomWord = words[Math.floor(Math.random() * words.length)];
- }
- if (config.punctuation) {
- if (previousWord.charAt(previousWord.length - 1) == ".") {
- randomWord = capitalizeFirstLetter(randomWord);
- } else if (
- (Math.random() < 0.1 &&
- previousWord.charAt(previousWord.length - 1) != ".") ||
- i == config.words - 1
- ) {
- randomWord += ".";
- } else if (Math.random() < 0.01) {
- randomWord = "'" + randomWord + "'";
- } else if (Math.random() < 0.01) {
- randomWord = randomWord + ":";
- } else if (
- Math.random() < 0.01 &&
- previousWord.charAt(previousWord.length - 1) != "," &&
- previousWord.charAt(previousWord.length - 1) != "." &&
- previousWord != "-"
- ) {
- randomWord = "-";
- } else if (
- Math.random() < 0.2 &&
- previousWord.charAt(previousWord.length - 1) != ","
- ) {
- randomWord += ",";
- }
- }
wordsList.push(randomWord);
}
+
} else if (config.mode == "custom") {
let w = customText.split(" ");
for (let i = 0; i < w.length; i++) {
wordsList.push(w[i]);
}
}
+ if (config.punctuation) {
+ wordsList = buildSentences(wordsList);
+ }
showWords();
}
+function getLastChar(word) {
+ return word.charAt(word.length - 1);
+}
+
+function buildSentences() {
+ let returnList = [];
+ $.each(wordsList, (index, word) => {
+ let previousWord = returnList[index - 1];
+ if (index == 0 || getLastChar(previousWord) == ".") {
+ //always capitalise the first word or if there was a dot
+ word = capitalizeFirstLetter(word);
+ } else if (
+ //10% chance to add a dot or if its a last word
+ (Math.random() < 0.1 && getLastChar(previousWord) != "." && index != wordsList.length - 2) || index == wordsList.length - 1 ) {
+ word += ".";
+ } else if (Math.random() < 0.01 &&
+ getLastChar(previousWord) != "," &&
+ getLastChar(previousWord) != ".") {
+ //1% chance to add quotes
+ word = `"${word}"`;
+ } else if (Math.random() < 0.01) {
+ //1% chance to add a colon
+ word = word + ":";
+ } else if (
+ Math.random() < 0.01 &&
+ getLastChar(previousWord) != "," &&
+ getLastChar(previousWord) != "." &&
+ previousWord != "-"
+ ) {
+ //1% chance to add a dash
+ word = "-";
+ } else if (
+ Math.random() < 0.2 &&
+ getLastChar(previousWord) != ","
+ ) {
+ //2% chance to add a comma
+ word += ",";
+ }
+ returnList.push(word);
+ })
+ return returnList;
+}
+
function addWord() {
let randomWord = words[Math.floor(Math.random() * words.length)];
wordsList.push(randomWord);
@@ -331,6 +303,7 @@ function loadConfigFromCookie() {
config = newConfig;
setQuickTabMode(config.quickTab);
setPunctuation(config.punctuation);
+ setKeyTips(config.showKeyTips);
changeTimeConfig(config.time);
changeWordCount(config.words);
changeMode(config.mode);
@@ -342,73 +315,83 @@ function calculateStats() {
if (config.mode == "words") {
if (inputHistory.length != wordsList.length) return;
}
- let correctWords = 0;
- let incorrectWords = 0;
- let correctChars = 0;
- let incorrectChars = 0;
- let totalChars = 0;
- let avgWordLen = 0;
- for (let i = 0; i < inputHistory.length; i++) {
- totalChars += wordsList[i].length + 1;
- correctChars++;
- for (let c = 0; c < wordsList[i].length; c++) {
- try {
- if (inputHistory[i][c] == wordsList[i][c]) {
- correctChars++;
- } else {
- incorrectChars++;
- }
- } catch (err) {
- incorrectChars++;
- }
- }
- if (inputHistory[i].length < wordsList[i].length) {
- missedChars += wordsList[i].length - inputHistory[i].length;
- }
- }
- totalChars--;
- correctChars--;
- avgWordLen = totalChars / inputHistory.length;
- // console.log(avgWordLen);
- avgWordLen = 5;
- wpm = calculateWpm();
- // let acc = (correctChars / totalChars) * 100;
- let acc = Math.round(((totalChars - missedChars) / totalChars) * 100);
- return { wpm: wpm, acc: acc, correctChars: correctChars, incorrectChars: (totalChars - correctChars) };
-}
+ let chars = countChars();
+ let totalChars = chars.allCorrectChars + chars.incorrectChars + chars.extraChars + chars.missedChars;
-function calculateWpm() {
let testNow = Date.now();
let testSeconds = (testNow - testStart) / 1000;
- let correctChars = 0;
- for (let i = 0; i < inputHistory.length; i++) {
- for (let c = 0; c < wordsList[i].length; c++) {
- try {
- if (inputHistory[i][c] == wordsList[i][c]) {
- correctChars++;
- }
- } catch (err) { }
- }
- correctChars++;
- }
- wpm = (correctChars * (60 / testSeconds)) / 5;
- return Math.round(wpm);
+ let wpm = Math.round((chars.correctWordChars * (60 / testSeconds)) / 5);
+ let acc = Math.round((accuracyStats.correct / (accuracyStats.correct + accuracyStats.incorrect)) * 100);
+ return { wpm: wpm, acc: acc, correctChars: chars.allCorrectChars, incorrectChars: chars.incorrectChars+chars.extraChars+chars.missedChars };
}
+function countChars() {
+ let correctWordChars = 0;
+ let correctChars = 0;
+ let incorrectChars = 0;
+ let extraChars = 0;
+ let missedChars = 0;
+ for (let i = 0; i < inputHistory.length; i++) {
+ if (inputHistory[i] == wordsList[i]) {
+ //the word is correct
+ //+1 for space
+ correctWordChars += wordsList[i].length + 1;
+ correctChars += wordsList[i].length;
+ } else if (inputHistory[i].length >= wordsList[i].length) {
+ //too many chars
+ for (let c = 0; c < inputHistory[i].length; c++){
+ if (c < wordsList[i].length) {
+ //on char that still has a word list pair
+ if (inputHistory[i][c] == wordsList[i][c]) {
+ correctChars++;
+ } else {
+ incorrectChars++;
+ }
+ } else {
+ //on char that is extra
+ extraChars++;
+ }
+ }
+ } else {
+ //not enough chars
+ for (let c = 0; c < wordsList[i].length; c++){
+ if (c < inputHistory[i].length) {
+ //on char that still has a word list pair
+ if (inputHistory[i][c] == wordsList[i][c]) {
+ correctChars++;
+ } else {
+ incorrectChars++;
+ }
+ } else {
+ //on char that is extra
+ missedChars++;
+ }
+ }
+ }
+ }
+ return {
+ correctWordChars: correctWordChars,
+ allCorrectChars: correctChars,
+ incorrectChars: incorrectChars,
+ extraChars: extraChars,
+ missedChars: missedChars
+ }
+}
+
+
function liveWPM() {
- wpm = calculateWpm();
- // if (wpm > 0) {
- // if ($("#liveWpm").css("opacity") == 0) {
- // $("#liveWpm").css("opacity", 0.25);
- // }
- // if (wpm < 100) {
- // $("#liveWpm").html(" " + Math.round(wpm).toString());
- // $("#liveWpm").css("margin-left", "-3rem");
- // } else {
- // $("#liveWpm").text(Math.round(wpm));
- // $("#liveWpm").css("margin-left", 0);
- // }
- // }
+ let correctWordChars = 0;
+ for (let i = 0; i < inputHistory.length; i++) {
+ if (inputHistory[i] == wordsList[i]) {
+ //the word is correct
+ //+1 for space
+ correctWordChars += wordsList[i].length + 1;
+ }
+ }
+ let testNow = Date.now();
+ let testSeconds = (testNow - testStart) / 1000;
+ wpm = (correctWordChars * (60 / testSeconds)) / 5;
+ return Math.round(wpm);
}
function showResult() {
@@ -435,7 +418,7 @@ function showResult() {
.animate({ opacity: 1 }, 0, () => {
setFocus(false);
});
- $("#top #liveWpm").css("opacity", 0);
+ // $("#top #liveWpm").css("opacity", 0);
hideCaret();
//show all words after the test is finished
// delWords = false;
@@ -563,6 +546,7 @@ function showResult2() {
testActive = false;
setFocus(false);
hideCaret();
+ hideLiveWpm();
let labels = [];
for (let i = 1; i <= wpmHistory.length; i++) {
@@ -596,6 +580,8 @@ function restartTest() {
let fadetime = 125;
setFocus(false);
hideCaret();
+ testActive = false;
+ hideLiveWpm();
if ($("#words").hasClass("hidden")) fadetime = 125;
$("#words").animate({ opacity: 0 }, 125);
@@ -635,7 +621,6 @@ function restartTest() {
- testActive = false;
wpmHistory = [];
hideTimer();
setTimeout(function() {
@@ -717,12 +702,12 @@ function compareInput() {
ret += "" + currentWord[i] + "";
}
}
+ $(".word.active").html(ret);
if (currentWord == currentInput && currentWordIndex == wordsList.length - 1) {
inputHistory.push(currentInput);
currentInput = "";
showResult2();
}
- $(".word.active").html(ret);
// liveWPM()
}
@@ -788,6 +773,26 @@ function focusWords() {
$("#wordsInput").focus();
}
+function setKeyTips(keyTips) {
+ config.showKeyTips = keyTips;
+ if (config.showKeyTips) {
+ $("#bottom .keyTips").removeClass("hidden");
+ } else {
+ $("#bottom .keyTips").addClass("hidden");
+ }
+ saveConfigToCookie();
+}
+
+function toggleKeyTips() {
+ config.showKeyTips = !config.showKeyTips;
+ if (config.showKeyTips) {
+ $("#bottom .keyTips").removeClass("hidden");
+ } else {
+ $("#bottom .keyTips").addClass("hidden");
+ }
+ saveConfigToCookie();
+}
+
function toggleSmoothCaret() {
config.smoothCaret = !config.smoothCaret;
saveConfigToCookie();
@@ -942,12 +947,29 @@ $("#wordsInput").on("focusout", (event) => {
hideCaret();
});
+function updateLiveWpm(wpm) {
+ if (!config.showLiveWpm) return;
+ if (wpm == 0 || !testActive) hideLiveWpm();
+ let wpmstring = wpm < 100 ? ` ${wpm}` : `${wpm}`;
+ $("#liveWpm").html(wpmstring);
+}
+
+function showLiveWpm() {
+ if (!config.showLiveWpm) return;
+ if (!testActive) return;
+ $("#liveWpm").css('opacity',0.25);
+}
+
+function hideLiveWpm() {
+ $("#liveWpm").css('opacity',0);
+}
$(document).keypress(function(event) {
if (!$("#wordsInput").is(":focus")) return;
if (event["keyCode"] == 13) return;
if (event["keyCode"] == 32) return;
+ //start the test
if (currentInput == "" && inputHistory.length == 0) {
testActive = true;
stopCaretAnimation();
@@ -959,7 +981,9 @@ $(document).keypress(function(event) {
timer = setInterval(function() {
time++;
updateTimer();
- let wpm = calculateWpm();
+ let wpm = liveWPM();
+ updateLiveWpm(wpm);
+ showLiveWpm();
wpmHistory.push(wpm);
if (config.mode == "time") {
if (time == config.time) {
@@ -971,13 +995,10 @@ $(document).keypress(function(event) {
} else {
if (!testActive) return;
}
- if (
- wordsList[currentWordIndex].substring(
- currentInput.length,
- currentInput.length + 1
- ) != event["key"]
- ) {
- missedChars++;
+ if (wordsList[currentWordIndex].substring(currentInput.length,currentInput.length + 1) != event["key"]) {
+ accuracyStats.incorrect++;
+ } else {
+ accuracyStats.correct++;
}
currentInput += event["key"];
setFocus(true);