From 20aa324d5d1ea04db926802bad1f43eeaadf444f Mon Sep 17 00:00:00 2001 From: Miodec Date: Sun, 16 Apr 2023 14:29:43 +0200 Subject: [PATCH 1/6] added supporter --- frontend/static/about/supporters.json | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/static/about/supporters.json b/frontend/static/about/supporters.json index f3ab15dec..9ee37423a 100644 --- a/frontend/static/about/supporters.json +++ b/frontend/static/about/supporters.json @@ -80,6 +80,7 @@ "John", "Moanatari", "Gregory", + "Yen Cheng", "Hopeless Love", "Kalen", "Ben", From 042ef4b8c660244fade9340d923005adcc7f0718 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 16 Apr 2023 14:38:45 +0200 Subject: [PATCH 2/6] Prettier fix (#4185) Co-authored-by: monkeytypegeorge --- frontend/static/languages/marathi.json | 414 ++++++++++++------------- frontend/static/quotes/afrikaans.json | 2 +- frontend/static/quotes/marathi.json | 116 +++---- 3 files changed, 266 insertions(+), 266 deletions(-) diff --git a/frontend/static/languages/marathi.json b/frontend/static/languages/marathi.json index fd7c04283..332072b3b 100644 --- a/frontend/static/languages/marathi.json +++ b/frontend/static/languages/marathi.json @@ -1,208 +1,208 @@ { - "name": "marathi", - "leftToRight": true, - "noLazyMode": true, - "orderedByFrequency": true, - "words": [ - "म्हणून", - "मी", - "त्याच्या", - "त्या", - "तो", - "होते", - "साठी", - "वर", - "आहेत", - "सह", - "ते", - "असू", - "येथे", - "एक", - "आहे", - "या", - "पासून", - "द्वारे", - "गरम", - "शब्द", - "परंतु", - "काय", - "काही", - "आहे", - "आपण", - "किंवा", - "होते", - "अगोदर", - "निर्देश", - "च्या", - "आणि", - "एक", - "मध्ये", - "आम्ही", - "हे", - "करू", - "शकता", - "बाहेर", - "इतर", - "होते", - "जे", - "करू", - "त्यांच्या", - "वेळ", - "तर", - "खाईन", - "कसे", - "म्हणाला", - "एक", - "प्रत्येक", - "सांगा", - "नाही", - "संच", - "तीन", - "इच्छित", - "हवा", - "तसेच", - "देखील", - "प्ले", - "लहान", - "शेवट", - "ठेवले", - "मुख्य", - "पान", - "वाचा", - "हात", - "पोर्ट", - "मोठ्या", - "शब्दलेखन", - "जोडा", - "अगदी", - "जमीन", - "येथे", - "पाहिजे", - "मोठा", - "उच्च", - "अशा", - "अनुसरण", - "कायदा", - "का", - "विचारू", - "पुरुष", - "बदल", - "गेला", - "प्रकाश", - "प्रकारची", - "बंद", - "गरज", - "घर", - "चित्र", - "प्रयत्न", - "आम्हाला", - "पुन्हा", - "प्राणी", - "बिंदू", - "आई", - "जग", - "जवळ", - "तयार", - "स्वत:", - "पृथ्वी", - "वडील", - "कोणत्याही", - "नवीन", - "काम", - "भाग", - "घ्या", - "मिळवा", - "स्थान", - "केले", - "राहतात", - "जेथे", - "नंतर", - "परत", - "थोडे", - "केवळ", - "गोल", - "मनुष्य", - "वर्ष", - "आले", - "शो", - "प्रत्येक", - "चांगले", - "मला", - "देणे", - "आमच्या", - "अंतर्गत", - "नाव", - "फार", - "द्वारे", - "फक्त", - "फॉर्म", - "वाक्य", - "महान", - "विचार", - "म्हणू", - "मदत", - "शोधा", - "ओळ", - "भिन्न", - "वळण", - "कारण", - "पुष्कळ", - "अर्थ", - "आधी", - "हलवा", - "योग्य", - "मुलगा", - "जुन्या", - "खूप", - "त्याच", - "ती", - "सर्व", - "तेथे", - "तेव्हा", - "अप", - "वापर", - "आपल्या", - "मार्ग", - "बद्दल", - "अनेक", - "नंतर", - "त्यांना", - "लेखन", - "बरी होईल", - "जसे", - "त्यामुळे", - "या", - "तिच्या", - "लांब", - "करा", - "गोष्ट", - "पहा", - "त्याला", - "दोन", - "आहे", - "पाहण्यासारखे", - "अधिक", - "दिवस", - "शक्य झाले", - "जा", - "येणे", - "केले", - "संख्या", - "आवाज पातळी", - "नाही", - "सर्वात", - "लोक", - "माझा", - "प्रती", - "माहित", - "पाणी", - "पेक्षा", - "कॉल", - "प्रथम", - "कोण", - "असू शकेल", - "खाली", - "लवकरच", - "पाहिजे" - ] -} \ No newline at end of file + "name": "marathi", + "leftToRight": true, + "noLazyMode": true, + "orderedByFrequency": true, + "words": [ + "म्हणून", + "मी", + "त्याच्या", + "त्या", + "तो", + "होते", + "साठी", + "वर", + "आहेत", + "सह", + "ते", + "असू", + "येथे", + "एक", + "आहे", + "या", + "पासून", + "द्वारे", + "गरम", + "शब्द", + "परंतु", + "काय", + "काही", + "आहे", + "आपण", + "किंवा", + "होते", + "अगोदर", + "निर्देश", + "च्या", + "आणि", + "एक", + "मध्ये", + "आम्ही", + "हे", + "करू", + "शकता", + "बाहेर", + "इतर", + "होते", + "जे", + "करू", + "त्यांच्या", + "वेळ", + "तर", + "खाईन", + "कसे", + "म्हणाला", + "एक", + "प्रत्येक", + "सांगा", + "नाही", + "संच", + "तीन", + "इच्छित", + "हवा", + "तसेच", + "देखील", + "प्ले", + "लहान", + "शेवट", + "ठेवले", + "मुख्य", + "पान", + "वाचा", + "हात", + "पोर्ट", + "मोठ्या", + "शब्दलेखन", + "जोडा", + "अगदी", + "जमीन", + "येथे", + "पाहिजे", + "मोठा", + "उच्च", + "अशा", + "अनुसरण", + "कायदा", + "का", + "विचारू", + "पुरुष", + "बदल", + "गेला", + "प्रकाश", + "प्रकारची", + "बंद", + "गरज", + "घर", + "चित्र", + "प्रयत्न", + "आम्हाला", + "पुन्हा", + "प्राणी", + "बिंदू", + "आई", + "जग", + "जवळ", + "तयार", + "स्वत:", + "पृथ्वी", + "वडील", + "कोणत्याही", + "नवीन", + "काम", + "भाग", + "घ्या", + "मिळवा", + "स्थान", + "केले", + "राहतात", + "जेथे", + "नंतर", + "परत", + "थोडे", + "केवळ", + "गोल", + "मनुष्य", + "वर्ष", + "आले", + "शो", + "प्रत्येक", + "चांगले", + "मला", + "देणे", + "आमच्या", + "अंतर्गत", + "नाव", + "फार", + "द्वारे", + "फक्त", + "फॉर्म", + "वाक्य", + "महान", + "विचार", + "म्हणू", + "मदत", + "शोधा", + "ओळ", + "भिन्न", + "वळण", + "कारण", + "पुष्कळ", + "अर्थ", + "आधी", + "हलवा", + "योग्य", + "मुलगा", + "जुन्या", + "खूप", + "त्याच", + "ती", + "सर्व", + "तेथे", + "तेव्हा", + "अप", + "वापर", + "आपल्या", + "मार्ग", + "बद्दल", + "अनेक", + "नंतर", + "त्यांना", + "लेखन", + "बरी होईल", + "जसे", + "त्यामुळे", + "या", + "तिच्या", + "लांब", + "करा", + "गोष्ट", + "पहा", + "त्याला", + "दोन", + "आहे", + "पाहण्यासारखे", + "अधिक", + "दिवस", + "शक्य झाले", + "जा", + "येणे", + "केले", + "संख्या", + "आवाज पातळी", + "नाही", + "सर्वात", + "लोक", + "माझा", + "प्रती", + "माहित", + "पाणी", + "पेक्षा", + "कॉल", + "प्रथम", + "कोण", + "असू शकेल", + "खाली", + "लवकरच", + "पाहिजे" + ] +} diff --git a/frontend/static/quotes/afrikaans.json b/frontend/static/quotes/afrikaans.json index d4daafc5f..debb739f9 100644 --- a/frontend/static/quotes/afrikaans.json +++ b/frontend/static/quotes/afrikaans.json @@ -50,4 +50,4 @@ "id": 7 } ] -} \ No newline at end of file +} diff --git a/frontend/static/quotes/marathi.json b/frontend/static/quotes/marathi.json index 100d9d795..980e50337 100644 --- a/frontend/static/quotes/marathi.json +++ b/frontend/static/quotes/marathi.json @@ -1,59 +1,59 @@ { - "language": "marathi", - "groups": [ - [0, 100], - [101, 300], - [301, 600], - [601, 9999] - ], - "quotes": [ - { - "text": "शत्रू कितीही बलाढ्य असला तरी आपल्या हेतू आणि उत्साहानेच त्याचा पराभव होऊ शकतो.", - "source": "छत्रपती शिवाजी महाराज", - "length": 78, - "id": 1 - }, - { - "text": "जेव्हा जिंकणे हेच ध्येय असते, तेव्हा अविरत मेहनत, अगणित किंमत मोजावी लागतेच", - "source": "छत्रपती शिवाजी महाराज", - "length": 75, - "id": 2 - }, - { - "text": "प्रत्येक लहान ध्येयाच्या दिशेने टाकलेले एक छोटे पाऊल मोठे ध्येय साध्य करते.", - "source": "छत्रपती शिवाजी महाराज", - "length": 75, - "id": 3 - }, - { - "text": "भाषा हे जर एक सुमन असेल तर, व्याकरणाशिवाय त्याचा सुगंध दरवळणार नाही", - "source": "पुरुषोत्तम मुळे", - "length": 67, - "id": 4 - }, - { - "text": "आयुष्यात मला भावलेलं एक गुज सांगतो. उपजिविकेसाठीआवश्यक असणाऱ्या विषयाचं शिक्षण जरुर घ्या. पोटापाण्याचा उद्योग जिद्दीनं करा, पण एवढ्यावरच थांबू नका. साहित्य, चित्र, संगीत, नाट्य, शिल्प, खेळ ह्यांतल्या एखाद्या तरी कलेशी मैत्री जमवा. पोटापाण्याचा उद्योग तुम्हाला जगवील, पण कलेशी जमलेली मैत्री तुम्ही का जगायचं हे सांगून जाईल.", - "source": "पु. ल. देशपांडे", - "length": 322, - "id": 5 - }, - { - "text": "कुणीसं म्हटलयं - कसा मी ? कसा मी ? कसा मी ? कसा मी ? जसा मी तसा मी असा मी असामी!... खर सांगू का? हे कुणीसं वगैरे म्हटलेलं नाही. मीच म्हटलयं. पण कुणीसं म्हटलयं अस म्हटल्याशिवाय तुम्हीही कान टवकारून काय म्हटलयं ते ऐक्लं नसत. हे असच आहे. जगात काय म्हटलयं यापेक्षा कुणी म्हटलयं यालाच अधिक महत्व आहे हे मला कळून चुकलंय.", - "source": "पु. ल. देशपांडे", - "length": 314, - "id": 6 - }, - { - "text": "शासनाच्या हाती राक्षसी सत्ता असते. तीच गोष्ट शिकल्या-सुधारल्या मंडळींची. आपल्या वाढत्या सुखसोयी, चोचले पुरविण्यासाठी ते प्रसंगी निसर्गावर, त्यात राहणारा कडेकपारीतील अडाणी जनतेच्या अन्नावर उठतात. आपल्या लुटीला लूट न म्हणता 'विकास', 'प्रगती' अशी गोंडस नावे देतात. गुन्हेगारीला तत्वज्ञानाचा आधार देतात. सारे एक होतात.", - "source": "विश्वास पाटील", - "length": 314, - "id": 7 - }, - { - "text": "सार काही विसरून आत्ता वेड्या सारख जगायच, डोळे असून सुद्धा आंधळ्या सारख पहायच, खोटका होईना पण हासत हासत मरायच…", - "source": "नवनाथ गोडसे", - "length": 109, - "id": 8 - } - ] -} \ No newline at end of file + "language": "marathi", + "groups": [ + [0, 100], + [101, 300], + [301, 600], + [601, 9999] + ], + "quotes": [ + { + "text": "शत्रू कितीही बलाढ्य असला तरी आपल्या हेतू आणि उत्साहानेच त्याचा पराभव होऊ शकतो.", + "source": "छत्रपती शिवाजी महाराज", + "length": 78, + "id": 1 + }, + { + "text": "जेव्हा जिंकणे हेच ध्येय असते, तेव्हा अविरत मेहनत, अगणित किंमत मोजावी लागतेच", + "source": "छत्रपती शिवाजी महाराज", + "length": 75, + "id": 2 + }, + { + "text": "प्रत्येक लहान ध्येयाच्या दिशेने टाकलेले एक छोटे पाऊल मोठे ध्येय साध्य करते.", + "source": "छत्रपती शिवाजी महाराज", + "length": 75, + "id": 3 + }, + { + "text": "भाषा हे जर एक सुमन असेल तर, व्याकरणाशिवाय त्याचा सुगंध दरवळणार नाही", + "source": "पुरुषोत्तम मुळे", + "length": 67, + "id": 4 + }, + { + "text": "आयुष्यात मला भावलेलं एक गुज सांगतो. उपजिविकेसाठीआवश्यक असणाऱ्या विषयाचं शिक्षण जरुर घ्या. पोटापाण्याचा उद्योग जिद्दीनं करा, पण एवढ्यावरच थांबू नका. साहित्य, चित्र, संगीत, नाट्य, शिल्प, खेळ ह्यांतल्या एखाद्या तरी कलेशी मैत्री जमवा. पोटापाण्याचा उद्योग तुम्हाला जगवील, पण कलेशी जमलेली मैत्री तुम्ही का जगायचं हे सांगून जाईल.", + "source": "पु. ल. देशपांडे", + "length": 322, + "id": 5 + }, + { + "text": "कुणीसं म्हटलयं - कसा मी ? कसा मी ? कसा मी ? कसा मी ? जसा मी तसा मी असा मी असामी!... खर सांगू का? हे कुणीसं वगैरे म्हटलेलं नाही. मीच म्हटलयं. पण कुणीसं म्हटलयं अस म्हटल्याशिवाय तुम्हीही कान टवकारून काय म्हटलयं ते ऐक्लं नसत. हे असच आहे. जगात काय म्हटलयं यापेक्षा कुणी म्हटलयं यालाच अधिक महत्व आहे हे मला कळून चुकलंय.", + "source": "पु. ल. देशपांडे", + "length": 314, + "id": 6 + }, + { + "text": "शासनाच्या हाती राक्षसी सत्ता असते. तीच गोष्ट शिकल्या-सुधारल्या मंडळींची. आपल्या वाढत्या सुखसोयी, चोचले पुरविण्यासाठी ते प्रसंगी निसर्गावर, त्यात राहणारा कडेकपारीतील अडाणी जनतेच्या अन्नावर उठतात. आपल्या लुटीला लूट न म्हणता 'विकास', 'प्रगती' अशी गोंडस नावे देतात. गुन्हेगारीला तत्वज्ञानाचा आधार देतात. सारे एक होतात.", + "source": "विश्वास पाटील", + "length": 314, + "id": 7 + }, + { + "text": "सार काही विसरून आत्ता वेड्या सारख जगायच, डोळे असून सुद्धा आंधळ्या सारख पहायच, खोटका होईना पण हासत हासत मरायच…", + "source": "नवनाथ गोडसे", + "length": 109, + "id": 8 + } + ] +} From 5e115eb34fd4de0c6b77f962f816ea0c49de081c Mon Sep 17 00:00:00 2001 From: Miodec Date: Mon, 17 Apr 2023 13:43:45 +0200 Subject: [PATCH 3/6] fixed incorrect duration --- frontend/src/ts/controllers/input-controller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/ts/controllers/input-controller.ts b/frontend/src/ts/controllers/input-controller.ts index c3d05ac0a..c9c527cd9 100644 --- a/frontend/src/ts/controllers/input-controller.ts +++ b/frontend/src/ts/controllers/input-controller.ts @@ -885,7 +885,7 @@ $(document).keydown(async (event) => { 0, { important: true, - duration: 5000, + duration: 5, } ); } From 76331553360eca0f543db7262896dc28b5114bfb Mon Sep 17 00:00:00 2001 From: Miodec Date: Mon, 17 Apr 2023 16:36:11 +0200 Subject: [PATCH 4/6] always updating last keypress --- frontend/src/ts/controllers/input-controller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/ts/controllers/input-controller.ts b/frontend/src/ts/controllers/input-controller.ts index c9c527cd9..f732593a9 100644 --- a/frontend/src/ts/controllers/input-controller.ts +++ b/frontend/src/ts/controllers/input-controller.ts @@ -238,7 +238,6 @@ function handleSpace(): void { Caret.updatePosition(); TestInput.incrementKeypressCount(); TestInput.pushKeypressWord(TestWords.words.currentIndex); - TestInput.updateLastKeypress(); if (Config.difficulty == "expert" || Config.difficulty == "master") { TestLogic.fail("difficulty"); return; @@ -249,6 +248,7 @@ function handleSpace(): void { } Replay.addReplayEvent("submitErrorWord"); } + TestInput.updateLastKeypress(); let wordLength: number; if (Config.mode === "zen") { From 73d2db479915ac3daa1a0ab6134717ff7b4ed8b4 Mon Sep 17 00:00:00 2001 From: Miodec Date: Mon, 17 Apr 2023 16:37:31 +0200 Subject: [PATCH 5/6] moved the code responsible for removing trailing afk from bailed out tests to the test finish function --- frontend/src/ts/test/test-logic.ts | 5 +++++ frontend/src/ts/test/test-stats.ts | 6 +----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/src/ts/test/test-logic.ts b/frontend/src/ts/test/test-logic.ts index b54b24077..5b4040612 100644 --- a/frontend/src/ts/test/test-logic.ts +++ b/frontend/src/ts/test/test-logic.ts @@ -1555,6 +1555,11 @@ export async function finish(difficultyFailed = false): Promise { TestInput.forceKeyup(now); //this ensures that the last keypress(es) are registered + const endAfkSeconds = (now - TestInput.keypressTimings.spacing.last) / 1000; + if ((Config.mode == "zen" || TestInput.bailout) && endAfkSeconds < 7) { + TestStats.setEnd(TestInput.keypressTimings.spacing.last); + } + TestUI.setResultCalculating(true); TestUI.setResultVisible(true); TestState.setActive(false); diff --git a/frontend/src/ts/test/test-stats.ts b/frontend/src/ts/test/test-stats.ts index ae69c7289..a30f7ddaf 100644 --- a/frontend/src/ts/test/test-stats.ts +++ b/frontend/src/ts/test/test-stats.ts @@ -186,16 +186,12 @@ export function setInvalid(): void { export function calculateTestSeconds(now?: number): number { if (now === undefined) { - const endAfkSeconds = (end - TestInput.lastKeypress) / 1000; - if ((Config.mode == "zen" || TestInput.bailout) && endAfkSeconds < 7) { - return (TestInput.lastKeypress - start) / 1000; - } else { return (end - start) / 1000; - } } else { return (now - start) / 1000; } } + let avg = 0; export function calculateWpmAndRaw(): MonkeyTypes.WordsPerMinuteAndRaw { const start = performance.now(); From 7770613ffbdaf0bfc4a960364dbae314c87c7c56 Mon Sep 17 00:00:00 2001 From: Miodec Date: Mon, 17 Apr 2023 16:38:09 +0200 Subject: [PATCH 6/6] using actual test end for calculation instead of performance now --- frontend/src/ts/test/test-stats.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/frontend/src/ts/test/test-stats.ts b/frontend/src/ts/test/test-stats.ts index a30f7ddaf..4b5200c6c 100644 --- a/frontend/src/ts/test/test-stats.ts +++ b/frontend/src/ts/test/test-stats.ts @@ -4,6 +4,7 @@ import * as Misc from "../utils/misc"; import * as TestInput from "./test-input"; import * as TestWords from "./test-words"; import * as FunboxList from "./funbox/funbox-list"; +import * as TestState from "./test-state"; interface CharCount { spaces: number; @@ -186,7 +187,7 @@ export function setInvalid(): void { export function calculateTestSeconds(now?: number): number { if (now === undefined) { - return (end - start) / 1000; + return (end - start) / 1000; } else { return (now - start) / 1000; } @@ -275,13 +276,15 @@ export function calculateWpmAndRaw(): MonkeyTypes.WordsPerMinuteAndRaw { spaces = 0; } chars += currTestInput.length; - const testSeconds = calculateTestSeconds(performance.now()); + const testSeconds = calculateTestSeconds( + TestState.isActive ? performance.now() : end + ); const wpm = Math.round( ((correctWordChars + spaces) * (60 / testSeconds)) / 5 ); const raw = Math.round(((chars + spaces) * (60 / testSeconds)) / 5); - const end = performance.now(); - avg = (end - start + avg) / 2; + const endPerf = performance.now(); + avg = (endPerf - start + avg) / 2; return { wpm: wpm, raw: raw,