Redact more events

This commit is contained in:
2025-11-21 09:35:21 +01:00
parent 24f06a78a9
commit 751e3b8654
4 changed files with 94 additions and 8 deletions

View File

@@ -10,7 +10,9 @@ use actix_web::{FromRequest, HttpRequest, HttpResponse, web};
use actix_ws::Message;
use futures_util::StreamExt;
use matrix_sdk::ruma::OwnedRoomId;
use matrix_sdk::ruma::events::reaction::ReactionEventContent;
use matrix_sdk::ruma::events::room::message::RoomMessageEventContent;
use matrix_sdk::ruma::events::room::redaction::RoomRedactionEventContent;
use ractor::ActorRef;
use std::time::Instant;
use tokio::sync::broadcast;
@@ -23,7 +25,19 @@ use tokio::time::interval;
pub enum WsMessage {
/// Room message event
RoomMessageEvent {
event: RoomMessageEventContent,
event: Box<RoomMessageEventContent>,
room_id: OwnedRoomId,
},
/// Room reaction event
RoomReactionEvent {
event: Box<ReactionEventContent>,
room_id: OwnedRoomId,
},
/// Room reaction event
RoomRedactionEvent {
event: Box<RoomRedactionEventContent>,
room_id: OwnedRoomId,
},
}
@@ -119,12 +133,33 @@ pub async fn ws_handler(
BroadcastMessage::RoomMessageEvent{user, event, room} if user == auth.user.email => {
// Send the message to the websocket
if let Ok(msg) = serde_json::to_string(&WsMessage::RoomMessageEvent {
event:event.content,
event: Box::new(event.content),
room_id: room.room_id().to_owned(),
}) && let Err(e) = session.text(msg).await {
log::error!("Failed to send SyncEvent: {e}");
}
}
BroadcastMessage::ReactionEvent{user, event, room} if user == auth.user.email => {
// Send the message to the websocket
if let Ok(msg) = serde_json::to_string(&WsMessage::RoomReactionEvent {
event: Box::new(event.content),
room_id: room.room_id().to_owned(),
}) && let Err(e) = session.text(msg).await {
log::error!("Failed to send SyncEvent: {e}");
}
}
BroadcastMessage::RoomRedactionEvent{user, event, room} if user == auth.user.email => {
// Send the message to the websocket
if let Ok(msg) = serde_json::to_string(&WsMessage::RoomRedactionEvent {
event: Box::new(event.content),
room_id: room.room_id().to_owned(),
}) && let Err(e) = session.text(msg).await {
log::error!("Failed to send SyncEvent: {e}");
}
}
_ => {}
};