diff --git a/src/main.rs b/src/main.rs index d7eefae..43cbcab 100644 --- a/src/main.rs +++ b/src/main.rs @@ -150,7 +150,16 @@ async fn auto_join( Ok(()) } -async fn on_room_message(event: SyncMessageEvent, room: Room) -> Result<()> { +async fn on_room_message( + event: SyncMessageEvent, + room: Room, + client: Client, +) -> Result<()> { + // Ignore messages sent from self. + if client.user_id().await.as_ref() == Some(&event.sender) { + return Ok(()); + } + if let Room::Joined(room) = room { parse_message(event, room).await?; } @@ -229,7 +238,12 @@ async fn source(room: Joined) -> Result<()> { } async fn uwuify(room: Joined, message: &str) -> Result<()> { - let content = MessageEventContent::text_plain(uwuifier::uwuify_str_sse(message)); + let message = if message.is_empty() { + "uwu".to_owned() + } else { + uwuifier::uwuify_str_sse(message) + }; + let content = MessageEventContent::text_plain(message); room.send(content, None).await?; Ok(()) }