feat(chat): complete sliences

This commit is contained in:
MingxuanGame
2025-08-16 15:21:11 +00:00
parent 3f3afab480
commit 4eace3f84e
3 changed files with 68 additions and 2 deletions

View File

@@ -6,6 +6,9 @@ from app.database.chat import (
ChannelType,
ChatChannel,
ChatChannelResp,
ChatMessage,
SilenceUser,
UserSilenceResp,
)
from app.database.lazer_user import User, UserResp
from app.dependencies.database import get_db, get_redis
@@ -54,6 +57,29 @@ async def get_update(
else None,
)
)
if "sliences" in includes:
if history_since:
silences = (
await session.exec(
select(SilenceUser).where(col(SilenceUser.id) > history_since)
)
).all()
resp.silences.extend(
[UserSilenceResp.from_db(silence) for silence in silences]
)
elif since:
msg = await session.get(ChatMessage, since)
if msg:
silences = (
await session.exec(
select(SilenceUser).where(
col(SilenceUser.banned_at) > msg.timestamp
)
)
).all()
resp.silences.extend(
[UserSilenceResp.from_db(silence) for silence in silences]
)
return resp