Commit Graph

86 Commits

Author SHA1 Message Date
MingxuanGame
d1d2bd55a0 fix(security): raise RuntimeError for unset jwt_secret_key to enhance server safety 2025-10-04 08:04:23 +00:00
MingxuanGame
216d3ab3bf feat(redis): refactor Redis configuration to use multiple logical databases
- Updated default REDIS_URL to remove explicit /0 suffix
- Added dedicated Redis clients:
  - db0: general cache (redis_client)
  - db1: message cache (redis_message_client)
  - db2: binary storage (redis_binary_client)
  - db3: rate limiting (redis_rate_limit_client)
- Updated configuration, Docker files, and main startup lifecycle accordingly
- Replaced `get_redis()` usage in notification server with `redis_message_client`
2025-10-04 05:39:59 +00:00
MingxuanGame
2bfde24b84 fix(log): fix typing & exception logs 2025-10-03 17:27:47 +00:00
MingxuanGame
dfd656f2fb style(project): remove from __future__ import annotations 2025-10-03 17:15:41 +00:00
MingxuanGame
d490239f46 chore(linter): update ruff rules 2025-10-03 15:46:53 +00:00
MingxuanGame
0d9019c6cc refactor(signalr): remove SignalR server & msgpack_lazer_api
Maybe we can make `msgpack_lazer_api` independent?
2025-10-03 13:20:12 +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
fce88272b5 refactor(task): move schedulers and startup/shutdown task into tasks directory 2025-10-03 10:15:22 +00:00
MingxuanGame
40670c094b feat(auth): support trusted device (#52)
New API to maintain sessions and devices:

- GET /api/private/admin/sessions
- DELETE /api/private/admin/sessions/{session_id}
- GET /api/private/admin/trusted-devices
- DELETE /api/private/admin/trusted-devices/{device_id}

Auth:

web clients request `/oauth/token` and `/api/v2/session/verify` with `X-UUID` header to save the client as trusted device.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-03 11:26:43 +08:00
MingxuanGame
3f6776847e feat(beatmap,score): update beatmaps from Bancho & deleting scores (#50)
New API:

- DELETE /api/private/score/{score_id}: delete a score
- POST /api/private/beatmapsets/{beatmapset_id}/sync: request for syncing a beatmapset

New configuration:

- OLD_SCORE_PROCESSING_MODE
2025-10-02 13:36:09 +08:00
MingxuanGame
860ebe9fa9 feat(mods): configure ranked mods by file (#49) 2025-09-30 20:47:04 +08:00
MingxuanGame
017b058e63 chore(linter): make linter happy 2025-09-30 07:57:08 +00:00
咕谷酱
86c7bbb74e 优化验证 2025-09-24 02:08:13 +08:00
MingxuanGame
ad78663ba0 chore(linter): make ruff happy 2025-09-20 10:41:15 +00:00
咕谷酱
08ff35509e 修复代理问题,添加头像接口 2025-09-19 17:02:24 +08:00
MingxuanGame
ffe4c5b14d chore(linter): make ruff happy 2025-09-13 14:38:29 +00:00
咕谷酱
e589e68881 Add public API for player statistics and information queries 2025-09-11 02:34:01 +08:00
MingxuanGame
c167cbcea6 feat(score): add specific rate limit for download replay API 2025-08-30 12:28:53 +00:00
MingxuanGame
617fdc2cfc fix(api): see details
/team/{team_id}: fix tag typo

beatmapset: remove download-service API

API Doc: fix v1 APi prefix
2025-08-30 12:08:31 +00:00
MingxuanGame
fdb08fe31f fix(rate-limit): apply on router to avoid TypeError on ws endpoint 2025-08-28 16:41:33 +00:00
MingxuanGame
aa239a81fa feat(api): add rate limiting for API requests 2025-08-28 13:51:44 +00:00
MingxuanGame
c7f6c76b0f refactor(api): standardizate API Router 2025-08-28 13:49:34 +00:00
MingxuanGame
d873c227c1 refactor(stats): remove stats manager 2025-08-26 13:18:11 +08:00
pre-commit-ci[bot]
7625cd99f5 chore(deps): auto fix by pre-commit hooks 2025-08-26 13:18:11 +08:00
咕谷酱
e0aae80f4b Add password support to multiplayer rooms
Introduces a password field to the Room model and database schema, enabling password-protected multiplayer rooms. Adds LIO router endpoints for room creation, user join/leave, and updates related imports and router registrations.
2025-08-26 13:18:11 +08:00
咕谷酱
6bcd8c1a21 Add asset proxy feature for resource URLs
Introduces asset proxy configuration and services to enable replacement of osu! resource URLs with custom domains. Updates API endpoints and caching services to process and rewrite resource URLs when asset proxy is enabled. Adds documentation and environment variables for asset proxy setup.
2025-08-22 22:03:51 +08:00
MingxuanGame
9b00dbda28 refactor(project): use unified utcnow 2025-08-22 11:27:45 +00:00
MingxuanGame
da66420eaa refactor(recalculate): make it a tool 2025-08-22 11:16:08 +00:00
MingxuanGame
a0b76bbde3 docs(readme): update readme 2025-08-22 10:06:26 +00:00
MingxuanGame
598fcc8b38 refactor(project): make pyright & ruff happy 2025-08-22 08:21:52 +00:00
咕谷酱
b300ce9b09 修复多人游戏排行榜问题 2025-08-22 13:52:28 +08:00
咕谷酱
6136b9fed3 修复用户状态问题 2025-08-22 13:06:23 +08:00
咕谷酱
eedc23fa7f 修复在线问题 2025-08-22 10:17:37 +08:00
咕谷酱
e5dc11cf86 添加邮件队列 2025-08-22 09:22:34 +08:00
咕谷酱
3bee2421fa 添加邮件验证 2025-08-22 08:19:12 +08:00
咕谷酱
719c9e601a 添加在线统计 2025-08-22 03:16:21 +08:00
咕谷酱
1fe603f416 add message redis 2025-08-22 01:49:03 +08:00
MingxuanGame
068697355f feat(achievement): support obtain achievements 2025-08-21 08:50:16 +00:00
MingxuanGame
ef1b699547 feat(daily-challenge): show statistics in profile 2025-08-20 04:24:00 +00:00
MingxuanGame
ce756c354b fix(statistics): run recalculate independently 2025-08-19 13:45:12 +00:00
咕谷酱
71c961cafd add search redis 2025-08-18 16:20:29 +08:00
咕谷酱
041e2a0781 Add beatmapsets Download load balancing 2025-08-18 02:58:40 +08:00
MingxuanGame
86bea5d4b5 chore(lint): make ruff happy 2025-08-17 16:59:05 +00:00
咕谷酱
b487b286e1 add NewRelic 2025-08-18 00:38:25 +08:00
咕谷酱
de0c86f4a2 add geoip 2025-08-17 23:56:46 +08:00
MingxuanGame
8fec2e2fa5 chore(project): update metadata 2025-08-17 06:04:10 +00:00
MingxuanGame
11b8f799a0 feat(score): support recalculate statistics 2025-08-17 05:48:36 +00:00
MingxuanGame
e1d42743d3 feat(chat): support BanchoBot 2025-08-16 10:31:46 +00:00
MingxuanGame
f992e4cc71 feat(chat): support public channel chat 2025-08-16 05:29:16 +00:00
MingxuanGame
a8906b8194 feat(v1-api): support api v1 2025-08-14 09:11:53 +00:00