From: Dessalines <tyhou13@gmx.com>
Date: Wed, 13 Jan 2021 17:01:42 +0000 (-0500)
Subject: Fixing top level replies, and notifs.
X-Git-Url: http://these/git/%7B%60/css/themes/static/gitweb.js?a=commitdiff_plain;h=82227846af941c79d82571e2568f48380bfdd3fd;p=lemmy.git

Fixing top level replies, and notifs.
---

diff --git a/lemmy_api/src/comment.rs b/lemmy_api/src/comment.rs
index fbbed6d6..631addb8 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 951e2f61..a40b3263 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 cdfac6c5..7d1975cd 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(