diff --git a/lemmy_api/src/comment.rs b/lemmy_api/src/comment.rs index fbbed6d62..631addb82 100644 --- a/lemmy_api/src/comment.rs +++ b/lemmy_api/src/comment.rs @@ -152,7 +152,7 @@ impl Perform for CreateComment { comment_view.comment.read = true; } - let res = CommentResponse { + let mut res = CommentResponse { comment_view, recipient_ids, form_id: data.form_id.to_owned(), @@ -164,6 +164,8 @@ impl Perform for CreateComment { websocket_id, }); + res.recipient_ids = Vec::new(); // Necessary to avoid doubles + Ok(res) } } diff --git a/lemmy_db_views/src/comment_view.rs b/lemmy_db_views/src/comment_view.rs index 951e2f61b..a40b32635 100644 --- a/lemmy_db_views/src/comment_view.rs +++ b/lemmy_db_views/src/comment_view.rs @@ -321,7 +321,8 @@ impl<'a> CommentQueryBuilder<'a> { if let Some(recipient_id) = self.recipient_id { query = query // TODO needs lots of testing - .filter(user_alias_1::id.eq(recipient_id)) + .filter(user_alias_1::id.eq(recipient_id)) // Gets the comment replies + .or_filter(comment::parent_id.is_null().and(post::creator_id.eq(recipient_id))) // Gets the top level replies .filter(comment::deleted.eq(false)) .filter(comment::removed.eq(false)); } diff --git a/lemmy_websocket/src/chat_server.rs b/lemmy_websocket/src/chat_server.rs index cdfac6c51..7d1975cd7 100644 --- a/lemmy_websocket/src/chat_server.rs +++ b/lemmy_websocket/src/chat_server.rs @@ -335,6 +335,7 @@ impl ChatServer { // Send it to the post room let mut comment_post_sent = comment_reply_sent.clone(); + // Remove the recipients here to separate mentions / user messages from post or community comments comment_post_sent.recipient_ids = Vec::new(); self.send_post_room_message( user_operation, @@ -352,8 +353,6 @@ impl ChatServer { websocket_id, )?; - // Remove the form id here to separate mentions / user messages from post or community comments - comment_reply_sent.form_id = None; // Send it to the recipient(s) including the mentioned users for recipient_id in &comment_reply_sent.recipient_ids { self.send_user_room_message(