* Implement streaks
* Improve code
* Update package.json
* Store streak on the user
* Pretty-fix
* Ensure that streak is up to date
* Fix issue in streak calculation
* Revert prettier changes
* Update polish.json
* Update db.ts
* Remove initial calculation
* Write mandatory test
* using strict equality
* moved functions to the utils file
* importing utils
* adding streak to breakdown,
rounding and parsing streak modifier
* renamed variable
* renamed fields
* using correct field name
* added streaks to configuration
* showing streak during xp breakdown
* incrementing streak earlier
checking configuration before applying modifier
* returning streak to the client
* setting local streak with the number returned from the backedn
* only reading streak when updating profile instead of updating
* sending streak information in profile
* only showing streak if greater than 0
* setting to empty if no streak
* renamed config property
* updated streak calculation
* refactored isYesterday
* refactored streak update
* only displaying if streak larger than 1
* merged configuration properties into 1
* added configuration for max streak bonus
* added isToday check back (derp)
* reverted streaks back to multiplier approach
* using better maprange functin
* removed import
* moved test to dal spec
* clamping
* removed imports
* fixed test
* increased coverage
* removed angry console log
* typo
* using date now instead of dates
* mocking date now
awaiting expect
* not using date
Co-authored-by: Anonymous <110769200+fasttyperdog@users.noreply.github.com>
Co-authored-by: Rizwan Mustafa <rizwanmustafa0000@gmail.com>
Co-authored-by: Miodec <bartnikjack@gmail.com>
* Add new rate limiting flow
* Oops
* Fix nit
* Fix some bugs
* Split key generation functions
* Remove 429
* Change message for root limiter
* Flag 429 and add config
* Add status code config
* Check enabled flag
* Add custom status for ape keys
* Bump coverage
* swapped conditions around
whats the point of checking if the status code is in the array if the whole thing is turned off anyway
Co-authored-by: Miodec <bartnikjack@gmail.com>
* 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>
* 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
* Switch to ts-node-dev for development
* Minimal setup for backend testing
* Basic controller test
* __tests__ directory
* Delete old DB client
* Improve tests, ensure DB cleanup only runs for inMemory DB