diff --git a/app/config.py b/app/config.py index e2650b0..2eb55cd 100644 --- a/app/config.py +++ b/app/config.py @@ -316,11 +316,6 @@ STORAGE_SETTINGS='{ Field(default=False, description="是否启用邮件验证功能"), "验证服务设置", ] - enable_smart_verification: Annotated[ - bool, - Field(default=True, description="是否启用智能验证(基于客户端类型和设备信任)"), - "验证服务设置", - ] enable_session_verification: Annotated[ bool, Field(default=True, description="是否启用会话验证中间件"), @@ -474,6 +469,12 @@ STORAGE_SETTINGS='{ "缓存设置", "谱面缓存", ] + beatmapset_cache_expire_seconds: Annotated[ + int, + Field(default=3600, description="Beatmapset 缓存过期时间(秒)"), + "缓存设置", + "谱面缓存", + ] # 排行榜缓存设置 enable_ranking_cache: Annotated[ diff --git a/app/database/user.py b/app/database/user.py index fbc9eed..70f3ae7 100644 --- a/app/database/user.py +++ b/app/database/user.py @@ -72,7 +72,7 @@ COUNTRIES = json.loads((STATIC_DIR / "iso3166.json").read_text()) class UserBase(UTCBaseModel, SQLModel): - avatar_url: str = "" + avatar_url: str = "https://lazer-data.g0v0.top/default.jpg" country_code: str = Field(default="CN", max_length=2, index=True) # ? default_group: str|None is_active: bool = True diff --git a/app/models/notification.py b/app/models/notification.py index 96c1929..76ebeb8 100644 --- a/app/models/notification.py +++ b/app/models/notification.py @@ -118,10 +118,7 @@ class ChannelMessageBase(NotificationDetail): channel_type: "ChannelType", ) -> Self: try: - avatar_url = ( - getattr(user, "avatar_url", "https://lazer-data.g0v0.top/default.jpg") - or "https://lazer-data.g0v0.top/default.jpg" - ) + avatar_url = user.avatar_url or "https://lazer-data.g0v0.top/default.jpg" except Exception: avatar_url = "https://lazer-data.g0v0.top/default.jpg" instance = cls( diff --git a/app/service/beatmap_cache_service.py b/app/service/beatmap_cache_service.py index 04f3ac2..4196cee 100644 --- a/app/service/beatmap_cache_service.py +++ b/app/service/beatmap_cache_service.py @@ -155,8 +155,7 @@ async def schedule_preload_task(session: AsyncSession, redis: Redis, fetcher: "F 定时预加载任务 """ # 默认启用预加载,除非明确禁用 - enable_preload = getattr(settings, "enable_beatmap_preload", True) - if not enable_preload: + if not settings.enable_beatmap_preload: return cache_service = get_beatmap_cache_service(redis, fetcher) diff --git a/app/service/beatmapset_cache_service.py b/app/service/beatmapset_cache_service.py index 75fe3fe..16ec2e2 100644 --- a/app/service/beatmapset_cache_service.py +++ b/app/service/beatmapset_cache_service.py @@ -43,7 +43,7 @@ class BeatmapsetCacheService: def __init__(self, redis: Redis): self.redis = redis - self._default_ttl = getattr(settings, "beatmapset_cache_expire_seconds", 3600) # 1小时默认TTL + self._default_ttl = settings.beatmapset_cache_expire_seconds def _get_beatmapset_cache_key(self, beatmapset_id: int) -> str: """生成beatmapset缓存键""" diff --git a/app/service/email_queue.py b/app/service/email_queue.py index 93f002b..97d293e 100644 --- a/app/service/email_queue.py +++ b/app/service/email_queue.py @@ -31,12 +31,12 @@ class EmailQueue: self._retry_limit = 3 # 重试次数限制 # 邮件配置 - self.smtp_server = getattr(settings, "smtp_server", "localhost") - self.smtp_port = getattr(settings, "smtp_port", 587) - self.smtp_username = getattr(settings, "smtp_username", "") - self.smtp_password = getattr(settings, "smtp_password", "") - self.from_email = getattr(settings, "from_email", "noreply@example.com") - self.from_name = getattr(settings, "from_name", "osu! server") + self.smtp_server = settings.smtp_server + self.smtp_port = settings.smtp_port + self.smtp_username = settings.smtp_username + self.smtp_password = settings.smtp_password + self.from_email = settings.from_email + self.from_name = settings.from_name async def _run_in_executor(self, func, *args): """在线程池中运行同步操作""" diff --git a/app/service/email_service.py b/app/service/email_service.py index 6215767..12ea4f6 100644 --- a/app/service/email_service.py +++ b/app/service/email_service.py @@ -16,12 +16,12 @@ class EmailService: """邮件发送服务""" def __init__(self): - self.smtp_server = getattr(settings, "smtp_server", "localhost") - self.smtp_port = getattr(settings, "smtp_port", 587) - self.smtp_username = getattr(settings, "smtp_username", "") - self.smtp_password = getattr(settings, "smtp_password", "") - self.from_email = getattr(settings, "from_email", "noreply@example.com") - self.from_name = getattr(settings, "from_name", "osu! server") + self.smtp_server = settings.smtp_server + self.smtp_port = settings.smtp_port + self.smtp_username = settings.smtp_username + self.smtp_password = settings.smtp_password + self.from_email = settings.from_email + self.from_name = settings.from_name def generate_verification_code(self) -> str: """生成8位验证码""" diff --git a/app/service/ranking_cache_service.py b/app/service/ranking_cache_service.py index 11dd9da..d2702ef 100644 --- a/app/service/ranking_cache_service.py +++ b/app/service/ranking_cache_service.py @@ -658,8 +658,7 @@ def get_ranking_cache_service(redis: Redis) -> RankingCacheService: async def schedule_ranking_refresh_task(session: AsyncSession, redis: Redis): """定时排行榜刷新任务""" # 默认启用排行榜缓存,除非明确禁用 - enable_ranking_cache = getattr(settings, "enable_ranking_cache", True) - if not enable_ranking_cache: + if not settings.enable_ranking_cache: return cache_service = get_ranking_cache_service(redis) diff --git a/app/tasks/cache.py b/app/tasks/cache.py index 955a686..003a768 100644 --- a/app/tasks/cache.py +++ b/app/tasks/cache.py @@ -62,8 +62,7 @@ async def refresh_ranking_cache() -> None: async def schedule_user_cache_preload_task() -> None: """定时用户缓存预加载任务""" - enable_user_cache_preload = getattr(settings, "enable_user_cache_preload", True) - if not enable_user_cache_preload: + if not settings.enable_user_cache_preload: return try: