feat(misc): support seasonal backgrounds

This commit is contained in:
MingxuanGame
2025-08-11 09:13:42 +00:00
parent b9babb8f24
commit 2f54ac262c
5 changed files with 29 additions and 0 deletions

View File

@@ -44,3 +44,4 @@ ENABLE_OSU_AP=false # 启用 osu!AP 统计数据
ENABLE_ALL_MODS_PP=false # 启用所有 Mod 的 PP 计算 ENABLE_ALL_MODS_PP=false # 启用所有 Mod 的 PP 计算
ENABLE_SUPPORTER_FOR_ALL_USERS=false # 启用所有新注册用户的支持者状态 ENABLE_SUPPORTER_FOR_ALL_USERS=false # 启用所有新注册用户的支持者状态
ENABLE_ALL_BEATMAP_LEADERBOARD=false # 启用所有谱面的排行榜(没有排行榜的谱面会以 APPROVED 状态返回) ENABLE_ALL_BEATMAP_LEADERBOARD=false # 启用所有谱面的排行榜(没有排行榜的谱面会以 APPROVED 状态返回)
SEASONAL_BACKGROUNDS='[]' # 季节背景图 URL 列表

View File

@@ -104,6 +104,7 @@ Fetcher 用于从 osu! 官方 API 获取数据,使用 osu! 官方 API 的 OAut
| `ENABLE_ALL_MODS_PP` | 启用所有 Mod 的 PP 计算 | `false` | | `ENABLE_ALL_MODS_PP` | 启用所有 Mod 的 PP 计算 | `false` |
| `ENABLE_SUPPORTER_FOR_ALL_USERS` | 启用所有新注册用户的支持者状态 | `false` | | `ENABLE_SUPPORTER_FOR_ALL_USERS` | 启用所有新注册用户的支持者状态 | `false` |
| `ENABLE_ALL_BEATMAP_LEADERBOARD` | 启用所有谱面的排行榜 | `false` | | `ENABLE_ALL_BEATMAP_LEADERBOARD` | 启用所有谱面的排行榜 | `false` |
| `SEASONAL_BACKGROUNDS` | 季节背景图 URL 列表 | `[]` |
> **注意**: 在生产环境中,请务必更改默认的密钥和密码! > **注意**: 在生产环境中,请务必更改默认的密钥和密码!

View File

@@ -55,6 +55,7 @@ class Settings(BaseSettings):
enable_all_mods_pp: bool = False enable_all_mods_pp: bool = False
enable_supporter_for_all_users: bool = False enable_supporter_for_all_users: bool = False
enable_all_beatmap_leaderboard: bool = False enable_all_beatmap_leaderboard: bool = False
seasonal_backgrounds: list[str] = []
@field_validator("fetcher_scopes", mode="before") @field_validator("fetcher_scopes", mode="before")
def validate_fetcher_scopes(cls, v: Any) -> list[str]: def validate_fetcher_scopes(cls, v: Any) -> list[str]:

View File

@@ -6,6 +6,7 @@ from . import ( # pyright: ignore[reportUnusedImport] # noqa: F401
beatmap, beatmap,
beatmapset, beatmapset,
me, me,
misc,
relationship, relationship,
room, room,
score, score,

25
app/router/misc.py Normal file
View File

@@ -0,0 +1,25 @@
from __future__ import annotations
from datetime import UTC, datetime
from app.config import settings
from .api_router import router
from pydantic import BaseModel
class Background(BaseModel):
url: str
class BackgroundsResp(BaseModel):
ends_at: datetime = datetime(year=9999, month=12, day=31, tzinfo=UTC)
backgrounds: list[Background]
@router.get("/seasonal-backgrounds", response_model=BackgroundsResp)
async def get_seasonal_backgrounds():
return BackgroundsResp(
backgrounds=[Background(url=url) for url in settings.seasonal_backgrounds]
)