Commit Graph
3056 Commits
Author SHA1 Message Date
zk 31257ca1f2 feat: pb resolution endpoint (#1413)
* feat: pb resolution endpoint

* my favourite thing about typescript tooling is how it automatically applies fixes that completely break your code because it knows nothing about anything

* fix: i'm running tests on github actions because the devcontainer doesn't work on arm

* i am aliyah

* fix: cuz of the

* f

* f(prime)

* guggington2

* pain

* pain two
2026-01-10 20:22:58 +00:00
Catizard 9685110425 feat: Receive gauge data from beatoraja ir (#1403) 2025-12-14 22:04:58 +00:00
zkldi c3b9f90984 fix: save session after doing things 2025-11-26 00:34:39 +00:00
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
beerpsi a5bc4fe9a2 fix(orphans): bandaids over the deorphaning process (#1394)
* fix(orphans): delete orphaned score after deorphaning process

* fix: don't die on one bad orphan

* fix: do not delete the orphan when an error is propagated up

* unify deorphan logic across everything

* fix imports

* fix: put in the query

* fix: minor spelling mistak
2025-11-20 23:21:21 +00:00
zkldi d355253581 feat: correctly handle multiple tables with the same prefix 2025-11-18 09:00:14 +00:00
zkldi e91f064681 fix: long time bug where things would not get removed from bms tables 2025-11-17 20:17:18 +00:00
beerpsi d8bf52c90d fix: sort scores with no timestamps behind scores with one (#1389) 2025-11-15 14:06:21 +00:00
zkldi 3f524af1ed feat: rename back to zkldi 2025-11-15 12:16:00 +00:00
beerpsi 4341592bb8 seeds: update chunithm seeds to 2025/10/30 + skip charts from recalcs if only version changed (#1391) 2025-11-15 11:32:06 +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
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 77100ba94b fix: sort saved BMS table levels (#1368)
Fixes most of changes in BMS backsync commits being table folders
changing order.
Current collection will get stably sorted on next automatic update.
2025-10-03 17:58:54 +01:00
GRIM657 d001655785 feat: support iidx 32-omni (#1366)
* feat: iidx 32-omni seeds

* feat: iidx 32-omni support

* feat: iidx 32-omni folders
2025-10-02 16:46:46 +01:00
beerpsi a773e53b60 fix: migrate default folder info for chunithm + don't hardcode allowed preferredDefaultEnum values (#1356)
* [chunithm] migrate preferredDefaultEnum

* fix: don't hardcode preferred folder info
2025-09-30 02:15:37 +01:00
GRIM657 2d86b7c16b feat: iidx 33 eamuse CSV support (#1362)
* fix: iidx-mdb-parse ParseIIDXData: check for moreData before using continue;

* feat: initial iidx 33 support

* feat: iidx 33 eamuse csv support

* feat: iidx 33 tables and folders

* fix: some charts missing from iidx 33
2025-09-23 22:08:20 +01:00
zkldi a2ccc56cf1 feat: support ULT from CG 2025-09-19 16:25:12 +01:00
Ben Hutchinson ad92c069b4 fix: be rid of ddr floating point score inaccuracy (#1353) 2025-09-19 12:09:09 +01:00
zkldi 08d223f54e fix: maxxive 2025-09-19 03:34:49 +01:00
zkldi 87eae11640 fix: enable maxxive for kshook 2025-09-19 03:21:59 +01:00
GRIM657 4296c1957f feat: iidx 32 final seeds (#1360) 2025-09-18 22:47:33 +01:00
zkldi 21437142ef fix: beatoraja has five ways to say the same thing 2025-09-18 16:52:53 +01:00
zkldi fd3a76d2c1 fix: forcibly deny Forced-CN/Forced-HCN charts
Why on gods green earth does a chart with forced CN not ALSO set the
user score to say "CN mode"? Literally why? The play says LN mode.

Ridiculous. Fucking beatoraja engineering.
2025-09-18 16:49:53 +01:00
GRIM657 376b8c719e feat: update fervidex parser (#1355)
* feat: update fervidex parser

* fix: update fervidex parser
2025-09-14 23:22:44 +01:00
zkldi fa273225aa feat: stellaverse endpoint 2025-08-31 12:55:59 +00:00
beerpsi 42c6825396 fix(search): make searches case-insensitive (#1344) 2025-08-12 11:20:35 +01:00
beerpsi 61e4485caf [maimaidx] use 4dp for percent formatter (#1338)
* [maimaidx] use 4dp for percent formatter

* also fix server side formatters

* this one too

* update functions in common
2025-08-01 20:17:01 +01:00
beerpsi 65ec251d73 fix(server): search improvements (#1322)
* fix(server): search improvements, maybe

* fix(tests): remove results that were considered good

they were not actually very great i think
2025-07-14 14:21:45 +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
zkandzkldi e445beea7e fix: broken batch manual classhandler logic (#1314)
Co-authored-by: zkldi <20380519+zkldi@users.noreply.github.com>
2025-07-06 13:04:33 +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
dependabot[bot]andzk f3a6e84680 build(deps): bump multer from 1.4.5-lts.1 to 2.0.1 in /server (#1300)
* build(deps): bump multer from 1.4.5-lts.1 to 2.0.1 in /server

Bumps [multer](https://github.com/expressjs/multer) from 1.4.5-lts.1 to 2.0.1.
- [Release notes](https://github.com/expressjs/multer/releases)
- [Changelog](https://github.com/expressjs/multer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/expressjs/multer/compare/v1.4.5-lts.1...v2.0.1)

---
updated-dependencies:
- dependency-name: multer
  dependency-version: 2.0.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix pnpm lockfile

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: zk <zkldi.dev@gmail.com>
2025-06-05 13:21:40 +01:00
zkldi 14d9f0da38 chore: bump rg-stats 2025-05-18 10:47:37 +00:00
Christopher Cooper 7f49e2781f [myt/wacca] remove version compat code (#1292) 2025-05-08 10:04:12 +01:00
zkldi 6329889548 (when you find yourself in a hole; keep digging) 2025-05-04 22:03:20 +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 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
nairobi bae16fbdc2 fix: tiebreak ongeki scores based on p-score (#1282)
* fix: tiebreak ongeki scores based on p-score

* fix: add another test
2025-04-24 08:31:41 +01:00
Christopher Cooper 454dabd79e support new WaccaVersion enum in MYT proto (#1281) 2025-04-24 08:31:09 +01:00
Daniel THIRION 0b7de99583 fix(api-cg/jb): use clearFlag bitfield to generate Lamp (#1276) 2025-04-18 23:04: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
Damien Tina SandDaniel THIRION 6bae29cd91 fix(import-cg): fix music rate being rounded (#1272)
Signed-off-by: Tina <me@tina.moe>
Co-authored-by: Daniel THIRION <daniel.thirion@st.com>
2025-04-07 20:28:42 +01:00
Damien Tina S 7d2f6776dc Fix NAG/GAN jb import using DEV url (#1271)
Fix a bug introduced in https://github.com/zkrising/Tachi/commit/c254b69d40ff3828e938e7fb3038d5058a00c45d where importing from GAN or NAG would use DEV url instead
2025-04-07 13:19:26 +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 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
beerpsi e07de56800 chore(deps): update rg-stats to 0.5.10 (#1256) 2025-03-20 01:44:14 +00:00
zkldi dba6b7b5c1 fix: dokądże panie? 2025-03-18 20:01:56 +00:00