22 Commits

Author SHA1 Message Date
MingxuanGame
511150cc4c chore(ranked-mods): make Swap (osu!taiko) ranked
see https://osu.ppy.sh/home/changelog/lazer/2025.1209.0
2025-12-12 22:43:15 +08:00
MingxuanGame
7063f409b1 chore(mods): update default ranked mods
Make AL & SG ranked

https://osu.ppy.sh/home/changelog/tachyon/2025.1121.0
2025-11-23 03:01:21 +00:00
MingxuanGame
33f321952d feat(custom-rulesets): support custom rulesets (#23)
* feat(custom_ruleset): add custom rulesets support

* feat(custom-ruleset): add version check

* feat(custom-ruleset): add LegacyIO API to get ruleset hashes

* feat(pp): add check for rulesets whose pp cannot be calculated

* docs(readme): update README to include support for custom rulesets

* fix(custom-ruleset): make `rulesets` empty instead of throw a error when version check is disabled

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* chore(custom-ruleset): apply the latest changes of generator

c891bcd159

and

e25041ad3b

* feat(calculator): add fallback performance calculation for unsupported modes

* fix(calculator): remove debug print

* fix: resolve reviews

* feat(calculator): add difficulty calculation checks

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-26 21:10:36 +08:00
MingxuanGame
dfd656f2fb style(project): remove from __future__ import annotations 2025-10-03 17:15:41 +00:00
MingxuanGame
d23f32f08d refactor(log): refactor the whole project
format: {time:YYYY-MM-DD HH:mm:ss} [{level}] | {name} | {message}
{name} is:
- Uvicorn: log from uvicorn server (#228B22)
- Service: log from class of `app.service` (blue)
- Fetcher: log from fetchers (magenta)
- Task: log from `app.tasks` (#FFD700)
- System: log from `system_logger` (red)
- Normal: log from `log(name)` (#FFC1C1)
- Default: the module name of caller

if you are writing services or tasks, you can just call `logger.`, we will pack it with name `Service` or `Task`
if you want to print fetcher logs, system-related logs, or normal logs, use `logger = (fetcher_logger / system_logger / log)(name)`
2025-10-03 11:53:05 +00:00
MingxuanGame
860ebe9fa9 feat(mods): configure ranked mods by file (#49) 2025-09-30 20:47:04 +08:00
MingxuanGame
598fcc8b38 refactor(project): make pyright & ruff happy 2025-08-22 08:21:52 +00:00
咕谷酱
56e83fa098 fix gbk error 2025-08-21 21:16:22 +08:00
MingxuanGame
068697355f feat(achievement): support obtain achievements 2025-08-21 08:50:16 +00:00
MingxuanGame
6ac9a124ea feat(tools): add tools to add daily-challenge 2025-08-20 08:59:14 +00:00
MingxuanGame
f1b0fa2c89 feat(mods): support get available mods based on required mods 2025-08-20 08:25:08 +00:00
MingxuanGame
219f19d623 feat(beatmap,score): support failtime & more exact playtime 2025-08-18 08:48:13 +00:00
MingxuanGame
11b8f799a0 feat(score): support recalculate statistics 2025-08-17 05:48:36 +00:00
MingxuanGame
658c1a4d17 fix(score): fix cannot calculate pp when mod setting is enum 2025-08-16 16:48:09 +00:00
MingxuanGame
1251ba31a2 feat(score): support rx for taiko & catch 2025-08-15 05:59:21 +00:00
MingxuanGame
efc784d903 feat(score): support osu-rx & osu-ap & all beatmap leaderboard like osu.ppy.sb 2025-08-10 07:03:49 +00:00
MingxuanGame
703a7901b3 fix(score): cannot get pp in osu, taiko, catch with HR 2025-08-10 05:05:52 +00:00
MingxuanGame
2600fa499f feat(multiplayer): support play
WIP
2025-08-03 12:53:22 +00:00
MingxuanGame
a25cb852d9 feat(multiplay): support CreateRoom hub method 2025-08-01 11:08:59 +00:00
MingxuanGame
223fa99692 feat(score): support calculate pp 2025-07-29 02:56:21 +00:00
MingxuanGame
0b8beade5d refactor(mods): move models from app.models.score to app.models.mods 2025-07-27 03:01:17 +00:00
MingxuanGame
900a17f815 feat(beatmap): implement get beatmap arrtibutes 2025-07-26 17:31:23 +00:00