Commit graph

801 commits

Author SHA1 Message Date
Bruce Berrios
83cfd272a2
Fix weekly leaderboard timestamp logic (#3780) 2022-11-29 11:33:58 +01:00
Miodec
dcfc5702b4 changed to monkeytype 2022-11-29 01:04:00 +01:00
Bruce Berrios
a4022f43a8
Refactor ape rate limiter (#3778) Bruception 2022-11-28 17:13:00 +01:00
Bruce Berrios
87b89e0d57
Add weekly xp leaderboards backend (#3511) Bruception
* Add weekly seasons

* Fix test

* Add week timestamp tests

* Add unit tests

* Fix weeks before calculation

* Update user.spec.ts

* Remove minXp maxXp reward config

* Record total time typed + last activity timestamp

* Season -> Weekly XP Leaderboard

* prettier

* Add config hints

* Update leaderboard.ts

* monkeytype

Co-authored-by: Miodec <jack@monkeytype.com>
2022-11-28 14:10:02 +01:00
Miodec
7f78018475 updated regex 2022-11-18 23:54:49 +01:00
Miodec
25883e3bc9 removed regex 2022-11-18 23:54:49 +01:00
Miodec
32bdcbbec0 removed regex 2022-11-16 00:14:55 +01:00
Miodec
6458029d0a removed regex check 2022-11-15 23:58:39 +01:00
Miodec
0192b025df verifying language with regex 2022-11-15 16:51:22 +01:00
Miodec
f76849f921 better request validation 2022-11-15 16:40:19 +01:00
Miodec
17d9733bba upgraded packages
cors
firebase-admin
simple-git
2022-11-15 12:44:24 +01:00
Miodec
f72c3a6702 added a state token to make sure we only link to the user that started the oauth2 flow 2022-11-09 15:44:31 +01:00
Miodec
682216588d better erorr message when username contains profanity 2022-11-08 12:54:23 +01:00
Miodec
0f589b0e5b allowing .-_ in github and twitter names
closes #3729
2022-11-08 12:45:48 +01:00
Miodec
310db63597 only allowing alphanumerics 2022-11-07 17:51:15 +01:00
Miodec
cf411245e6 removed some profanities 2022-11-04 14:27:47 +01:00
Miodec
95b91f1d70 not recording uids for now 2022-10-29 14:31:36 +02:00
Miodec
508c289c92 added a function which applies a custom rate limiter when using ape key
opened results endpoint to ape keys (1 req per hour)
updated docs to mention new open endpoint
2022-10-28 18:42:44 +02:00
Miodec
b00e5d893e logging busiest uids 2022-10-28 14:39:33 +02:00
Miodec
a6a7454d2e deleting ape keys, presets, config on user delete
also removing from leaderboards
closes #3684
2022-10-26 19:02:37 +02:00
Miodec
b1d53f1f99 fixed incorrect schema 2022-10-19 00:34:47 +02:00
Brian Evans
cffa7514ea
Save speed stats in leaderboard update (#3652) mrbrianevans
* Save speed stats in leaderboard update

Saves a histogram data structure of speeds for buckets rounded to the nearest 10.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* API endpoint to get public speed stats

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Add APE class for public stats (WIP)

I created an APE class for accessing public stats. Also stubbed getting and showing the public speed stats on the about page. Haven't implemented the histogram yet though.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Draw histogram for global speed stats

On about page

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Update histogram colors on theme change

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Fixed out-of-order data in speed histogram

 Data was not sorted correctly, which resulted in an incorrect histogram being drawn.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Public speed stats PR fixes

Small fixes based on PR feedback:
 - changed _req to req
 - removed unnecessary client version header

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Add endpoint for typing stats

New endpoint to retrieve the public typing stats such as global count of tests completed.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Renamed public-stats to public

Except in cases where it would cause an identifier named `public` as this is forbidden in strict mode.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Add stats section to about page

In this commit:
 - add a section above about called stats
 - display typing stats in three columns
 - underneath show the histogram of speeds on english time 60
 - make chart responsive

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Add unit test for Public DAL

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* updated styling

* only requesting data once per session

* going one column on narrow screens

* added option to specify number of decimal poitns

* just showing million instead of abbreviating
updated structure
updated styling

Signed-off-by: Brian Evans <ebrian101@gmail.com>
Co-authored-by: Miodec <jack@monkeytype.com>
2022-10-18 15:45:45 +02:00
Miodec
f0dca0cf13 filling default values 2022-10-17 13:32:52 +02:00
Miodec
b13448ae7c turns out foreach stops exceptions from propagating 2022-10-17 13:30:14 +02:00
Miodec
437614b20c strict undefined check instead of a nullish check 2022-10-17 13:18:30 +02:00
Miodec
be8b6f082e throwing instead of defaulting 2022-10-17 13:16:23 +02:00
Miodec
e31b708082 default values, added throw in case of missing data 2022-10-17 13:03:58 +02:00
Miodec
d44e4f7a12 allowing undefined funbox through (same as none) 2022-10-17 13:03:32 +02:00
Miodec
7a678a2cdf updating tag pbs on result tag update
part of #3663
2022-10-17 12:23:34 +02:00
Bruce Berrios
a3b3387f01
Purge from dailies (#3635) Bruception
* Purge from dailies

* Fix

* Migrate logic to lua script

* added test to pass coverage

* typo

* also purging user from daily lbs on personal bests clear

Co-authored-by: Miodec <jack@monkeytype.com>
2022-10-10 18:29:29 +02:00
Miodec
ea9cb797df descriptive error 2022-10-10 17:18:52 +02:00
Miodec
60d4116e6a added uid to profile data 2022-10-10 00:14:32 +02:00
Miodec
f0b80ff967 end range seems to be non inclusive 2022-10-05 12:11:21 +02:00
Miodec
ebeafd9880 added all time lb positions to profiles 2022-09-29 13:08:10 +02:00
Miodec
e96366e9d3 logging streak lost 2022-09-28 20:45:46 +02:00
Miodec
a273372990 fixed a bug where losing a streak would not save max streak length correclty 2022-09-28 20:43:13 +02:00
Miodec
40addbf97f added daily pace caret mode
closes #3564
2022-09-28 13:07:07 +02:00
Miodec
e16634dad4 deleting user if captcha fails 2022-09-28 12:19:53 +02:00
Miodec
8fca782f30 not using cache if requiring fresh token 2022-09-28 00:17:42 +02:00
Miodec
a9f1580aab fixed duplicate imports 2022-09-27 15:49:32 +02:00
Miodec
9182d353fe upped cache to 50mb 2022-09-27 00:52:50 +02:00
Bruce Berrios
0283cba792
Replace profile URI to use username (#3598) Bruception
* Replace Profile URL to use username

* Remove Auth import

* using replace state to fix back button not working

Co-authored-by: Miodec <jack@monkeytype.com>
2022-09-26 10:51:52 +02:00
Bruce Berrios
e6a8747d41
yyyriyriy ppp[i6riy (#3603) Bruception
* Add new synth click sounds

* Use key codes instead

* Fix Sound preview

* Check for caps lock

* Add new quote - imperial march
2022-09-26 10:41:31 +02:00
Miodec
4f146ae5a8 fixed backwards logic 2022-09-25 18:17:10 +02:00
Miodec
e9503a24c2 fixed bad expiration date calc 2022-09-25 18:09:19 +02:00
Miodec
75f89fadd4 reverted size test
added else to avoid double counting
2022-09-25 15:41:01 +02:00
Miodec
92bbd1b081 testing without size calculation 2022-09-25 15:16:48 +02:00
Miodec
a54eb3a3bb added LRU cache to avoid asking firebase to decode the tokens
added prometheus metrics for the token cache
2022-09-25 14:48:24 +02:00
Miodec
61626aa44d moved country middleware to auth to get access to base url and route path 2022-09-23 20:28:03 +02:00
Miodec
c29ac5ff44 reverted to baseurl and route path 2022-09-23 20:27:28 +02:00