* [chunithm] Update to CHUNITHM X-VERSE
* add xverse-omni to every chart
* xverse-intl
* add search terms
* fix(tests): songTitle match type must be case-insensitively unique
* daydreama + energizing flame
* ci: add concurrency control between server and seeds deploy
* chunithm: rank PBs by noteLamp and clearLamp too
This prevents the scenario where a user's rank on a chart goes down because they
improved their skill lamp and thus counts as a "raise".
* add search term for mayonnaise fried chicken
* random ass revival
When searching charts that have both a standard and dx version (eg VIIIBit, Oshama), the results generally have a mix of standard and dx, but if でらっくす is in the search field then the standard chart is much harder to find.
* build(client): add 'lintfix' target matching the server
* docs(lr2hook): suggest lr2_chainload instead of BokutachiLauncher.exe
BokutachiLauncher.exe is no longer a part of BokutachiHook.
* refactor(server/lr2hook): G-ATTACK, P-ATTACK and HAZARD are not HARD
* feat(server/lr2hook): parse extendedJudgements
* feat(server/lr2hook): use fast-slow and early/late judgements
* test(server/lr2hook): make clear that in this test notesPlayed != notesTotal
* feat(server/lr2hook): calculate BP by hand when exiting chart early
* feat(server/lr2hook): parse rseed
* feat(server/lr2hook): parse extendedHpGraphs
* feat(server/lr2hook): parse unixTimestamp
* feat(server/lr2hook): use unixTimestamp as score play time
Especially useful as BokutachiHook now retries sending scores after some
time on connections errors.
* feat(common/bms+server/lr2hook+docs): add gaugeHistory{Easy,Groove,Hard}
Could also save graphs for unimplemented gauges, not done here as I
don't know if they are ever going to be implemented while they take some
decent space.
* feat(client/bms): support several gauges
Ugly IIFE inside IIFE is work-around for eslint bug `Expected a 'break'
statement before 'case'`.
Fixes elements with same index in the page staying open when listing
pages.
1) Open https://boku.tachi.ac/utils/imports
2) Expand first score
3) List to the second page
4) Observe first score of the page being open
* sdvx: add ac MAXXIVE CLEAR lamp
* seperate USC lamps from SDVX for tests
* Add maxxive in converter for api-cg/sdvx
* feat: add migration
* fix: pre-empt service support
* lint(fix)
* fix: my typescript tooling stopped working
* fix: test
---------
Co-authored-by: blobdash <fruityenloops@gmail.com>
Co-authored-by: zkldi <20380519+zkldi@users.noreply.github.com>
* feat(maimaidx): graphs
* fix: use 4dp for percent graph
* fix: use simple boolean check for duration
song duration is either a number or not defined, based on the schema.
we also don't really want to make a graph if the song has 0 duration, that's nonsensical
* add durations for omnimix songs
* [chunithm] split lamp into combo lamp and clear lamp
* ignore nonsense lint
* fix myt converter tests
* fix chunitachi batch manual
* mfw edited wrong file
* fix(migration): only migrate lamp-related showcases
* remove chart lamp showcases
* remove unused imports
* fix: limit re-pb to chunithm scores, migrate chart lamp showcases to comboLamp
* fix migration of comboLamp progress
* fix: updateMany with multi: true
* fix: when updating references, ensure only known IDs are in
* fix(client): make red stand out more
* fix(client): lamp sorting
* feat(server): validate clear and combo lamps based on judgements
* fix(server): validate combo lamps based on score boundary
* fix: reword validation errors to stay consistent
* fix: correct explanation
* fix: how was I this stupid?
* fix: update blacklisted scores too
* fix: bulk write all the updates
* fix: bulkWrite harder
* fix: i probably need sleep
* all of game-settings to bulkWrite
* fix folder lamp goal nonsense
* maybe fix colors
* fix: name PB merges
* chore: properly test PB merge
* mfw reversed
* fix(SessionRaiseBreakdown): lamp name
* rename to noteLamp
* why is eslint even complaining here?
* rename the enums
* fix tests
* tweak colors of lamps
* feat: chunithm score graph
* feat: add life
* feat: add song duration data for all songs
* fix: make chunithm graphs non-nullable
* fix: test data
* fix: potrząsanie kanalizacją
* fix: misleading old function name
* fix: make duration optional for chunithm
* fix: add the missing duration
* [maimai DX] PRiSM final
* add Supersonic Generation
This is a PRiSM PLUS song in Japanese region, but a PRiSM song in International.
As a way to compromise, the display version is PRiSM PLUS, but it also shows up in
the PRiSM folder. This should be removed when PRiSM PLUS hits Tachi for real.
* add PRiSM Omnimix
* disable BUDDiES PLUS tables
* add PRiSM Omnimix to versions in config
* pick correct default table
* fix test data
* fix mock db
* add search terms for recently added songs
* fix(seeds/chunithm): make displayVersion actually display friendly
* fix(seeds/chunithm): correct displayVersion for some songs
These songs were released in LUMINOUS PLUS International, but VERSE in the Japan
region. Since we primarily track Japanese data (levels, etc.) it's probably better
that the display version also lines up.
* fix: correct song metadata
* fix: prefix later versions with CHUNITHM
* feat: switch chunithm song info over to iidx layout
* fix: prefix versions with CHUNITHM
* feat(score-import): Initial support for jubeat imports from CG
* feat(client): enable jubeat imports from cg through dashboard
* feat(api-cg/jb): further implementation of jubeat import from cg
* feat(api-cg/jb): create test
* fix(api-cg/jb): test on testingdb only has one chart
* refactor(api-cg/jb): cleanup converter
* fix(api-cg/jb): fix test mkOutput usage
* fix(api-cg/jb): validation of the int to enum conversion from cg
* feat(client): frontent jubeat import routes for cg
* feat(bot): add jubeat cg import command
* feat(client): rating alg name override
* Added a nameOverride field to RatingAlgorithmConfig
* Added FormatGPTXRatingName
* Renamed maiDX `Rate` to `Rating`
* Renamed Ongeki `Rating` to `Classic Rating`
* fix: there's more
* fix: this doesn't need to be in common
* chore: revert this
* docs: document the new rating description
* [chunithm] Update to CHUNITHM VERSE
* fix: change naiveRating to 50 songs
* fix: unfuck duplicate charts caused by later options modifying earlier options
* feat: new rating classes for verse
* fix(bot): chunithm min scores is 50
* add charts to VERSE Omnimix
* add search aliases for new songs
* disable verse intl for now