Commit Graph

32 Commits

Author SHA1 Message Date
MingxuanGame
2c81e22749 feat(calculator): support generate PerformanceAttributes & DifficultyAttributes from JSON Schema (#59)
Prepare for custom rulesets.

Schema Genetator: https://github.com/GooGuTeam/custom-rulesets/tree/main/CustomRulesetMetadataGenerator

```bash
dotnet -- schemas path/to/rulesets -o schema.json
```

```bash
python scripts/generate_ruleset_attributes.py schema.json 
```
2025-10-25 19:10:53 +08:00
咕谷酱
6731373ded Add MailerSend and template-based email verification
Introduced support for MailerSend as an email provider alongside SMTP, with configuration options in settings. Added Jinja2-based multi-language email templates for verification emails, and refactored the email sending logic to use these templates and support language selection based on user country code. Updated related services and API endpoints to pass country code and handle new response formats. Added dependencies for Jinja2 and MailerSend.
2025-10-12 00:36:47 +08: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
1527e23b43 feat(session-verify): 添加 TOTP 支持 (#34)
* chore(deps): add pyotp

* feat(auth): implement TOTP verification

feat(auth): implement TOTP verification and email verification services

- Added TOTP keys management with a new database model `TotpKeys`.
- Introduced `EmailVerification` and `LoginSession` models for email verification.
- Created `verification_service` to handle email verification logic and TOTP processes.
- Updated user response models to include session verification methods.
- Implemented routes for TOTP creation, verification, and fallback to email verification.
- Enhanced login session management to support new location checks and verification methods.
- Added migration script to create `totp_keys` table in the database.

* feat(config): update config example

* docs(totp): complete creating TOTP flow

* refactor(totp): resolve review

* feat(api): forbid unverified request

* fix(totp): trace session by token id to avoid other sessions are forbidden

* chore(linter): make pyright happy

* fix(totp): only mark sessions with a specified token id
2025-09-21 19:50:11 +08:00
咕谷酱
0b43f2aad8 支持个人介绍编辑 2025-09-16 00:33:46 +08:00
MingxuanGame
6382b744c1 chore(deps): upgrade packages 2025-09-13 16:41:35 +00:00
MingxuanGame
aa239a81fa feat(api): add rate limiting for API requests 2025-08-28 13:51:44 +00:00
MingxuanGame
598fcc8b38 refactor(project): make pyright & ruff happy 2025-08-22 08:21:52 +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
eaa6d4d92b chore(deps): update lock 2025-08-17 15:18:31 +08:00
MingxuanGame
5a295bd04a chore(deps): bump deps version 2025-08-15 08:54:25 +00:00
MingxuanGame
814d9c4618 refactor(detector): more readable 2025-08-15 08:52:01 +00:00
chenjintang-shrimp
7c7c68c163 feat(detector): 新增封禁谱面表并检查可疑谱面
- 在数据库中添加了封禁谱面表(banned_beatmaps)
- 实现了检查可疑谱面的功能,将不符合规范的谱面添加到封禁列表
- 更新了相关的模型和迁移文件
2025-08-15 08:05:02 +00:00
MingxuanGame
e7d5bcaf4b feat(server): add sentry to track error 2025-08-12 17:00:01 +00:00
MingxuanGame
449bda0a84 feat(private-api): support upload avatar 2025-08-12 04:54:21 +00:00
MingxuanGame
cf3a6bbd21 feat(storage): support cloud storage 2025-08-12 03:58:06 +00:00
MingxuanGame
1c233ed31c chore(deps): remove unused dependencies authlib 2025-08-11 12:37:46 +00:00
MingxuanGame
6e71141146 feat(developer): support custom OAuth 2.0 client 2025-08-11 12:33:31 +00:00
MingxuanGame
f165ae5dc3 refactor(config): use pydantic-settings 2025-08-10 05:38:28 +00:00
MingxuanGame
d9cf522f40 feat(score): support custom pp calculator 2025-08-10 05:05:08 +00:00
MingxuanGame
832a6fc95d feat(daily-challenge): simple implement 2025-08-09 11:18:29 +00:00
MingxuanGame
4a5a1c86c6 fix(signalr): use custom msgpack to encode/decode 2025-07-30 06:01:17 +00:00
MingxuanGame
9b889bc602 feat(database): use alembic 2025-07-28 13:09:55 +00:00
MingxuanGame
1be3388524 feat(log): add logger 2025-07-28 10:38:40 +00:00
MingxuanGame
900a17f815 feat(beatmap): implement get beatmap arrtibutes 2025-07-26 17:31:23 +00:00
MingxuanGame
cca4a2f1be feat(fetcher): add data fetcher 2025-07-26 16:06:53 +08:00
MingxuanGame
46c19dddc1 chore(pre-commit): add pre-commit 2025-07-25 20:46:52 +08:00
MingxuanGame
f347b680b2 refactor(database): use asyncio 2025-07-25 20:43:50 +08:00
MingxuanGame
c43ca883a5 refactor(database): migrate to sqlmodel 2025-07-24 20:49:07 +08:00
MingxuanGame
1655bb9f53 feat: 基础 SignalR 服务器支持 2025-07-24 18:45:08 +08:00
MingxuanGame
7b5a50493a use uv & make lint happy 2025-07-23 18:03:30 +08:00