refactor(project): use unified utcnow
This commit is contained in:
@@ -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,
|
||||
)
|
||||
)
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user