Commit Graph
1103 Commits
Author SHA1 Message Date
beerpsi af2665a9ff [chunithm] Update to X-VERSE (#1395)
* [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
2025-11-20 23:43:56 +00:00
Victor Yu df54dcb366 feat: new import method for CG iidx (#1396) 2025-11-20 23:22:09 +00:00
zkldi b511e4661d chore: fmt 2025-11-15 13:27:03 +00:00
zkldi 3f524af1ed feat: rename back to zkldi 2025-11-15 12:16:00 +00:00
zk 8f4955812d feat: support changing your own names (#1383) 2025-11-02 18:06:43 +00:00
GRIM657 ef5b03a0c6 fix: add iidx 32 to api-kai iidx versions (#1382)
* fix: add iidx 32 to kai-api iidx versions

* fix: line length
2025-11-01 22:30:31 +00:00
GRIM657 d2aae66f51 fix: adjust ferv cardID validation for cardIDs beginning with C (#1376) 2025-10-30 12:25:15 +00:00
Tung Vu c2882ed90f fix: minor UI improvements (#1380)
* fix: add overflow auto to some packed button group

* fix: align goal progression text to the left
2025-10-30 12:22:50 +00:00
Xinnoh 1969e1c9c8 Remove でらっくす from maimai search (#1381)
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.
2025-10-30 12:22:26 +00:00
Aaron e6fd4c21ed feat: add sdvx PUC tierlists (#1375)
* add sdvx PUC tierlists

* address review comments
2025-10-22 21:58:49 +01:00
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
Tung Vu 7629c5ab8c seeds: update sdvx to 20250624 + add ult difficulty (#1361)
* feat: add ult difficulty

* feat: update sdvx seeds 20250624
2025-09-19 12:08:46 +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
nairobi 131f4fe89f fix: important splash text (#1318) 2025-07-11 13:49:29 +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
zkldi 14d9f0da38 chore: bump rg-stats 2025-05-18 10:47:37 +00: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 67ef99a27b fix: add missing rating name overrides (#1291) 2025-05-04 14:40:09 +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
zkldi 33283aed0a fix: and color 2025-04-17 09:55:16 +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 e07de56800 chore(deps): update rg-stats to 0.5.10 (#1256) 2025-03-20 01:44:14 +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
beerpsi 2a53755ede [chunithm/maimaidx] Fix sessionImportantScoreCount (#1253) 2025-03-18 00:36:35 +00:00
beerpsi 32c5be30bf [chunithm] Update to CHUNITHM VERSE (#1252)
* [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
2025-03-17 18:29:49 +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
zkldi afb444d11a feat: support "source" as a filter directive on scores tables 2025-02-19 23:15:59 +00:00