Commit Graph
267 Commits
Author SHA1 Message Date
nairobi e6b34a13d2 feat: canonical level folders for gekichu; level history display (#1757)
* feat: canonical level folders for ongeki

* add levelNums and level history table

* less insane field name

* rating history -> level history

* seeds script nonsense

* chunithm

* remove 14+ and up from the plost table

* um
2026-10-08 23:22:07 +01:00
zk 194b7163a8 feat: ditch minio as they're hostile; rustfs (#1751)
* feat: ditch minio as they're hostile; rustfs

* fix: use RustFS for server CI storage
2026-09-30 23:29:48 +01:00
Fluzzarn 6c5d0c37fc Update user-gamept.md (#1749) 2026-09-24 18:13:11 +01:00
nairobi bc9d2789bc feat: arcaea 7.0 (#1736)
* fucking lowirommmmmmmmmmmmmmm

* I gently open the repo

* eagles can fly, people can try, but that's about it

* I still hate you

* potential merger test

* remove raw b50

* touchup

* less insane handling of lamps

* add sacrosanct
2026-09-16 20:44:45 +01:00
ash 4f8b098725 feat: add SDVX 6/7 omnimix support (#1722)
* SDVX: add EG + Nabla omnimix folders and tables

* SDVX: add exceed-omni and nabla-omni versions

* SDVX: add nabla-omni version when adding new charts

* add exceed-omni to songID 1352 because i missed it earlier oops
2026-07-28 17:01:08 +01:00
FallenDawnUltimate dba4942514 docs: fix table formatting (#1712) 2026-07-11 11:17:01 +01:00
zk 99fe1186ff fix: sdvx goals maxxive + ensure this is easier to fix in future (#1661)
* fix: goalfix

* fix: goalfix 2

* fix: fmt

* fix: script for fixing quests, too, ugh
2026-06-13 11:04:29 +01:00
zk a815848fb6 fix: ensure some sanity in .env files (#1640) 2026-06-04 21:17:39 +01:00
zk 978828d429 feat: move more unecessarily node things to bun (#1594) 2026-05-26 19:23:13 +01:00
zk dcb7c8d41b feat: recaptcha->hcaptcha (#1577) 2026-05-24 16:09:23 +01:00
zk 9bf3ad972d feat: highly optimise playcount-based queries (#1572) 2026-05-24 01:04:25 +01:00
zk e363bd2532 docs: migrate from mkdocs to mdbook (#1558)
* docs: migrate from mkdocs to mdbook

- Rename old mkdocs docs/ to old-docs/ for reference
- Set up new docs/ with mdbook (book.toml + src/ tree)
- Mirror full nav structure from mkdocs.yml into SUMMARY.md
- Add Justfile-docs with docs-serve, docs-build, docs-check, docs-install recipes
- Import Justfile-docs from root Justfile
- Rewrite .github/workflows/docs.yml: build step uses taiki-e/install-action
  to install mdbook, split into separate build + deploy jobs, PR builds
  run the check step too

* ci(docs): pin actions to SHAs, install mdbook via release binary

* ci(docs): install mdbook from apt instead of curling a release binary

* dev: replace mkdocs python stack with mdbook in dev image

* ci(docs): apt only works on Debian; restore release binary install for Ubuntu CI

* docs: fix duplicate file entries in SUMMARY.md

* docs: remove docs-install recipe

* docs: remove site-url from book.toml to fix asset loading

* dev: install mdbook from upstream release binary, not Debian apt

The Debian package (0.4.x+ds) strips bundled font assets, leaving the
built site without fonts/fonts.css. Use the upstream tarball (same as CI)
so the theme is complete. Handles x86_64 and aarch64.

* docs: vendor mdbook tarballs in dev/mdbook/, install from there

Dockerfile.dev uses COPY + tar to install the right arch at build time.
CI extracts the x86_64 tarball directly from the checkout.
No network access required for either — and no stripped-fonts Debian package.

* fix: unwritten
2026-05-22 20:43:07 +01:00
zk 05bc8733df ai bug audit 1 (#1545)
* fix: use highlights in tachi rival table

* fix: silentReject forgot pw

* fix: bms table sync typo

* fix: typo

* fix: mass typos

* fix: tests
2026-05-21 19:13:23 +01:00
nairobi 5606732ea1 feat: update arcaea for v3 + 6.14 seeds/data (#1478)
* fix: update arcaea's CCs

* fix: proper ID check

* rest of the owl

* I remembered to run tests

* there is no pale purple

* add phase 12

* remove particle arts from the mobile folder

* make arcaea an honorary GCM game it always wanted to be

* songpack=genre

* move displayVersion over to chart data

* disable FR/PM score validators

* Revert "disable FR/PM score validators"

This reverts commit da1cfbaa62.

* bullshit

* bullshit 2

* bullshit 2
2026-05-20 22:13:05 +01:00
zk 128bd1cfac feat: fix prometheus metrics and 409 spam (#1507) 2026-05-20 00:35:23 +01:00
zk 30fac40231 Reapply "ongeki lunatic/remaster split (#85)"
This reverts commit 426bb250d9.
2026-05-17 14:58:16 +01:00
zk fe76dad32d fix: backport all features from v2 that came in after merge 2026-05-17 12:53:26 +00:00
zk 426bb250d9 Revert "ongeki lunatic/remaster split (#85)"
This reverts commit a8c74cc665.
2026-05-17 13:31:32 +01:00
nairobi a8c74cc665 ongeki lunatic/remaster split (#85)
* ongeki lunatic/remaster split

* reorder

* fuck you

* FUCK YOU
2026-05-16 23:29:48 +01:00
zk acea12ec8a dasdatmeespresso 2026-05-16 19:53:23 +00:00
zk ad09fd33e5 fix: enprivatise more action fields 2026-05-10 17:04:25 +00:00
zk efcd7652ae rebel shell 2026-05-08 16:54:34 +00:00
zk b8a98b581c if it hurts to breathe (open a window) (#58)
* if it hurts to breathe (open a window)

* clocked it.

* must sleep tonight, sorry

* feat: leaderboard now shows #1 if you're #1 even in ties
2026-04-22 22:26:43 +01:00
zk 32a4e7392e feat: orphan score stuff (#56) 2026-04-22 18:45:00 +01:00
zk 2bc4c3a628 more (#53)
* checkpoint

* server compiles again

* fmt

* checkpoint

* last one out, get the lights

* euston station

* like, mostly good. I'm under the ocean right now.

* fix: some nonsense AI stuff

* fix: new eslint rules, and cleanup imports across the board

* feat: folder slug rewrite, email logic change, too

* fix: register must use txn not db

* checkpoint
2026-04-20 23:11:16 +01:00
zk edda03e916 sunday 5th apr (rip mark hollis) (#52)
* lots of work

* feat: move rg-stats in, ensure consistency in db queries

* the clocks dont work

* almost

* ok jesus been and gone now back to usual
2026-04-06 01:25:30 +01:00
zk 9aa3aee2a7 feat: migrate old scoreDerivers 2026-03-28 22:18:25 +00:00
zk e33db85253 untenable speed 2026-03-28 21:19:28 +00:00
zk fc3e2bf8e1 refactor: config becomes zod&not shit 2026-03-12 19:59:38 +00:00
zk 5ea514cfa8 feat: first v3 refactor 2026-03-11 00:06:28 +00:00
zk 613d43ee68 fix: wonder how this happened 2026-02-25 22:59:20 +00:00
beerpsi 009a8bddc2 [maimaidx] Update to CiRCLE (#1417)
* [maimaidx] Update to CiRCLE

* not quite sure what happened here

* add stuff to prism plus omnimix

* add tables and folders for PRiSM PLUS Omnimix

* fix: prism/omni should be inactive, prismplus/omni should not

* add search terms for jp songs

* fix: ensure that there are no fails >=80% and clears <80%

* Revert "fix: ensure that there are no fails >=80% and clears <80%"

This reverts commit 518ba0f2e2.

I forgot that modifying imported score data is a brittle and multi-step
process. I think we're kinda just screwed here.

* update to new rg-stats, and have validation rules for clears

* deps: update rg-stats to 1.2.1

* properly fix invalid scores

* seeds: Update seeds to 2026/01/30

* fix: ProcessPBs updates chart rankings already

* recalculate AP scores for maimai DX CiRCLE

* chore: lint

* chore: lint 2

* chore: typecheck
2026-02-06 19:50:11 +00:00
Niilo Liesivesi 3cb37b976d docs: fix a grammatical error in license description (#1408) 2025-12-26 03:36:12 +00:00
Pinapelz f07a5ee42a update docs for a whole bunch of games (#1405)
* fix: typo in  judgement header docs autogen script

* docs: bms add ST12 stslDan

* docs: bms 14k add guage history difficulties, fix typo

* docs: chuni seperate note and clear lamp, add graphs, add missing game ver

* docs: maimaidx add missing vers, add inGameId as valid import method

* docs: wacca add missing vers, add inGameId as valid import method

* docs: add missing fields for ONGEKI implementation

* docs: ddr remove percent metric, add missing fields

* docs: popn, iidx, gitadora add missing versions

* docs: pms add missing guage histories

* docs: sdvx add ULT difficulty

* docs: add wacca and maimaidx as having inGameID support on batch-manual page
2025-12-20 19:54:47 +00:00
zkldi 3f524af1ed feat: rename back to zkldi 2025-11-15 12:16:00 +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
nairobi 65b10686a8 docs: update game list and controller rules (#1345)
* docs: update game list and controller rules

* docs: streamline 'keyboard is not allowed'
2025-08-07 14:14:01 +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
auxbh 3be081abcf Fix mkdocs nav, update DDR parser and add DDR import guide (#1307)
* docs: fix pages that weren't in the navigation bar

* seeds: update DDR parsing scripts to use arguments

* docs: fix minor mistake

* docs: add all supported DDR versions

* docs: add DDR musicdb import guide
2025-06-18 20:18:08 +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
Katie 3fa1a22714 docs: Fix a lot of random typos and formatting issues (#1245)
This is far from perfect (or everything), but in theory provides a better experience.
2025-02-24 21:06:35 +00:00
Victor Yuandzk 2111782bf0 New match type: ddrSongHash (#1213)
* New match type: `ddrSongHash`

* style: sort `MatchTypesWithDifficulty`

* make `ddrSongHash` a song property instead of a chart property

* docs: add descriptions for match type `ddrSongHash`

* add `ddrSongHash` field to all applicable songs

* fix: enforce ddrSongHash is only used on DDR

---------

Co-authored-by: zk <zkldi.dev@gmail.com>
2024-12-18 12:54:20 +00:00
nairobi dc158343d6 docs: document #1154 (songTitle+artist matching) (#1218) 2024-12-11 14:26:38 +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
zkldi e1f8ebac78 docs: better rules 2024-08-04 10:05:17 +01:00
zkldi 315b83ee51 docs: rename zk to something more memorable 2024-07-14 19:55:41 +01:00
blobdashandzkldi 7b6f4b50ab [popn] Add Unilab seeds (2023-09-05) & mdb-to-mxb script (#1108)
* Add Unilab seeds (2023-09-05)

* Add mdb to mxb rerunner & fix old scripts

* Add missing comma to make the linter happy

* fix: typo

* i have no reason to believe this code is broken

* feat: get rid of some old crap

---------

Co-authored-by: zkldi <20380519+zkldi@users.noreply.github.com>
2024-06-11 12:50:57 +01:00
zkldi b25819c77e feat: autogen docs *c (#1078) 2024-05-15 09:36:03 +01:00
zkldi b42a6b38ef docs: various improvements 2024-05-14 14:48:00 +01:00