diff --git a/app/config.py b/app/config.py index b73fdbc..dc3ef61 100644 --- a/app/config.py +++ b/app/config.py @@ -68,6 +68,15 @@ class Settings(BaseSettings): server_url: HttpUrl = HttpUrl("http://localhost:8000") frontend_url: HttpUrl | None = None + @property + def web_url(self): + if self.frontend_url is not None: + return str(self.frontend_url) + elif self.server_url is not None: + return str(self.server_url) + else: + return "/" + # SignalR 设置 signalr_negotiate_timeout: int = 30 signalr_ping_interval: int = 15 diff --git a/app/database/score.py b/app/database/score.py index cfea607..d8b7bc4 100644 --- a/app/database/score.py +++ b/app/database/score.py @@ -13,7 +13,7 @@ from app.calculator import ( calculate_weighted_pp, clamp, ) -from app.config import Settings, settings +from app.config import settings from app.database.events import Event, EventType from app.database.team import TeamMember from app.models.model import ( @@ -244,7 +244,7 @@ class ScoreResp(ScoreBase): "beatmap": {"title": s.beatmap.version, "url": s.beatmap.url}, "user": { "username": score.user.username, - "url": str(Settings.frontend_url) + "/users/" + str(score.user.id), + "url": settings.web_url + "users/" + str(score.user.id), }, } session.add(rank_event) @@ -651,9 +651,7 @@ async def process_user( }, "user": { "username": user.username, - "url": str(Settings.frontend_url) - + "/users/" - + str(user.id), + "url": settings.web_url + "users/" + str(user.id), }, } session.add(rank_lost_event) diff --git a/app/router/private/username.py b/app/router/private/username.py index 3138a8b..e9ebf77 100644 --- a/app/router/private/username.py +++ b/app/router/private/username.py @@ -48,15 +48,9 @@ async def user_rename( user_id=current_user.id, user=current_user, ) - if settings.frontend_url is not None: - frontend_url = str(settings.frontend_url) - elif settings.server_url is not None: - frontend_url = str(settings.server_url) - else: - frontend_url = "/" rename_event.event_payload["user"] = { "username": new_name, - "url": frontend_url + "users/" + str(current_user.id), + "url": settings.web_url + "users/" + str(current_user.id), "previous_username": current_user.previous_usernames[-1], } session.add(rename_event)