refactor(project): use unified utcnow

This commit is contained in:
MingxuanGame
2025-08-22 11:27:45 +00:00
parent da66420eaa
commit 9b00dbda28
49 changed files with 201 additions and 167 deletions

View File

@@ -3,7 +3,6 @@ from __future__ import annotations
import asyncio
from collections import defaultdict
from collections.abc import Coroutine
from datetime import UTC, datetime
import math
from typing import override
@@ -27,6 +26,7 @@ from app.models.metadata_hub import (
)
from app.models.room import RoomCategory
from app.service.subscribers.score_processed import ScoreSubscriber
from app.utils import utcnow
from .hub import Client, Hub
@@ -41,11 +41,11 @@ class MetadataHub(Hub[MetadataClientState]):
self.subscriber = ScoreSubscriber()
self.subscriber.metadata_hub = self
self._daily_challenge_stats: MultiplayerRoomStats | None = None
self._today = datetime.now(UTC).date()
self._today = utcnow().date()
self._lock = asyncio.Lock()
def get_daily_challenge_stats(self, daily_challenge_room: int) -> MultiplayerRoomStats:
if self._daily_challenge_stats is None or self._today != datetime.now(UTC).date():
if self._daily_challenge_stats is None or self._today != utcnow().date():
self._daily_challenge_stats = MultiplayerRoomStats(
room_id=daily_challenge_room,
playlist_item_stats={},
@@ -98,7 +98,7 @@ class MetadataHub(Hub[MetadataClientState]):
async with with_db() as session:
async with session.begin():
user = (await session.exec(select(User).where(User.id == int(state.connection_id)))).one()
user.last_visit = datetime.now(UTC)
user.last_visit = utcnow()
await session.commit()
@override
@@ -149,7 +149,7 @@ class MetadataHub(Hub[MetadataClientState]):
daily_challenge_room = (
await session.exec(
select(Room).where(
col(Room.ends_at) > datetime.now(UTC),
col(Room.ends_at) > utcnow(),
Room.category == RoomCategory.DAILY_CHALLENGE,
)
)

View File

@@ -1,7 +1,7 @@
from __future__ import annotations
import asyncio
from datetime import UTC, datetime, timedelta
from datetime import timedelta
from typing import override
from app.database import Room
@@ -44,6 +44,7 @@ from app.models.room import (
RoomStatus,
)
from app.models.score import GameMode
from app.utils import utcnow
from .hub import Client, Hub
@@ -233,7 +234,7 @@ class MultiplayerHub(Hub[MultiplayerClientState]):
item = room.playlist[0]
item.owner_id = client.user_id
room.room_id = db_room.id
starts_at = db_room.starts_at or datetime.now(UTC)
starts_at = db_room.starts_at or utcnow()
beatmap_exists = await session.exec(select(exists().where(col(Beatmap.id) == item.beatmap_id)))
if not beatmap_exists.one():
fetcher = await get_fetcher()
@@ -306,7 +307,7 @@ class MultiplayerHub(Hub[MultiplayerClientState]):
session.add(participated_user)
else:
participated_user.left_at = None
participated_user.joined_at = datetime.now(UTC)
participated_user.joined_at = utcnow()
db_room = await session.get(Room, room_id)
if db_room is None:
@@ -1056,7 +1057,7 @@ class MultiplayerHub(Hub[MultiplayerClientState]):
)
).first()
if participated_user is not None:
participated_user.left_at = datetime.now(UTC)
participated_user.left_at = utcnow()
db_room = await session.get(Room, room.room.room_id)
if db_room is None:
@@ -1087,7 +1088,7 @@ class MultiplayerHub(Hub[MultiplayerClientState]):
.where(col(Room.id) == room.room.room_id)
.values(
name=room.room.settings.name,
ends_at=datetime.now(UTC),
ends_at=utcnow(),
type=room.room.settings.match_type,
queue_mode=room.room.settings.queue_mode,
auto_skip=room.room.settings.auto_skip,