Commit graph

654 commits

Author SHA1 Message Date
Miodec 275b7cf3fa also added swapescandtab 2022-06-21 15:29:44 +02:00
Bruce Berrios db9dcafc25
Add User Profiles (#3174)
* profile

* rounded table corners

* rounded leaderboards corners

* wider page by default

* v3

* font changes

* new pbtables

* blank by default

* showing pb popup

* removed some quotes

* rounding displayed acc

* removed created date (will be shown in profile)

* added profile module that fills the profile element

* updating font size in the middle of the swap to make the change not noticeable

* lowered max font size

* showing if user is banned,
not displaying most details if user is banned

* pbs not selectable

* renamed global stats to time typing

* completed previous commit

* changed function parameters

* only hiding when social is missing

* smaller badge

* aligning quick results
spanning time if wide

* larger badge

* fixed function parameters

* moved to root

* media queries

* Add user profile API (#3123) bruception

* Add flattenObjectDeep

* Add user profile API

* Bump coverage

* Add user profile configuration and rate limits

* Rename profile -> profileDetails

* Simplify

* Filter personal bests

* Handle banned users

* Add banned user test

* new profile layout system
"none" layout finished

* better "none" layout

* "socials" layout

* larger gap

* bioandkey layout done

* "both" layout finished

* final touches

* Add profile editing (#3135)

* Add profile editing

* lowered font size
increased right padding

* updated configuration schema

* moved discord integration to users object in configuration

* added warning comment

* rendering new lines

* edit popup styling

* Sanitize ZAlgo text

* Use trim

* Replace more than 2 spaces with two spaces

* Trim first

* Add profanity detection

* Ass

* Removed some profanities

* Update profanity detection

Co-authored-by: Miodec <bartnikjack@gmail.com>

* Add profile routing (#3143) bruception miodec

* Add profile routing

* removed check (also fixes circular deps)

* change page in special cases

* Hydrate profiles

* Link leaderboards to profiles

* Add failed to load div

* Dont refresh page

* always calling middle callback

* moved profile css into its own file

* fixed one media query

* added preloader, changed default layout

* added reset function
changed function name
updating profile before the page is shown, not after

* resetting after the page is hidden and before its updated

* Fix logic to not delete user if DB goes down (#3171)

* Dont route to account if uid equals current user uid

* temporairly allowing quicktab

* added copy link button

* only increasing padding on the account page

* set max height

* handling copy link button

* only showing avatar if it exists

* 1000 instead of 100

* removing placeholder if image request was successful

Co-authored-by: Miodec <bartnikjack@gmail.com>

* Fix quote length field

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-06-21 12:01:55 +02:00
Miodec bca69b6f09 Merge branch 'master' of https://github.com/Miodec/monkeytype 2022-06-20 16:32:05 +02:00
Miodec 3e5982f1de temporairly allowing quicktab 2022-06-20 16:31:59 +02:00
Bruce Berrios 6a3f01f6a9
Fix logic to not delete user if DB goes down (#3171) 2022-06-20 16:10:43 +02:00
Jack ae300bfa94
Disabled time typing requirement on dev (#3169)
* checking if mode is dev when adding to daily lb

* disabled time typing check on dev when recalculating leaderboards

* not replacing footer on localhost

* using ternary

* modified logic
2022-06-20 15:06:35 +02:00
kenny bb31d75c4b
removed swapEscAndTab, replaced quickTab with quickRestart (#3139) devkennyy
* Add leaderboard language selection (#3124) bruception

* Adds leaderboard language selection

* Update mesage

* fixed disabled select2 styling

* changed button positioning

* fixed media queries

* Add languages

Co-authored-by: Miodec <bartnikjack@gmail.com>

* remove references of swapEscToTab

* Custom Filters [FrontEnd] (#3106) nocommentcode

* Add Create and Delete functions for Filter Presets to `Users` ape endpoint
- deleteFilterPreset
- addFilterPreset

* Added name and _id fields to the `ResultFilter` interface in the front end

This matches the `ResultFilter` interface in the backend
Added the new fields for the default filter
Added checks in result-filter.ts to not update the ui based on these fields

* Added new-filter-preset-popup

This popup is displayed when creating a new filter preset
It allows the user to select a name.

* Added Filter Preset Buttons in account page html

- Added the Filter Preset button
- Added the filter preset region
- Added the new and delete buttons

* Added Filter Presets to DB Snapshot

* Implemented Custom Fileter Creation, Selection and Deletion flow

- Users can now create a custom filter based on the current settings
- Users will be prompted to select a name for the filter
- User can click on any custom filter and the current filter will be updated
- User can delete a custom filter while it is selected

* Implemented Filter Preset Creation, Selection and Deletion flow

- Users can now create a filter preset based on the current settings
- Users will be prompted to select a name for the filter
- User can click on any filter preset and the current filter will be updated
- User can delete a filter preset while it is selected

* adjusted styling

* removed margin

* removed icon

* added media query

* popup wording

* automatically replacing _ when displaying and creating preset

* using loader and notifications

* fixed bork

* fixed sometimes not being able to delete preset

* make preset popup look like tags popup

Co-authored-by: Miodec <bartnikjack@gmail.com>

* added pace caret: last closes #3113

* Add rate limits to forgot password (#3129) mehdidev

* Added New Quotes

* Add More Quotes

* Add rate limit to forgot password

* Use Prettier

* Change canCall to let so that lint doesn't flag me for the 69th time

* change forgotPassword() to async & remove console.log's

* If this doesn't fix everything idk what to do

* reduced nesting, using function to create error message

* updated notification

Co-authored-by: Miodec <bartnikjack@gmail.com>

* added: code_opencl language (#3132) codybloemhard

* added: code_opencl language;

* fixed: duplicate word in code_opencl;

* fixed: another duplicate in code_opencl;

* Include language in notification (#3134)

* Add 20 more Indonesian quotes, 151-170 (#3136) R0merol

* Added 20 more quotes (151-170)

* Fixed quote length (id: 155, 157)

* using completed events language instead of current config

* add hedge theme (#3137) devkennyy

* create hedge theme

* update _list.json

* fixed sub alt color issues

* update colors

* updated colors

Co-authored-by: Miodec <bartnikjack@gmail.com>

* replaced quickTab with quickRestart

* updated keytips and statements

* update keytips

* moved keytip update to ui module

* not opening command line if quick restart is esc

* calling update keytips when changing quick restart

* handling restarting with quick restart escape

* updated settings page to reflect new quick restart setting

* swapping legacy values

* removed line which caused circular dependencies

* reordered files to fix event not firing

* handling closing with escape before opening

* not doing anything if a modal is visible

Co-authored-by: Bruce Berrios <58147810+Bruception@users.noreply.github.com>
Co-authored-by: Miodec <bartnikjack@gmail.com>
Co-authored-by: Malo Hamon <hamon.malo@gmail.com>
Co-authored-by: Mehdi Hussain <mehdi@mehdi.us>
Co-authored-by: Cody Bloemhard <cblmhrd@live.nl>
Co-authored-by: R0merol <farisfrontiers@gmail.com>
2022-06-16 23:57:34 +02:00
Bruce Berrios 7b89328f47
Refactor add user (#3133) bruception 2022-06-16 19:42:13 +02:00
Miodec 03d90949df storing list of auto assignable roles on the server 2022-06-16 18:29:15 +02:00
Miodec 3da4eb45c0 added pace caret: last closes #3113 2022-06-15 19:35:01 +02:00
Bruce Berrios 141dc262e7
Rename customFilters -> resultFilterPresets (#3115)
* Rename customFilters -> resultFilterPresets

* Update messages
2022-06-12 19:34:52 -04:00
Malo Hamon b55419dfc0
Custom Filters [Backend] (#3105) (#3110)
* Added `ResultFilters` to types
Added customFilters field to user
This field is an optional array of `ResultFilters`
It will store a user's custom filters

* Added Add and Remove functions for `ResultFilters` in user DAL

Also added unit tests

* Added Custom Filter configuration

Can now enable/disable the custom filters feature
Can also set a cap on the number of filters per user

* Add and Remove functions for `ResultFilters` in user controller
2022-06-11 22:38:09 -04:00
Malo Hamon ba843419a1
Custom Filters [Backend] (#3105)
* Added `ResultFilters` to types
Added customFilters field to user
This field is an optional array of `ResultFilters`
It will store a user's custom filters

* Added Add and Remove functions for `ResultFilters` in user DAL

Also added unit tests

* Added Custom Filter configuration

Can now enable/disable the custom filters feature
Can also set a cap on the number of filters per user

* Add and Remove functions for `ResultFilters` in user controller
2022-06-11 20:32:06 -04:00
Miodec 957ea335c7 updated message 2022-06-09 21:43:00 +02:00
Bruce Berrios 603455d6eb
Add logic to handle fetching previous daily leaderboards (#3087)
* Add logic to handle fetching previous daily leaderboards

* Add basic select controls for time range

* Fix issue

* updated styling

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-06-09 21:04:10 +02:00
Bruce Berrios 270fa5dfbe
Fix lines stylinh (#3082) 2022-06-07 23:56:20 +02:00
Bruce Berrios 1260f13293
Add config for discord integration (#3081) Bruception 2022-06-07 23:41:37 +02:00
Bruce Berrios b25ac99527
Add leaderboard avatars and badges (#3069) bruception
* Add leaderboard avatars and badges

* Add discord id

* badges -> badgeIds
2022-06-07 23:10:58 +02:00
Bruce Berrios f2998b1d28
Add server configuration panel (#3070) bruception
* Add server configuration panel

* Remove unnecessaary check

* Remove break

* styling changes
showing when configuration was saved

* changing color based on response

* Remove comment

* Changes

* Add support for arrays

* Arbitrary nesting

* Add array item controls

* added button to quickly open the configuration panel

* removed excessive padding

* text inputs same height and style as checkboxes

* monkey stylng

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-06-07 14:06:15 +02:00
Miodec 48679e0cc2 returning discordid and avatar 2022-06-03 19:58:40 +02:00
Bruce Berrios 4dc6f1e791
Update discord avatar (#3068)
* Update avatar

* Remove linking notification

* fixed spacing

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-06-03 19:42:00 +02:00
Bruce Berrios 90b5d6bb8b
Add get avatar endpoint (#3060) bruception
* Add get avatar endpoint

* Change API

* Fix response message

* Fix udpate
2022-06-03 16:53:00 +02:00
Bruce Berrios 0bd0812416
Check redis status when getting client connection (#3065) 2022-06-03 14:01:03 +02:00
Bruce Berrios defa9a3f55
Save discord avatar uri on link (#3059)
* Initial avatars

* Only store hash

* avatarHash -> discordAvatar
2022-06-01 15:36:22 -04:00
Miodec 71bba2581c logging auto ban event 2022-06-01 14:21:23 +02:00
Miodec a17343636a updated rate limit 2022-05-31 20:30:41 +02:00
Miodec dc7295f3f6 storing name history 2022-05-31 20:19:45 +02:00
Miodec 2e248f5ee8 fixed task args 2022-05-29 15:45:19 +02:00
Bruce Berrios 07b3053c5a
Add maintenance check for cron jobs (#3034) 2022-05-27 21:20:37 +02:00
Bruce Berrios efbfffaa75
Fix daily leaderboard score (#3031)
* Fix daily leaderboard score

* Remove comment
2022-05-27 14:25:46 +02:00
Bruce Berrios cd767bff1c
Use better score metric (#3030) 2022-05-27 02:21:23 +02:00
Bruce Berrios 5d45898893
check if user is banned (#3029) 2022-05-26 22:13:42 +02:00
Miodec 1d64387b92 logging daily lb update 2022-05-26 18:44:50 +02:00
Miodec 532db055b4 rate limit 2022-05-26 16:48:26 +02:00
Bruce Berrios 0ef52ed9da
Add daily leaderboards (#3023) bruception
* Setup daily leaderboards backend (#2987) bruception

* Setup daily leaderboards backend

* Add enabled checks

* Consistent naming

* Add initial unit tests

* Use more flexible daily leaderboard rule logic

* Fix seed rule

* Add LRU Cache + Rank Calculation

* Use native functions

* Optional daily leaderboard rank

* Proper status code for invalid lb mode

* Add result criteria check

* Make daily leaderboard cache size configurable

* Add Ape endpoint for daily leaderboard (#2997)

* support for switching to viewing daily lbs

* test

* buttons

* only checking daily if user has more than 2 hours typed

* updated structure

* setting rank if its undefined

* only when daily

* storing uid

* fixed media queries

* Daily leaderboards pagination (#3006)

* Pagination

* Remove with scores

* Add daily leaderboard rank (#3014) Bruception

* Add daily leaderboard rank

* Remove unused import

* Use object instead

* Add client logic

* Add limit checks

* Announce top daily leaderboard results (#3017)

* Add rank in daily leaderboard results (#3022)

* not showing lb memory and top % on daily

* Fix rank pagination

* Actual fix

* showing new rank

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-05-26 16:30:11 +02:00
Evan 66c912e817
use interfaces instead of types (#3002) ferotiq
* use interfaces instead of types

* Update custom-text.ts
2022-05-26 12:19:01 +02:00
Miodec 2e3db31a39 changed error condition 2022-05-24 00:31:51 +02:00
Miodec b029d86460 added note about the package to the api docs. closes #2999 2022-05-23 21:19:54 +02:00
Miodec 42d984981a 2 hours minimum to be placed on the lb 2022-05-21 01:32:09 +02:00
Miodec 12b4b899a5 overriding name later 2022-05-21 01:18:09 +02:00
Miodec 7c711bc4c2 only getting accounts with more than an hour of typing 2022-05-21 01:15:15 +02:00
Miodec 632b7e4bf6 Merge branch 'master' of https://github.com/Miodec/monkeytype 2022-05-21 00:13:13 +02:00
Miodec 4710a70e0c overriding result name to be sure 2022-05-21 00:12:50 +02:00
Bruce Berrios 294ff4c95a
Remove uid from last result (#2998) 2022-05-19 20:44:24 +02:00
Bruce Berrios 1384e9f81d
Add pretty check (#2990) bruception
* Add pretty check

* test

* test

* Add pretty check

* Add condition check

* Enforce style on code changes

* Update scripts

* Any src
2022-05-19 11:31:18 +02:00
Jack 46e0c5c960
Auto ban (#2984)
* added auto ban if user triggers anticheat too much

* updated base configuration

* autoban is optional

* storing updated autoban array

* only checking autoban in time 15 and 60

* miliseconds

* removed unnecessary if check

* returning if already banned

* storing now in variable
greater not greater equal

* moved constant outside function

* using partial type

* renamed variables

* renamed to autoBanTimestamps

* added autoban tests

* increased coverage minimum

* slightly better test

* added autoBanTimestamps checks to other tests
2022-05-16 21:03:44 +02:00
Miodec 699ddd8737 renamed field 2022-05-13 09:41:41 +02:00
Bruce Berrios 6c666f12ba
Add user creation flow test (#2971) bruception 2022-05-13 09:05:57 +02:00
Bruce Berrios 0a371b531a
Add more tests (#2965) Bruception and sondrekje
* Cover updateName

* Test clearPb, export getUsersCollection for testing purposes

* Add base coverage

* Month -> thirty days

Co-authored-by: Sondre Kjempekjenn <sondre.kjempekjenn@gmail.com>
2022-05-11 14:08:06 +02:00
Miodec 41c142b49a blocking users from submitting results if they need to change name 2022-05-08 20:47:45 +02:00