Commit Graph
621 Commits
Author SHA1 Message Date
zkldi 7a6e68d882 fix: hasn't been maintained in a while, not being updated, q.v. github 2025-10-07 00:20:15 +01:00
John Pork 5df0f43400 lr2hook: add fast-slow support (#1367)
* 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'`.
2025-10-06 21:52:28 +01:00
John Pork 6bfd05110c fix(client): consider pagination in import analyzer entry fragment key (#1369)
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
2025-10-06 21:51:30 +01:00
beerpsi bc4df58984 fix(client): shorten maimai DX difficulties, display percent as 4dp (#1329)
* fix(client): shorten maimai DX difficulties, display percent as 4dp

* fix: default percentDp should be 2
2025-07-15 19:30:17 +01:00
nairobi 42d442034f fix(client): invalid array length on graph truncation (#1325) 2025-07-14 18:02:43 +01:00
nairobi ec8e7b905d fix(client): platinum rounding and graph truncation (#1324) 2025-07-14 16:22:56 +01:00
beerpsi 03fa2164c5 fix(client): show table pager if dataset is larger than current page size (#1321) 2025-07-13 16:13:19 +01:00
nairobi 76d02e8fb4 feat: always show score alg desc under profile alg desc (#1319)
* feat: always display score alg description

* fix: typo
2025-07-11 13:50:36 +01:00
GRIM657 f0fe1aa0f0 fix: iidx lamp cell: check whether combobreak is nullish (#1316) 2025-07-08 09:12:25 +01:00
nairobiandzk 0a0fc57134 feat: O.N.G.E.K.I. Re:Fresh rating algorithm (#1263)
* feat: Re:Fresh support, rebased for the 6th time

* fix: migration

* fix: seeds

* fix: add tests and make them work

* fix: misc corrections

* rebased

* chore: bump rg-stats

* maybe a better migration

* attempt manual lint

* fix: star formatters

* fix: re-add name overrides

* rename them again, more consistently

* revert rbreak

* finish renaming

* i may be stupid

* refresh insights

* insight fixes

* fix: re-add platinum graphs

* delete score._id

* fix: server test

* fix: tiebreaks

* fix: what

* fix: don't kill p-score if migration is reapplied

I wonder why this could be needed

* fix: maybe notify about any errors

* docs: redefine starRating

* docs: typo

* fix(client): shrink graphs when necessary

* fix(client): use compact starfield in the insight

* feat(client): separate column for hits

* fix(client): add vertical-align

* fix: validate p-score properly

* fix: recolor AB+ to blue, actually

* fix(client): insight readability improvements

* feat(client): nicer insight lamps

* feat(client): OngekiScoreRatingCell

* fix(client): use OngekiScoreRatingCell in insight

---------

Co-authored-by: zk <ktchidev@gmail.com>
2025-07-06 19:24:30 +01:00
zkldi 05b8620c29 Reapply "SDVX: add MAXXIVE CLEAR lamp (#1288)
This reverts commit 2005c42481.
2025-07-06 11:26:38 +01:00
zkldi 2005c42481 Revert "SDVX: add MAXXIVE CLEAR lamp (#1288)
migration fucked

This reverts commit b3485ee2c7.
2025-06-28 20:16:27 +01:00
b3485ee2c7 SDVX: add MAXXIVE CLEAR lamp (#1288)
* 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>
2025-06-28 20:12:51 +01:00
beerpsi 60285648aa feat(maimaidx): graphs and song durations (#1306)
* 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
2025-06-18 20:16:30 +01:00
beerpsi 300a1e7e6e [chunithm] split lamp into combo lamp and clear lamp (#1269)
* [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
2025-05-04 19:49:22 +01:00
nairobi 5a3cc2d2b8 fix: graph errors (#1290)
* fix: graph errors

* fix: reactify
2025-05-01 14:42:23 +01:00
Darin Mao eabe984859 fix(client): change HistoryScoreTable pageLen to 10 (#1287) 2025-04-30 15:55:24 +01:00
nairobi 1148a5fdff feat(client): chunithm graphs, song durations (#1284)
* 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
2025-04-29 20:33:49 +01:00
beerpsi 2b33f9cc4d [MYT] Do not check access code prefixes (#1278)
* [MYT] Do not check access code prefixes

* note that the access code may not be the same as the one on the back
2025-04-19 18:10:28 +01:00
beerpsi 4c49bffcc4 [maimai DX] Update to PRiSM Final (#1270)
* [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
2025-04-08 09:28:11 +01:00
nairobi 1cf7cae65a feat(client): ongeki rating insight (#1273) 2025-04-08 09:27:36 +01:00
beerpsi 6985fa8e8e [chunithm] add search terms, correct some song metadata, switch chart info layout (#1268)
* 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
2025-04-04 15:08:15 +01:00
Daniel THIRION c254b69d40 feat: cg import for jubeat (#1261)
* 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
2025-04-03 16:24:15 +01:00
nairobi 35517a9b2a feat(client): add name overrides for rating algorithms (#1264)
* 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
2025-04-03 16:22:44 +01:00
nairobi d336fb0b42 fix(client): session search (#1265) 2025-04-02 17:35:27 +01:00
nairobi 12b0a34f53 seeds: Ongeki Act.3 final (#1260)
* seeds: ongeki bright memory act.3 final

* seeds: add remas flags

* seeds: add search terms

* seeds: add most chart views

* seeds: add remaining chart views

* seeds: prepend 'ongeki' to display versions

* fix(ongeki): enumize genres and versions

* fix: test data
2025-03-28 13:03:04 +00:00
Xinnoh b7b64be484 Fix missing character in でらっくす (#1258) 2025-03-24 09:24:14 +00:00
nairobi 4b189f7589 fix(client): streamline song-chart info (#1257) 2025-03-20 14:58:38 +00:00
beerpsi 299906a5a5 client: increase import file size limit to 8MB (#1254)
* client: increase import file size limit to 8MB

* fix: if >8e6 is invalid, then valid should be <=8e6
2025-03-18 17:50:13 +00:00
zkldi 9bc13522ed fix: deploy 2025-02-23 11:29:04 +00:00
Xinnoh b8ae3d5238 Replace - with spaces for youtube searches (#1244) 2025-02-21 17:09:53 +00:00
nairobi dfbb50bb7d feat(ongeki): new folder, act.2 bonus track fix, chart search adjustment (#1242)
* fix: ongeki chart search

* feat: lunatic folder, act.2 bonus track fix
2025-02-15 19:47:50 +00:00
nairobi b62b5ca10c seeds: deactivate new and new+ folders (#1226)
also remove a major typo from the ongeki graph tooltip
2024-12-23 14:47:06 +00:00
nairobi 241817bda9 feat(ongeki): client enhancements (#1222)
* fix(ongeki): client-enhancements

* fix: bell graph improvements

* fix: graphic design is my passion

* feat: add a thing in the corner signifying FB
2024-12-17 15:33:25 +00:00
nairobi 4dc26a45fd feat(ongeki): graphs (#1214)
* feat: implement graphs

* fix: remove a dbg field

* fix: implicit anys

I don't know why it doesn't complain about other files.
I don't know why the server check failed. Works on my machine.
2024-12-10 10:54:02 +00:00
Ben Hutchinson acc7575725 Add delta to all folder stat showcases (#1198)
* Add delta for folders

* add comment for condition
2024-10-25 17:14:57 +01:00
beerpsi 613aca0090 fix(client): use the rating formatter specified in tachi-common for history graphs (#1189)
* fix(client): use the rating formatter specified in tachi-common for history graph

* adjust margins so the rating numbers fit

* museca: drop decimal places from profile rating

* adjust margins again to accommodate for wacca/jubeat/gitadora

* chore: lint
2024-10-04 00:35:49 +01:00
guardianblue b88771b598 fix: invert folder thermometer data direction (#1190)
better lamps/grades should start from bottom,
so that the cumulative lamps/grades can be deduced more easily
2024-10-04 00:35:19 +01:00
zkldi 10cb8cdfb4 fix: Pick a valid metric on first time 2024-09-26 13:27:12 +01:00
Gyooandzkldi ba4d924a2f feat: support exScore, fast, slow, maxCombo as optional metrics for DDR (#1163)
* feat: support exScore, fast, slow, maxCombo as optional metrics for DDR

* chore: lint-fix in common

* fix: remove exScore from calculated metrics for DDR

* fix: use clearer logic for number|null

---------

Co-authored-by: zkldi <20380519+zkldi@users.noreply.github.com>
2024-09-23 14:24:35 +01:00
saintnoodle 2a072440c0 refactor(client): unify user profile components (#1156)
* disable query instead of throwing an error

* stop header from fetching user stats when no user

* unify user profiles components

for logged in users viewing their own profiles, it now simply reads the UGS in context

for viewing other users' games, it now uses react query instead of making a fetch every time the component is created

* fix rivals button being shown to logged out users
2024-08-27 09:43:32 +01:00
Gyoo 7cae91b506 feat: Display Flare Rank in DDR scores (#1159)
* feat: Display Flare Rank in DDR scores

* chore: lint fix in client

* fix: change position of Flare in score columns
2024-08-22 20:55:40 +01:00
zkldi 6a13aa1ec5 fix: ranking sort should work 2024-08-21 21:33:02 +00:00
zk 593adb2717 feat: Dev Container (#1149)
* temporary dvctr

* start of work

* fix: timeouts in windows

* fish?

* feat: better, working stuff

* refactor: rename database-seeds to seeds/

* better

* fdsaf

* feat: don't let our container get owned by root

* fix: better user handling

* feat: falling asleep at my desk i yield to you what i have done

* feat: autoadminify

* docs: denote trickshot

* feat: open in browser on launch

* better seeds workings...

* fix: dont kill shell

* docs: mention dev/debs

* fix: whoops

* fix: make seeds load within the century

* feat: rest of the containerisation

* feat: new alias

* style: fix linter errors

* fix: bad call

* fix: better justfile
2024-08-17 15:01:40 +01:00
Gyoo 4254e29917 DDR Implementation (#1132)
* feat: DDR Implementation

* style: lint fixes

* chore: update rg-stats

* feat: ddr konaste songs and charts update
2024-08-09 19:08:49 +01:00
Albert Shin 17a95f1cfa feat: add myt maimai dx import support (#1143)
* feat: add myt maimai dx import support

* chore: fix myt integration showing up, tests

* chore: formatting

* fix: linting

* chore: more formatting

* chore: maybe running lint-fix will fix it
2024-08-09 11:53:19 +01:00
zk 87ede2d85b feat: Session Playtime (#1139)
* style: consistent capitalization in dckerfile

* feat: Session Playtime
2024-08-03 13:38:47 +01:00
zkldi 7109df76d6 fix: accidentally ran wrong linter, sorry 2024-08-02 22:03:56 +01:00
zkldi 663d61b518 fix: lukacat's bug 2024-08-02 21:57:27 +01:00
zkldi 315b83ee51 docs: rename zk to something more memorable 2024-07-14 19:55:41 +01:00