feat(realtime): add voice/video recording activity events
Some checks are pending
CI / test (push) Has started running
Some checks are pending
CI / test (push) Has started running
This commit is contained in:
@@ -75,7 +75,14 @@ async def _dispatch_event(db, user_id: int, event: IncomingRealtimeEvent) -> Non
|
||||
payload = SendMessagePayload.model_validate(event.payload)
|
||||
await realtime_gateway.handle_send_message(db, user_id, payload)
|
||||
return
|
||||
if event.event in {"typing_start", "typing_stop"}:
|
||||
if event.event in {
|
||||
"typing_start",
|
||||
"typing_stop",
|
||||
"recording_voice_start",
|
||||
"recording_voice_stop",
|
||||
"recording_video_start",
|
||||
"recording_video_stop",
|
||||
}:
|
||||
payload = ChatEventPayload.model_validate(event.payload)
|
||||
await realtime_gateway.handle_typing_event(db, user_id, payload, event.event)
|
||||
return
|
||||
|
||||
@@ -15,6 +15,10 @@ RealtimeEventName = Literal[
|
||||
"message_deleted",
|
||||
"typing_start",
|
||||
"typing_stop",
|
||||
"recording_voice_start",
|
||||
"recording_voice_stop",
|
||||
"recording_video_start",
|
||||
"recording_video_stop",
|
||||
"message_read",
|
||||
"message_delivered",
|
||||
"user_online",
|
||||
@@ -45,7 +49,18 @@ class MessageStatusPayload(BaseModel):
|
||||
|
||||
|
||||
class IncomingRealtimeEvent(BaseModel):
|
||||
event: Literal["send_message", "typing_start", "typing_stop", "message_read", "message_delivered", "ping"]
|
||||
event: Literal[
|
||||
"send_message",
|
||||
"typing_start",
|
||||
"typing_stop",
|
||||
"recording_voice_start",
|
||||
"recording_voice_stop",
|
||||
"recording_video_start",
|
||||
"recording_video_stop",
|
||||
"message_read",
|
||||
"message_delivered",
|
||||
"ping",
|
||||
]
|
||||
payload: dict[str, Any]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user